summaryrefslogtreecommitdiff
path: root/src/mailman/model/tests/test_mailinglist.py
diff options
context:
space:
mode:
authorBarry Warsaw2015-03-24 22:39:51 -0400
committerBarry Warsaw2015-03-24 22:39:51 -0400
commit3f0b367751acf7ab5201c3961f2b75c2acb730dc (patch)
tree45a8a228f3fce65d67a0083791ae343cb4608b09 /src/mailman/model/tests/test_mailinglist.py
parent18b7980823d2f9d5b7b0f50596cc05e8efb845e8 (diff)
downloadmailman-3f0b367751acf7ab5201c3961f2b75c2acb730dc.tar.gz
mailman-3f0b367751acf7ab5201c3961f2b75c2acb730dc.tar.zst
mailman-3f0b367751acf7ab5201c3961f2b75c2acb730dc.zip
LP: #1432239 - Make sure acceptable aliases are deleted before the mailing
list is deleted.
Diffstat (limited to 'src/mailman/model/tests/test_mailinglist.py')
-rw-r--r--src/mailman/model/tests/test_mailinglist.py24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/mailman/model/tests/test_mailinglist.py b/src/mailman/model/tests/test_mailinglist.py
index 843918e5e..745096b4b 100644
--- a/src/mailman/model/tests/test_mailinglist.py
+++ b/src/mailman/model/tests/test_mailinglist.py
@@ -18,6 +18,7 @@
"""Test MailingLists and related model objects.."""
__all__ = [
+ 'TestAcceptableAliases',
'TestDisabledListArchiver',
'TestListArchiver',
'TestMailingList',
@@ -28,7 +29,10 @@ import unittest
from mailman.app.lifecycle import create_list
from mailman.config import config
-from mailman.interfaces.mailinglist import IListArchiverSet
+from mailman.database.transaction import transaction
+from mailman.interfaces.listmanager import IListManager
+from mailman.interfaces.mailinglist import (
+ IAcceptableAliasSet, IListArchiverSet)
from mailman.interfaces.member import (
AlreadySubscribedError, MemberRole, MissingPreferredAddressError)
from mailman.interfaces.usermanager import IUserManager
@@ -141,3 +145,21 @@ class TestDisabledListArchiver(unittest.TestCase):
archiver = archiver_set.get('prototype')
self.assertTrue(archiver.is_enabled)
config.pop('enable prototype')
+
+
+
+class TestAcceptableAliases(unittest.TestCase):
+ layer = ConfigLayer
+
+ def setUp(self):
+ self._mlist = create_list('ant@example.com')
+
+ 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')
+ self.assertEqual(['bee@example.com'], list(alias_set.aliases))
+ getUtility(IListManager).delete(self._mlist)
+ self.assertEqual(len(list(alias_set.aliases)), 0)