diff options
| author | Aurélien Bompard | 2015-09-14 11:16:45 +0200 |
|---|---|---|
| committer | Barry Warsaw | 2015-10-20 21:10:35 -0400 |
| commit | 87f2f50b08eb0a7b0a99924b82fd246a6ce10983 (patch) | |
| tree | afed6065fb39fe3fae3b6d82ba97d142ad7b0f0e /src/mailman/utilities/tests/test_import.py | |
| parent | e2f6b111f0bbf2287fbf793cd6f09fb829ee9758 (diff) | |
| download | mailman-87f2f50b08eb0a7b0a99924b82fd246a6ce10983.tar.gz mailman-87f2f50b08eb0a7b0a99924b82fd246a6ce10983.tar.zst mailman-87f2f50b08eb0a7b0a99924b82fd246a6ce10983.zip | |
Diffstat (limited to 'src/mailman/utilities/tests/test_import.py')
| -rw-r--r-- | src/mailman/utilities/tests/test_import.py | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/src/mailman/utilities/tests/test_import.py b/src/mailman/utilities/tests/test_import.py index 85ee993ba..64f8e061f 100644 --- a/src/mailman/utilities/tests/test_import.py +++ b/src/mailman/utilities/tests/test_import.py @@ -44,12 +44,11 @@ from mailman.interfaces.bans import IBanManager from mailman.interfaces.bounce import UnrecognizedBounceDisposition from mailman.interfaces.languages import ILanguageManager from mailman.interfaces.mailinglist import ( - IAcceptableAliasSet, SubscriptionPolicy) + IAcceptableAliasSet, IHeaderMatchSet, SubscriptionPolicy) from mailman.interfaces.member import DeliveryMode, DeliveryStatus from mailman.interfaces.nntp import NewsgroupModeration from mailman.interfaces.templates import ITemplateLoader from mailman.interfaces.usermanager import IUserManager -from mailman.model.mailinglist import HeaderMatch from mailman.testing.helpers import LogFileMark from mailman.testing.layers import ConfigLayer from mailman.utilities.filesystem import makedirs @@ -335,10 +334,8 @@ class TestBasicImport(unittest.TestCase): def test_header_matches(self): # This test contail real cases of header_filter_rules self._pckdict['header_filter_rules'] = [ - ('^X-Spam-Status: Yes', 3, False), - ('X-Spam-Status: Yes', 3, False), ('X\\-Spam\\-Status\\: Yes.*', 3, False), - ('X-Spam-Status: Yes\r\n\r\n', 2, False), + ('^X-Spam-Status: Yes\r\n\r\n', 2, False), ('^X-Spam-Level: \\*\\*\\*.*$', 3, False), ('^X-Spam-Level:.\\*\\*\r\n^X-Spam:.\\Yes', 3, False), ('Subject: \\[SPAM\\].*', 3, False), @@ -368,8 +365,6 @@ class TestBasicImport(unittest.TestCase): self.assertListEqual( [ (hm.header, hm.pattern, hm.chain) for hm in self._mlist.header_matches ], [ - ('x-spam-status', 'Yes', 'discard'), - ('x-spam-status', 'Yes', 'discard'), ('x-spam-status', 'Yes.*', 'discard'), ('x-spam-status', 'Yes', 'reject'), ('x-spam-level', '\\*\\*\\*.*$', 'discard'), @@ -461,6 +456,22 @@ class TestBasicImport(unittest.TestCase): for member in self._mlist.owners.members: member.unsubscribe() + def test_header_matches_duplicate(self): + # Check that duplicate patterns don't cause tracebacks + self._pckdict['header_filter_rules'] = [ + ('SomeHeaderName: test-pattern', 3, False), + ('SomeHeaderName: test-pattern', 2, False), + ] + error_log = LogFileMark('mailman.error') + self._import() + self.assertListEqual( + [ (hm.header, hm.pattern, hm.chain) + for hm in self._mlist.header_matches ], + [ ('someheadername', 'test-pattern', 'discard') ] + ) + self.assertIn('Skipping duplicate header_filter rule', + error_log.readline()) + class TestArchiveImport(unittest.TestCase): |
