diff options
Diffstat (limited to 'src/mailman/app/tests/test_membership.py')
| -rw-r--r-- | src/mailman/app/tests/test_membership.py | 157 |
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 |
