diff options
| author | Barry Warsaw | 2014-12-01 23:16:45 -0500 |
|---|---|---|
| committer | Barry Warsaw | 2014-12-01 23:16:45 -0500 |
| commit | dbb6c051636b8f3efdcb9bcc8029c108d03810a3 (patch) | |
| tree | 4d99676236510ce20115ce3da0666a661c95dbeb | |
| parent | b98434e97ba4ab9143bfd4e788ba3576c1428a65 (diff) | |
| download | mailman-dbb6c051636b8f3efdcb9bcc8029c108d03810a3.tar.gz mailman-dbb6c051636b8f3efdcb9bcc8029c108d03810a3.tar.zst mailman-dbb6c051636b8f3efdcb9bcc8029c108d03810a3.zip | |
| -rw-r--r-- | src/mailman/model/docs/addresses.rst | 20 | ||||
| -rw-r--r-- | src/mailman/model/tests/test_address.py | 22 |
2 files changed, 25 insertions, 17 deletions
diff --git a/src/mailman/model/docs/addresses.rst b/src/mailman/model/docs/addresses.rst index 795afe43c..9f34efdec 100644 --- a/src/mailman/model/docs/addresses.rst +++ b/src/mailman/model/docs/addresses.rst @@ -205,23 +205,9 @@ case-preserved version are available on attributes of the `IAddress` object. FPERSON@example.com Because addresses are case-insensitive for all other purposes, you cannot -create an address that differs only in case. - - >>> user_manager.create_address('fperson@example.com') - Traceback (most recent call last): - ... - ExistingAddressError: FPERSON@example.com - >>> user_manager.create_address('fperson@EXAMPLE.COM') - Traceback (most recent call last): - ... - ExistingAddressError: FPERSON@example.com - >>> user_manager.create_address('FPERSON@example.com') - Traceback (most recent call last): - ... - ExistingAddressError: FPERSON@example.com - -You can get the address using either the lower cased version or case-preserved -version. In fact, searching for an address is case insensitive. +create an address that differs only in case. You can get the address using +either the lower cased version or case-preserved version. In fact, searching +for an address is case insensitive. >>> print(user_manager.get_address('fperson@example.com').email) fperson@example.com diff --git a/src/mailman/model/tests/test_address.py b/src/mailman/model/tests/test_address.py index 130ec3bae..7de77c019 100644 --- a/src/mailman/model/tests/test_address.py +++ b/src/mailman/model/tests/test_address.py @@ -28,8 +28,11 @@ __all__ = [ import unittest from mailman.email.validate import InvalidEmailAddressError +from mailman.interfaces.address import ExistingAddressError +from mailman.interfaces.usermanager import IUserManager from mailman.model.address import Address from mailman.testing.layers import ConfigLayer +from zope.component import getUtility @@ -38,6 +41,25 @@ class TestAddress(unittest.TestCase): layer = ConfigLayer + def setUp(self): + self._usermgr = getUtility(IUserManager) + self._address = self._usermgr.create_address('FPERSON@example.com') + def test_invalid_email_string_raises_exception(self): with self.assertRaises(InvalidEmailAddressError): Address('not_a_valid_email_string', '') + + def test_local_part_differs_only_by_case(self): + with self.assertRaises(ExistingAddressError) as cm: + self._usermgr.create_address('fperson@example.com') + self.assertEqual(cm.exception.address, 'FPERSON@example.com') + + def test_domain_part_differs_only_by_case(self): + with self.assertRaises(ExistingAddressError) as cm: + self._usermgr.create_address('fperson@EXAMPLE.COM') + self.assertEqual(cm.exception.address, 'FPERSON@example.com') + + def test_mixed_case_exact_match(self): + with self.assertRaises(ExistingAddressError) as cm: + self._usermgr.create_address('FPERSON@example.com') + self.assertEqual(cm.exception.address, 'FPERSON@example.com') |
