summaryrefslogtreecommitdiff
path: root/tests/test_handlers.py
diff options
context:
space:
mode:
authorbwarsaw2001-10-09 23:21:06 +0000
committerbwarsaw2001-10-09 23:21:06 +0000
commitaf0405c987592ac1211e2e1f4662f08f75d242b2 (patch)
treee2b4a451b88eaaed946d649ad4946b636ec011be /tests/test_handlers.py
parent604833af6ce09b6ecdb6a2b90e9814dde085b966 (diff)
downloadmailman-af0405c987592ac1211e2e1f4662f08f75d242b2.tar.gz
mailman-af0405c987592ac1211e2e1f4662f08f75d242b2.tar.zst
mailman-af0405c987592ac1211e2e1f4662f08f75d242b2.zip
test_urgent_reject(): Test that a RejectMessage is raised, not a
RejectUrgentMessage. TestTagger: many tests of the Tagger handler.
Diffstat (limited to 'tests/test_handlers.py')
-rw-r--r--tests/test_handlers.py114
1 files changed, 112 insertions, 2 deletions
diff --git a/tests/test_handlers.py b/tests/test_handlers.py
index 462fdc80e..8f9db90ef 100644
--- a/tests/test_handlers.py
+++ b/tests/test_handlers.py
@@ -404,7 +404,7 @@ From: dperson@dom.ain
Urgent: zzZZzz
""", Message.Message)
- self.assertRaises(CalcRecips.RejectUrgentMessage,
+ self.assertRaises(Errors.RejectMessage,
CalcRecips.process,
self._mlist, msg, msgdata)
@@ -1454,7 +1454,117 @@ A message.
class TestTagger(TestBase):
- pass
+ def test_short_circuit(self):
+ self._mlist.topics = 0
+ rtn = Tagger.process(self._mlist, None, {})
+ # Not really a great test, but there's little else to assert
+ self.assertEqual(rtn, None)
+
+ def test_simple(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.topics = [('bar fight', '.*bar.*', 'catch any bars', 1)]
+ mlist.topics_bodylines_limit = 0
+ msg = email.message_from_string("""\
+Subject: foobar
+Keywords: barbaz
+
+""")
+ msgdata = {}
+ Tagger.process(mlist, msg, msgdata)
+ eq(msg['x-topics'], 'bar fight')
+ eq(msgdata.get('topichits'), ['bar fight'])
+
+ def test_all_body_lines_plain_text(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.topics = [('bar fight', '.*bar.*', 'catch any bars', 1)]
+ mlist.topics_bodylines_limit = -1
+ msg = email.message_from_string("""\
+Subject: Was
+Keywords: Raw
+
+Subject: farbaw
+Keywords: barbaz
+""")
+ msgdata = {}
+ Tagger.process(mlist, msg, msgdata)
+ eq(msg['x-topics'], 'bar fight')
+ eq(msgdata.get('topichits'), ['bar fight'])
+
+ def test_no_body_lines(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.topics = [('bar fight', '.*bar.*', 'catch any bars', 1)]
+ mlist.topics_bodylines_limit = 0
+ msg = email.message_from_string("""\
+Subject: Was
+Keywords: Raw
+
+Subject: farbaw
+Keywords: barbaz
+""")
+ msgdata = {}
+ Tagger.process(mlist, msg, msgdata)
+ eq(msg['x-topics'], None)
+ eq(msgdata.get('topichits'), None)
+
+ def test_body_lines_in_multipart(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.topics = [('bar fight', '.*bar.*', 'catch any bars', 1)]
+ mlist.topics_bodylines_limit = -1
+ msg = email.message_from_string("""\
+Subject: Was
+Keywords: Raw
+Content-Type: multipart/alternative; boundary="BOUNDARY"
+
+--BOUNDARY
+From: sabo
+To: obas
+
+Subject: farbaw
+Keywords: barbaz
+
+--BOUNDARY--
+""")
+ msgdata = {}
+ Tagger.process(mlist, msg, msgdata)
+ eq(msg['x-topics'], None)
+ eq(msgdata.get('topichits'), None)
+
+ def test_body_lines_no_part(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.topics = [('bar fight', '.*bar.*', 'catch any bars', 1)]
+ mlist.topics_bodylines_limit = -1
+ msg = email.message_from_string("""\
+Subject: Was
+Keywords: Raw
+Content-Type: multipart/alternative; boundary="BOUNDARY"
+
+--BOUNDARY
+From: sabo
+To: obas
+Content-Type: message/rfc822
+
+Subject: farbaw
+Keywords: barbaz
+
+--BOUNDARY
+From: sabo
+To: obas
+Content-Type: message/rfc822
+
+Subject: farbaw
+Keywords: barbaz
+
+--BOUNDARY--
+""")
+ msgdata = {}
+ Tagger.process(mlist, msg, msgdata)
+ eq(msg['x-topics'], None)
+ eq(msgdata.get('topichits'), None)