summaryrefslogtreecommitdiff
path: root/src/mailman/model/tests/test_member.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/model/tests/test_member.py')
-rw-r--r--src/mailman/model/tests/test_member.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/mailman/model/tests/test_member.py b/src/mailman/model/tests/test_member.py
index b99ff4911..7906d8983 100644
--- a/src/mailman/model/tests/test_member.py
+++ b/src/mailman/model/tests/test_member.py
@@ -71,6 +71,31 @@ class TestMember(unittest.TestCase):
self.assertRaises(UnverifiedAddressError,
setattr, member, 'address', new_address)
+ def test_cannot_change_to_address_uncontrolled_address(self):
+ # A user tries to change their subscription to an address they do not
+ # control.
+ anne = self._usermanager.create_user('anne@example.com')
+ address = list(anne.addresses)[0]
+ member = self._mlist.subscribe(address)
+ new_address = self._usermanager.create_address('nobody@example.com')
+ new_address.verified_on = now()
+ # The new address is not verified.
+ self.assertRaises(MembershipError,
+ setattr, member, 'address', new_address)
+
+ def test_cannot_change_to_address_controlled_by_other_user(self):
+ # A user tries to change their subscription to an address some other
+ # user controls.
+ anne = self._usermanager.create_user('anne@example.com')
+ anne_address = list(anne.addresses)[0]
+ bart = self._usermanager.create_user('bart@example.com')
+ bart_address = list(bart.addresses)[0]
+ bart_address.verified_on = now()
+ member = self._mlist.subscribe(anne_address)
+ # The new address is not verified.
+ self.assertRaises(MembershipError,
+ setattr, member, 'address', bart_address)
+
def test_suite():