diff options
| -rw-r--r-- | src/mailman/app/tests/test_subscriptions.py | 11 | ||||
| -rw-r--r-- | src/mailman/model/tests/test_mailinglist.py | 7 | ||||
| -rw-r--r-- | src/mailman/model/tests/test_member.py | 5 | ||||
| -rw-r--r-- | src/mailman/model/tests/test_roster.py | 6 | ||||
| -rw-r--r-- | src/mailman/model/tests/test_subscriptions.py | 30 | ||||
| -rw-r--r-- | src/mailman/model/tests/test_user.py | 6 | ||||
| -rw-r--r-- | src/mailman/rest/tests/test_membership.py | 18 | ||||
| -rw-r--r-- | src/mailman/rest/tests/test_moderation.py | 8 | ||||
| -rw-r--r-- | src/mailman/testing/helpers.py | 11 |
9 files changed, 41 insertions, 61 deletions
diff --git a/src/mailman/app/tests/test_subscriptions.py b/src/mailman/app/tests/test_subscriptions.py index 3cfde47bc..3aaa5887a 100644 --- a/src/mailman/app/tests/test_subscriptions.py +++ b/src/mailman/app/tests/test_subscriptions.py @@ -30,7 +30,8 @@ from mailman.interfaces.bans import IBanManager from mailman.interfaces.member import MembershipIsBannedError from mailman.interfaces.pending import IPendings from mailman.interfaces.subscriptions import TokenOwner -from mailman.testing.helpers import LogFileMark, get_queue_messages +from mailman.testing.helpers import ( + LogFileMark, get_queue_messages, set_preferred) from mailman.testing.layers import ConfigLayer from mailman.interfaces.mailinglist import SubscriptionPolicy from mailman.interfaces.usermanager import IUserManager @@ -95,9 +96,7 @@ class TestSubscriptionWorkflow(unittest.TestCase): # Ensure that the sanity check phase, when given an IUser with a # preferred address, ends up with an address. anne = self._user_manager.make_user(self._anne) - address = list(anne.addresses)[0] - address.verified_on = now() - anne.preferred_address = address + address = set_preferred(anne) workflow = SubscriptionWorkflow(self._mlist, anne) # The constructor sets workflow.address because the user has a # preferred address. @@ -549,9 +548,7 @@ approval: # A confirmation step is necessary when a user subscribes with their # preferred address, and we are not pre-confirming. anne = self._user_manager.create_user(self._anne) - address = list(anne.addresses)[0] - address.verified_on = now() - anne.preferred_address = address + set_preferred(anne) # Run the workflow to model the confirmation step. There is no # subscriber attribute yet. workflow = SubscriptionWorkflow(self._mlist, anne) diff --git a/src/mailman/model/tests/test_mailinglist.py b/src/mailman/model/tests/test_mailinglist.py index 328be93a1..4779382b6 100644 --- a/src/mailman/model/tests/test_mailinglist.py +++ b/src/mailman/model/tests/test_mailinglist.py @@ -36,7 +36,8 @@ from mailman.interfaces.mailinglist import ( from mailman.interfaces.member import ( AlreadySubscribedError, MemberRole, MissingPreferredAddressError) from mailman.interfaces.usermanager import IUserManager -from mailman.testing.helpers import configuration, get_queue_messages +from mailman.testing.helpers import ( + configuration, get_queue_messages, set_preferred) from mailman.testing.layers import ConfigLayer from mailman.utilities.datetime import now from zope.component import getUtility @@ -54,9 +55,7 @@ class TestMailingList(unittest.TestCase): # list with the same role. anne = getUtility(IUserManager).create_user('anne@example.com') # Give the user a preferred address. - preferred = list(anne.addresses)[0] - preferred.verified_on = now() - anne.preferred_address = preferred + preferred = set_preferred(anne) # Subscribe Anne to the mailing list as a regular member. member = self._mlist.subscribe(anne) self.assertEqual(member.address, preferred) diff --git a/src/mailman/model/tests/test_member.py b/src/mailman/model/tests/test_member.py index 03b0bdac8..03a2ee9a0 100644 --- a/src/mailman/model/tests/test_member.py +++ b/src/mailman/model/tests/test_member.py @@ -29,6 +29,7 @@ from mailman.interfaces.member import MemberRole, MembershipError from mailman.interfaces.user import UnverifiedAddressError from mailman.interfaces.usermanager import IUserManager from mailman.model.member import Member +from mailman.testing.helpers import set_preferred from mailman.testing.layers import ConfigLayer from mailman.utilities.datetime import now from zope.component import getUtility @@ -46,9 +47,7 @@ class TestMember(unittest.TestCase): # A user is subscribed to a mailing list with their preferred address. # You cannot set the `address` attribute on such IMembers. anne = self._usermanager.create_user('anne@example.com') - preferred = list(anne.addresses)[0] - preferred.verified_on = now() - anne.preferred_address = preferred + set_preferred(anne) # Subscribe with the IUser object, not the address. This makes Anne a # member via her preferred address. member = self._mlist.subscribe(anne) diff --git a/src/mailman/model/tests/test_roster.py b/src/mailman/model/tests/test_roster.py index 184c8c157..259069824 100644 --- a/src/mailman/model/tests/test_roster.py +++ b/src/mailman/model/tests/test_roster.py @@ -30,8 +30,8 @@ from mailman.interfaces.address import IAddress from mailman.interfaces.member import DeliveryMode, MemberRole from mailman.interfaces.user import IUser from mailman.interfaces.usermanager import IUserManager +from mailman.testing.helpers import set_preferred from mailman.testing.layers import ConfigLayer -from mailman.utilities.datetime import now from zope.component import getUtility @@ -140,9 +140,7 @@ class TestMembershipsRoster(unittest.TestCase): user_manager = getUtility(IUserManager) self._anne = user_manager.make_user( 'anne@example.com', 'Anne Person') - preferred = list(self._anne.addresses)[0] - preferred.verified_on = now() - self._anne.preferred_address = preferred + set_preferred(self._anne) def test_no_memberships(self): # An unsubscribed user has no memberships. diff --git a/src/mailman/model/tests/test_subscriptions.py b/src/mailman/model/tests/test_subscriptions.py index f389cff55..6f9f983d5 100644 --- a/src/mailman/model/tests/test_subscriptions.py +++ b/src/mailman/model/tests/test_subscriptions.py @@ -30,7 +30,7 @@ from mailman.interfaces.member import MemberRole from mailman.interfaces.subscriptions import ( ISubscriptionService, TooManyMembersError) from mailman.interfaces.usermanager import IUserManager -from mailman.testing.helpers import subscribe +from mailman.testing.helpers import set_preferred, subscribe from mailman.testing.layers import ConfigLayer from mailman.utilities.datetime import now from zope.component import getUtility @@ -58,9 +58,7 @@ class TestSubscriptionService(unittest.TestCase): # Find address-based memberships when a user is linked to the address. user = self._user_manager.create_user( 'anne@example.com', 'Anne User') - address = user.addresses[0] - address.verified_on = now() - user.preferred_address = address + address = set_preferred(user) # Subscribe the address. self._mlist.subscribe(address) members = self._service.find_members('anne@example.com') @@ -71,9 +69,7 @@ class TestSubscriptionService(unittest.TestCase): # Find user-based memberships by address. user = self._user_manager.create_user( 'anne@example.com', 'Anne User') - address = user.addresses[0] - address.verified_on = now() - user.preferred_address = address + set_preferred(user) # Subscribe the user. self._mlist.subscribe(user) members = self._service.find_members('anne@example.com') @@ -84,9 +80,7 @@ class TestSubscriptionService(unittest.TestCase): # Find user-based memberships using a secondary address. user = self._user_manager.create_user( 'anne@example.com', 'Anne User') - address = user.addresses[0] - address.verified_on = now() - user.preferred_address = address + set_preferred(user) # Create a secondary address. address_2 = self._user_manager.create_address( 'anne2@example.com', 'Anne User 2') @@ -104,9 +98,7 @@ class TestSubscriptionService(unittest.TestCase): # subscription is not returned. user = self._user_manager.create_user( 'anne@example.com', 'Anne User') - address = user.addresses[0] - address.verified_on = now() - user.preferred_address = address + set_preferred(user) # Create a secondary address. address_2 = self._user_manager.create_address( 'anne2@example.com', 'Anne User 2') @@ -122,9 +114,7 @@ class TestSubscriptionService(unittest.TestCase): # Find user-based memberships by user_id. user = self._user_manager.create_user( 'anne@example.com', 'Anne User') - address = user.addresses[0] - address.verified_on = now() - user.preferred_address = address + set_preferred(user) # Subscribe the user. self._mlist.subscribe(user) members = self._service.find_members(user.user_id) @@ -136,9 +126,7 @@ class TestSubscriptionService(unittest.TestCase): # subscribed. user = self._user_manager.create_user( 'anne@example.com', 'Anne User') - address = user.addresses[0] - address.verified_on = now() - user.preferred_address = address + set_preferred(user) # Create a secondary address. address_2 = self._user_manager.create_address( 'anne2@example.com', 'Anne User 2') @@ -159,9 +147,7 @@ class TestSubscriptionService(unittest.TestCase): # Check that the memberships are properly sorted. user = self._user_manager.create_user( 'anne1@example.com', 'Anne User') - address = user.addresses[0] - address.verified_on = now() - user.preferred_address = address + address = set_preferred(user) # Create a secondary address. address_2 = self._user_manager.create_address( 'anne2@example.com', 'Anne User 2') diff --git a/src/mailman/model/tests/test_user.py b/src/mailman/model/tests/test_user.py index a7f8848a1..8648e0fd3 100644 --- a/src/mailman/model/tests/test_user.py +++ b/src/mailman/model/tests/test_user.py @@ -32,8 +32,8 @@ from mailman.interfaces.address import ( from mailman.interfaces.user import UnverifiedAddressError from mailman.interfaces.usermanager import IUserManager from mailman.model.preferences import Preferences +from mailman.testing.helpers import set_preferred from mailman.testing.layers import ConfigLayer -from mailman.utilities.datetime import now from zope.component import getUtility @@ -48,9 +48,7 @@ class TestUser(unittest.TestCase): self._mlist = create_list('test@example.com') self._anne = self._manager.create_user( 'anne@example.com', 'Anne Person') - preferred = list(self._anne.addresses)[0] - preferred.verified_on = now() - self._anne.preferred_address = preferred + set_preferred(self._anne) def test_preferred_address_memberships(self): self._mlist.subscribe(self._anne) diff --git a/src/mailman/rest/tests/test_membership.py b/src/mailman/rest/tests/test_membership.py index f15c2362e..7659969fc 100644 --- a/src/mailman/rest/tests/test_membership.py +++ b/src/mailman/rest/tests/test_membership.py @@ -34,7 +34,7 @@ from mailman.interfaces.member import DeliveryMode, MemberRole from mailman.interfaces.usermanager import IUserManager from mailman.testing.helpers import ( TestableMaster, call_api, get_lmtp_client, make_testable_runner, - subscribe, wait_for_webservice) + set_preferred, subscribe, wait_for_webservice) from mailman.runners.incoming import IncomingRunner from mailman.testing.layers import ConfigLayer, RESTLayer from mailman.utilities.datetime import now @@ -42,12 +42,6 @@ from urllib.error import HTTPError from zope.component import getUtility -def _set_preferred(user): - preferred = list(user.addresses)[0] - preferred.verified_on = now() - user.preferred_address = preferred - - class TestMembership(unittest.TestCase): layer = RESTLayer @@ -207,7 +201,7 @@ class TestMembership(unittest.TestCase): def test_join_as_user_with_preferred_address(self): with transaction(): anne = self._usermanager.create_user('anne@example.com') - _set_preferred(anne) + set_preferred(anne) self._mlist.subscribe(anne) content, response = call_api('http://localhost:9001/3.0/members') self.assertEqual(response.status, 200) @@ -226,7 +220,7 @@ class TestMembership(unittest.TestCase): def test_member_changes_preferred_address(self): with transaction(): anne = self._usermanager.create_user('anne@example.com') - _set_preferred(anne) + set_preferred(anne) self._mlist.subscribe(anne) # Take a look at Anne's current membership. content, response = call_api('http://localhost:9001/3.0/members') @@ -589,7 +583,7 @@ class TestAPI31Members(unittest.TestCase): def test_create_new_membership_by_hex(self): with transaction(): user = getUtility(IUserManager).create_user('anne@example.com') - _set_preferred(user) + set_preferred(user) # Subscribe the user to the mailing list by hex UUID. response, headers = call_api( 'http://localhost:9001/3.1/members', { @@ -608,7 +602,7 @@ class TestAPI31Members(unittest.TestCase): def test_create_new_owner_by_hex(self): with transaction(): user = getUtility(IUserManager).create_user('anne@example.com') - _set_preferred(user) + set_preferred(user) # Subscribe the user to the mailing list by hex UUID. response, headers = call_api( 'http://localhost:9001/3.1/members', { @@ -625,7 +619,7 @@ class TestAPI31Members(unittest.TestCase): def test_cannot_create_new_membership_by_int(self): with transaction(): user = getUtility(IUserManager).create_user('anne@example.com') - _set_preferred(user) + set_preferred(user) # We can't use the int representation of the UUID with API 3.1. with self.assertRaises(HTTPError) as cm: call_api('http://localhost:9001/3.1/members', { diff --git a/src/mailman/rest/tests/test_moderation.py b/src/mailman/rest/tests/test_moderation.py index 343f80ca1..c0e00a6c9 100644 --- a/src/mailman/rest/tests/test_moderation.py +++ b/src/mailman/rest/tests/test_moderation.py @@ -34,9 +34,9 @@ from mailman.interfaces.registrar import IRegistrar from mailman.interfaces.requests import IListRequests, RequestType from mailman.interfaces.usermanager import IUserManager from mailman.testing.helpers import ( - call_api, get_queue_messages, specialized_message_from_string as mfs) + call_api, get_queue_messages, set_preferred, + specialized_message_from_string as mfs) from mailman.testing.layers import RESTLayer -from mailman.utilities.datetime import now from urllib.error import HTTPError from zope.component import getUtility @@ -141,9 +141,7 @@ class TestSubscriptionModeration(unittest.TestCase): 'anne@example.com', 'Anne Person') self._bart = manager.make_user( 'bart@example.com', 'Bart Person') - preferred = list(self._bart.addresses)[0] - preferred.verified_on = now() - self._bart.preferred_address = preferred + set_preferred(self._bart) def test_no_such_list(self): # Try to get the requests of a nonexistent list. diff --git a/src/mailman/testing/helpers.py b/src/mailman/testing/helpers.py index 2e3809f03..631424661 100644 --- a/src/mailman/testing/helpers.py +++ b/src/mailman/testing/helpers.py @@ -31,6 +31,7 @@ __all__ = [ 'make_digest_messages', 'make_testable_runner', 'reset_the_world', + 'set_preferred', 'specialized_message_from_string', 'subscribe', 'temporary_db', @@ -554,3 +555,13 @@ message triggering a digest volume=1, digest_number=1) runner = make_testable_runner(DigestRunner, 'digest') runner.run() + + + +def set_preferred(user): + # Avoid circular imports. + from mailman.utilities.datetime import now + preferred = list(user.addresses)[0] + preferred.verified_on = now() + user.preferred_address = preferred + return preferred |
