summaryrefslogtreecommitdiff
path: root/src/mailman/app/tests/test_membership.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/app/tests/test_membership.py')
-rw-r--r--src/mailman/app/tests/test_membership.py157
1 files changed, 89 insertions, 68 deletions
diff --git a/src/mailman/app/tests/test_membership.py b/src/mailman/app/tests/test_membership.py
index cdf0641ea..481de2bb8 100644
--- a/src/mailman/app/tests/test_membership.py
+++ b/src/mailman/app/tests/test_membership.py
@@ -19,7 +19,6 @@
__all__ = [
'TestAddMember',
- 'TestAddMemberPassword',
'TestDeleteMember',
]
@@ -33,6 +32,7 @@ from mailman.interfaces.bans import IBanManager
from mailman.interfaces.member import (
AlreadySubscribedError, DeliveryMode, MemberRole, MembershipIsBannedError,
NotAMemberError)
+from mailman.interfaces.subscriptions import RequestRecord
from mailman.interfaces.usermanager import IUserManager
from mailman.testing.layers import ConfigLayer
from zope.component import getUtility
@@ -48,9 +48,11 @@ class TestAddMember(unittest.TestCase):
def test_add_member_new_user(self):
# Test subscribing a user to a mailing list when the email address has
# not yet been associated with a user.
- member = add_member(self._mlist, 'aperson@example.com',
- 'Anne Person', '123', DeliveryMode.regular,
- system_preferences.preferred_language)
+ member = add_member(
+ self._mlist,
+ RequestRecord('aperson@example.com', 'Anne Person',
+ DeliveryMode.regular,
+ system_preferences.preferred_language))
self.assertEqual(member.address.email, 'aperson@example.com')
self.assertEqual(member.list_id, 'test.example.com')
self.assertEqual(member.role, MemberRole.member)
@@ -60,9 +62,11 @@ class TestAddMember(unittest.TestCase):
# already been associated with a user.
user_manager = getUtility(IUserManager)
user_manager.create_user('aperson@example.com', 'Anne Person')
- member = add_member(self._mlist, 'aperson@example.com',
- 'Anne Person', '123', DeliveryMode.regular,
- system_preferences.preferred_language)
+ member = add_member(
+ self._mlist,
+ RequestRecord('aperson@example.com', 'Anne Person',
+ DeliveryMode.regular,
+ system_preferences.preferred_language))
self.assertEqual(member.address.email, 'aperson@example.com')
self.assertEqual(member.list_id, 'test.example.com')
@@ -71,9 +75,11 @@ class TestAddMember(unittest.TestCase):
# subscribe to the mailing list.
IBanManager(self._mlist).ban('anne@example.com')
with self.assertRaises(MembershipIsBannedError) as cm:
- add_member(self._mlist, 'anne@example.com', 'Anne Person',
- '123', DeliveryMode.regular,
- system_preferences.preferred_language)
+ add_member(
+ self._mlist,
+ RequestRecord('anne@example.com', 'Anne Person',
+ DeliveryMode.regular,
+ system_preferences.preferred_language))
self.assertEqual(
str(cm.exception),
'anne@example.com is not allowed to subscribe to test@example.com')
@@ -84,17 +90,21 @@ class TestAddMember(unittest.TestCase):
IBanManager(None).ban('anne@example.com')
self.assertRaises(
MembershipIsBannedError,
- add_member, self._mlist, 'anne@example.com', 'Anne Person',
- '123', DeliveryMode.regular, system_preferences.preferred_language)
+ add_member, self._mlist,
+ RequestRecord('anne@example.com', 'Anne Person',
+ DeliveryMode.regular,
+ system_preferences.preferred_language))
def test_add_member_banned_from_different_list(self):
# Test that members who are banned by on a different list can still be
# subscribed to other mlists.
sample_list = create_list('sample@example.com')
IBanManager(sample_list).ban('anne@example.com')
- member = add_member(self._mlist, 'anne@example.com',
- 'Anne Person', '123', DeliveryMode.regular,
- system_preferences.preferred_language)
+ member = add_member(
+ self._mlist,
+ RequestRecord('anne@example.com', 'Anne Person',
+ DeliveryMode.regular,
+ system_preferences.preferred_language))
self.assertEqual(member.address.email, 'anne@example.com')
def test_add_member_banned_by_pattern(self):
@@ -102,33 +112,41 @@ class TestAddMember(unittest.TestCase):
IBanManager(self._mlist).ban('^.*@example.com')
self.assertRaises(
MembershipIsBannedError,
- add_member, self._mlist, 'anne@example.com', 'Anne Person',
- '123', DeliveryMode.regular, system_preferences.preferred_language)
+ add_member, self._mlist,
+ RequestRecord('anne@example.com', 'Anne Person',
+ DeliveryMode.regular,
+ system_preferences.preferred_language))
def test_add_member_globally_banned_by_pattern(self):
# Addresses matching global regexp ban patterns cannot subscribe.
IBanManager(None).ban('^.*@example.com')
self.assertRaises(
MembershipIsBannedError,
- add_member, self._mlist, 'anne@example.com', 'Anne Person',
- '123', DeliveryMode.regular, system_preferences.preferred_language)
+ add_member, self._mlist,
+ RequestRecord('anne@example.com', 'Anne Person',
+ DeliveryMode.regular,
+ system_preferences.preferred_language))
def test_add_member_banned_from_different_list_by_pattern(self):
# Addresses matching regexp ban patterns on one list can still
# subscribe to other mailing lists.
sample_list = create_list('sample@example.com')
IBanManager(sample_list).ban('^.*@example.com')
- member = add_member(self._mlist, 'anne@example.com',
- 'Anne Person', '123', DeliveryMode.regular,
- system_preferences.preferred_language)
+ member = add_member(
+ self._mlist,
+ RequestRecord('anne@example.com', 'Anne Person',
+ DeliveryMode.regular,
+ system_preferences.preferred_language))
self.assertEqual(member.address.email, 'anne@example.com')
def test_add_member_moderator(self):
# Test adding a moderator to a mailing list.
- member = add_member(self._mlist, 'aperson@example.com',
- 'Anne Person', '123', DeliveryMode.regular,
- system_preferences.preferred_language,
- MemberRole.moderator)
+ member = add_member(
+ self._mlist,
+ RequestRecord('aperson@example.com', 'Anne Person',
+ DeliveryMode.regular,
+ system_preferences.preferred_language),
+ MemberRole.moderator)
self.assertEqual(member.address.email, 'aperson@example.com')
self.assertEqual(member.list_id, 'test.example.com')
self.assertEqual(member.role, MemberRole.moderator)
@@ -136,29 +154,37 @@ class TestAddMember(unittest.TestCase):
def test_add_member_twice(self):
# Adding a member with the same role twice causes an
# AlreadySubscribedError to be raised.
- add_member(self._mlist, 'aperson@example.com',
- 'Anne Person', '123', DeliveryMode.regular,
- system_preferences.preferred_language,
- MemberRole.member)
+ add_member(
+ self._mlist,
+ RequestRecord('aperson@example.com', 'Anne Person',
+ DeliveryMode.regular,
+ system_preferences.preferred_language),
+ MemberRole.member)
with self.assertRaises(AlreadySubscribedError) as cm:
- add_member(self._mlist, 'aperson@example.com',
- 'Anne Person', '123', DeliveryMode.regular,
- system_preferences.preferred_language,
- MemberRole.member)
+ add_member(
+ self._mlist,
+ RequestRecord('aperson@example.com', 'Anne Person',
+ DeliveryMode.regular,
+ system_preferences.preferred_language),
+ MemberRole.member)
self.assertEqual(cm.exception.fqdn_listname, 'test@example.com')
self.assertEqual(cm.exception.email, 'aperson@example.com')
self.assertEqual(cm.exception.role, MemberRole.member)
def test_add_member_with_different_roles(self):
# Adding a member twice with different roles is okay.
- member_1 = add_member(self._mlist, 'aperson@example.com',
- 'Anne Person', '123', DeliveryMode.regular,
- system_preferences.preferred_language,
- MemberRole.member)
- member_2 = add_member(self._mlist, 'aperson@example.com',
- 'Anne Person', '123', DeliveryMode.regular,
- system_preferences.preferred_language,
- MemberRole.owner)
+ member_1 = add_member(
+ self._mlist,
+ RequestRecord('aperson@example.com', 'Anne Person',
+ DeliveryMode.regular,
+ system_preferences.preferred_language),
+ MemberRole.member)
+ member_2 = add_member(
+ self._mlist,
+ RequestRecord('aperson@example.com', 'Anne Person',
+ DeliveryMode.regular,
+ system_preferences.preferred_language),
+ MemberRole.owner)
self.assertEqual(member_1.list_id, member_2.list_id)
self.assertEqual(member_1.address, member_2.address)
self.assertEqual(member_1.user, member_2.user)
@@ -171,44 +197,39 @@ class TestAddMember(unittest.TestCase):
# test subscribes the lower case address and ensures the original
# mixed case address can't be subscribed.
email = 'APerson@example.com'
- add_member(self._mlist, email.lower(), 'Ann Person', '123',
- DeliveryMode.regular, system_preferences.preferred_language)
+ add_member(
+ self._mlist,
+ RequestRecord(email.lower(), 'Ann Person',
+ DeliveryMode.regular,
+ system_preferences.preferred_language))
with self.assertRaises(AlreadySubscribedError) as cm:
- add_member(self._mlist, email, 'Ann Person', '123',
- DeliveryMode.regular,
- system_preferences.preferred_language)
+ add_member(
+ self._mlist,
+ RequestRecord(email, 'Ann Person',
+ DeliveryMode.regular,
+ system_preferences.preferred_language))
self.assertEqual(cm.exception.email, email)
-
+
def test_add_member_with_lower_case_email(self):
# LP: #1425359 - Mailman is case-perserving, case-insensitive. This
# test subscribes the mixed case address and ensures the lower cased
# address can't be added.
email = 'APerson@example.com'
- add_member(self._mlist, email, 'Ann Person', '123',
- DeliveryMode.regular, system_preferences.preferred_language)
+ add_member(
+ self._mlist,
+ RequestRecord(email, 'Ann Person',
+ DeliveryMode.regular,
+ system_preferences.preferred_language))
with self.assertRaises(AlreadySubscribedError) as cm:
- add_member(self._mlist, email.lower(), 'Ann Person', '123',
- DeliveryMode.regular,
- system_preferences.preferred_language)
+ add_member(
+ self._mlist,
+ RequestRecord(email.lower(), 'Ann Person',
+ DeliveryMode.regular,
+ system_preferences.preferred_language))
self.assertEqual(cm.exception.email, email.lower())
-class TestAddMemberPassword(unittest.TestCase):
- layer = ConfigLayer
-
- def setUp(self):
- self._mlist = create_list('test@example.com')
-
- def test_add_member_password(self):
- # Test that the password stored with the new user is encrypted.
- member = add_member(self._mlist, 'anne@example.com',
- 'Anne Person', 'abc', DeliveryMode.regular,
- system_preferences.preferred_language)
- self.assertEqual(member.user.password, '{plaintext}abc')
-
-
-
class TestDeleteMember(unittest.TestCase):
layer = ConfigLayer