diff options
| author | Barry Warsaw | 2015-01-04 20:20:33 -0500 |
|---|---|---|
| committer | Barry Warsaw | 2015-01-04 20:20:33 -0500 |
| commit | 4a612db8e89afed74173b93f3b64fa567b8417a3 (patch) | |
| tree | 81a687d113079a25f93279f35c7eee2aa2572510 /src/mailman/model/tests/test_user.py | |
| parent | 84af79988a4e916604cba31843778206efb7d1b8 (diff) | |
| parent | de181c1a40965a3a7deedd56a034a946f45b6984 (diff) | |
| download | mailman-4a612db8e89afed74173b93f3b64fa567b8417a3.tar.gz mailman-4a612db8e89afed74173b93f3b64fa567b8417a3.tar.zst mailman-4a612db8e89afed74173b93f3b64fa567b8417a3.zip | |
Diffstat (limited to 'src/mailman/model/tests/test_user.py')
| -rw-r--r-- | src/mailman/model/tests/test_user.py | 44 |
1 files changed, 39 insertions, 5 deletions
diff --git a/src/mailman/model/tests/test_user.py b/src/mailman/model/tests/test_user.py index 17d4d24ff..ba5ba116f 100644 --- a/src/mailman/model/tests/test_user.py +++ b/src/mailman/model/tests/test_user.py @@ -17,9 +17,6 @@ """Test users.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestUser', ] @@ -27,12 +24,14 @@ __all__ = [ import unittest -from zope.component import getUtility - from mailman.app.lifecycle import create_list +from mailman.interfaces.address import ( + AddressAlreadyLinkedError, AddressNotLinkedError) +from mailman.interfaces.user import UnverifiedAddressError from mailman.interfaces.usermanager import IUserManager from mailman.testing.layers import ConfigLayer from mailman.utilities.datetime import now +from zope.component import getUtility @@ -74,3 +73,38 @@ class TestUser(unittest.TestCase): self.assertEqual(len(emails), 2) self.assertEqual(emails, set(['anne@example.com', 'aperson@example.com'])) + + def test_uid_is_immutable(self): + with self.assertRaises(AttributeError): + self._anne.user_id = 'foo' + + def test_addresses_may_only_be_linked_to_one_user(self): + user = getUtility(IUserManager).create_user() + # Anne's preferred address is already linked to her. + with self.assertRaises(AddressAlreadyLinkedError) as cm: + user.link(self._anne.preferred_address) + self.assertEqual(cm.exception.address, self._anne.preferred_address) + + def test_unlink_from_address_not_linked_to(self): + # You cannot unlink an address from a user if that address is not + # already linked to the user. + user = getUtility(IUserManager).create_user() + with self.assertRaises(AddressNotLinkedError) as cm: + user.unlink(self._anne.preferred_address) + self.assertEqual(cm.exception.address, self._anne.preferred_address) + + def test_unlink_address_which_is_not_linked(self): + # You cannot unlink an address which is not linked to any user. + address = getUtility(IUserManager).create_address('bart@example.com') + user = getUtility(IUserManager).create_user() + with self.assertRaises(AddressNotLinkedError) as cm: + user.unlink(address) + self.assertEqual(cm.exception.address, address) + + def test_set_unverified_preferred_address(self): + # A user's preferred address cannot be set to an unverified address. + new_preferred = getUtility(IUserManager).create_address( + 'anne.person@example.com') + with self.assertRaises(UnverifiedAddressError) as cm: + self._anne.preferred_address = new_preferred + self.assertEqual(cm.exception.address, new_preferred) |
