diff options
Diffstat (limited to 'src/mailman/rest/tests/test_lists.py')
| -rw-r--r-- | src/mailman/rest/tests/test_lists.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/mailman/rest/tests/test_lists.py b/src/mailman/rest/tests/test_lists.py index a365db969..8e89f423c 100644 --- a/src/mailman/rest/tests/test_lists.py +++ b/src/mailman/rest/tests/test_lists.py @@ -28,8 +28,12 @@ __all__ = [ import unittest from mailman.app.lifecycle import create_list +from mailman.config import config from mailman.database.transaction import transaction +from mailman.interfaces.listmanager import IListManager +from mailman.interfaces.mailinglist import IAcceptableAliasSet from mailman.interfaces.usermanager import IUserManager +from mailman.model.mailinglist import AcceptableAlias from mailman.testing.helpers import call_api from mailman.testing.layers import RESTLayer from urllib.error import HTTPError @@ -176,6 +180,18 @@ class TestLists(unittest.TestCase): self.assertEqual(member['email'], 'bart@example.com') self.assertEqual(member['role'], 'member') + def test_delete_list_with_acceptable_aliases(self): + # LP: #1432239 - deleting a mailing list with acceptable aliases + # causes a SQLAlchemy error. The aliases must be deleted first. + with transaction(): + alias_set = IAcceptableAliasSet(self._mlist) + alias_set.add('bee@example.com') + call_api('http://localhost:9001/3.0/lists/test.example.com', + method='DELETE') + # Neither the mailing list, nor the aliases are present. + self.assertIsNone(getUtility(IListManager).get('test@example.com')) + self.assertEqual(config.db.store.query(AcceptableAlias).count(), 0) + class TestListArchivers(unittest.TestCase): |
