summaryrefslogtreecommitdiff
path: root/src/mailman/chains/tests/test_headers.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/chains/tests/test_headers.py')
-rw-r--r--src/mailman/chains/tests/test_headers.py37
1 files changed, 28 insertions, 9 deletions
diff --git a/src/mailman/chains/tests/test_headers.py b/src/mailman/chains/tests/test_headers.py
index 851720f95..312f1eb54 100644
--- a/src/mailman/chains/tests/test_headers.py
+++ b/src/mailman/chains/tests/test_headers.py
@@ -25,16 +25,16 @@ __all__ = [
import unittest
from mailman.app.lifecycle import create_list
-from mailman.chains.headers import HeaderMatchRule
+from mailman.chains.headers import HeaderMatchRule, make_link
from mailman.config import config
from mailman.core.chains import process
from mailman.email.message import Message
from mailman.interfaces.chain import LinkAction, HoldEvent
from mailman.interfaces.mailinglist import IHeaderMatchSet
-from mailman.testing.layers import ConfigLayer
from mailman.testing.helpers import (
- configuration, event_subscribers, get_queue_messages, LogFileMark,
+ LogFileMark, configuration, event_subscribers,
specialized_message_from_string as mfs)
+from mailman.testing.layers import ConfigLayer
@@ -46,6 +46,24 @@ class TestHeaderChain(unittest.TestCase):
def setUp(self):
self._mlist = create_list('test@example.com')
+ def test_make_link(self):
+ # Test that make_link() with no given chain creates a Link with a
+ # deferred link action.
+ link = make_link('Subject', '[tT]esting')
+ self.assertEqual(link.rule.header, 'Subject')
+ self.assertEqual(link.rule.pattern, '[tT]esting')
+ self.assertEqual(link.action, LinkAction.defer)
+ self.assertIsNone(link.chain)
+
+ def test_make_link_with_chain(self):
+ # Test that make_link() with a given chain creates a Link with a jump
+ # action to the chain.
+ link = make_link('Subject', '[tT]esting', 'accept')
+ self.assertEqual(link.rule.header, 'Subject')
+ self.assertEqual(link.rule.pattern, '[tT]esting')
+ self.assertEqual(link.action, LinkAction.jump)
+ self.assertEqual(link.chain, config.chains['accept'])
+
@configuration('antispam', header_checks="""
Foo: a+
Bar: bb?
@@ -129,9 +147,9 @@ class TestHeaderChain(unittest.TestCase):
# mailing-list configuration.
chain = config.chains['header-match']
header_matches = IHeaderMatchSet(self._mlist)
- header_matches.add('Foo', 'a+', None)
+ header_matches.add('Foo', 'a+')
links = [link for link in chain.get_links(self._mlist, Message(), {})
- if link.rule.name != 'any']
+ if link.rule.name != 'any']
self.assertEqual(len(links), 1)
self.assertEqual(links[0].action, LinkAction.defer)
self.assertEqual(links[0].rule.header, 'foo')
@@ -146,11 +164,12 @@ class TestHeaderChain(unittest.TestCase):
header_matches.add('Bar', 'b+', 'discard')
header_matches.add('Baz', 'z+', 'accept')
links = [link for link in chain.get_links(self._mlist, Message(), {})
- if link.rule.name != 'any']
+ if link.rule.name != 'any']
self.assertEqual(len(links), 3)
- self.assertListEqual(
- [(link.rule.header, link.rule.pattern, link.action, link.chain.name)
- for link in links],
+ self.assertEqual([
+ (link.rule.header, link.rule.pattern, link.action, link.chain.name)
+ for link in links
+ ],
[('foo', 'a+', LinkAction.jump, 'reject'),
('bar', 'b+', LinkAction.jump, 'discard'),
('baz', 'z+', LinkAction.jump, 'accept'),