summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mailman/app/tests/test_subscriptions.py11
-rw-r--r--src/mailman/model/tests/test_mailinglist.py7
-rw-r--r--src/mailman/model/tests/test_member.py5
-rw-r--r--src/mailman/model/tests/test_roster.py6
-rw-r--r--src/mailman/model/tests/test_subscriptions.py30
-rw-r--r--src/mailman/model/tests/test_user.py6
-rw-r--r--src/mailman/rest/tests/test_membership.py18
-rw-r--r--src/mailman/rest/tests/test_moderation.py8
-rw-r--r--src/mailman/testing/helpers.py11
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