aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_runners.py
diff options
context:
space:
mode:
author <>2003-01-02 05:25:50 +0000
committer <>2003-01-02 05:25:50 +0000
commitb132a73f15e432eaf43310fce9196ca0c0651465 (patch)
treec15f816ba7c4de99fef510e3bd75af0890d47441 /tests/test_runners.py
downloadmailman2-b132a73f15e432eaf43310fce9196ca0c0651465.tar.gz
mailman2-b132a73f15e432eaf43310fce9196ca0c0651465.tar.xz
mailman2-b132a73f15e432eaf43310fce9196ca0c0651465.zip
This commit was manufactured by cvs2svn to create branch
'Release_2_1-maint'.
Diffstat (limited to 'tests/test_runners.py')
-rw-r--r--tests/test_runners.py120
1 files changed, 120 insertions, 0 deletions
diff --git a/tests/test_runners.py b/tests/test_runners.py
new file mode 100644
index 00000000..6363ac66
--- /dev/null
+++ b/tests/test_runners.py
@@ -0,0 +1,120 @@
+# Copyright (C) 2001 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Unit tests for the various Mailman/Queue/*Runner.py modules
+"""
+
+import unittest
+import email
+
+from Mailman.Queue.NewsRunner import prepare_message
+
+from TestBase import TestBase
+
+
+
+class TestPrepMessage(TestBase):
+ def test_remove_unacceptables(self):
+ eq = self.assertEqual
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+To: _xtest@dom.ain
+NNTP-Posting-Host: news.dom.ain
+NNTP-Posting-Date: today
+X-Trace: blah blah
+X-Complaints-To: abuse@dom.ain
+Xref: blah blah
+Xref: blah blah
+Date-Received: yesterday
+Posted: tomorrow
+Posting-Version: 99.99
+Relay-Version: 88.88
+Received: blah blah
+
+A message
+""")
+ msgdata = {}
+ prepare_message(self._mlist, msg, msgdata)
+ eq(msgdata.get('prepped'), 1)
+ eq(msg['from'], 'aperson@dom.ain')
+ eq(msg['to'], '_xtest@dom.ain')
+ eq(msg['nntp-posting-host'], None)
+ eq(msg['nntp-posting-date'], None)
+ eq(msg['x-trace'], None)
+ eq(msg['x-complaints-to'], None)
+ eq(msg['xref'], None)
+ eq(msg['date-received'], None)
+ eq(msg['posted'], None)
+ eq(msg['posting-version'], None)
+ eq(msg['relay-version'], None)
+ eq(msg['received'], None)
+
+ def test_munge_duplicates_no_duplicates(self):
+ eq = self.assertEqual
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+To: _xtest@dom.ain
+Cc: someother@dom.ain
+Content-Transfer-Encoding: yes
+
+A message
+""")
+ msgdata = {}
+ prepare_message(self._mlist, msg, msgdata)
+ eq(msgdata.get('prepped'), 1)
+ eq(msg['from'], 'aperson@dom.ain')
+ eq(msg['to'], '_xtest@dom.ain')
+ eq(msg['cc'], 'someother@dom.ain')
+ eq(msg['content-transfer-encoding'], 'yes')
+
+ def test_munge_duplicates(self):
+ eq = self.assertEqual
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+To: _xtest@dom.ain
+To: two@dom.ain
+Cc: three@dom.ain
+Cc: four@dom.ain
+Cc: five@dom.ain
+Content-Transfer-Encoding: yes
+Content-Transfer-Encoding: no
+Content-Transfer-Encoding: maybe
+
+A message
+""")
+ msgdata = {}
+ prepare_message(self._mlist, msg, msgdata)
+ eq(msgdata.get('prepped'), 1)
+ eq(msg.get_all('from'), ['aperson@dom.ain'])
+ eq(msg.get_all('to'), ['_xtest@dom.ain'])
+ eq(msg.get_all('cc'), ['three@dom.ain'])
+ eq(msg.get_all('content-transfer-encoding'), ['yes'])
+ eq(msg.get_all('x-original-to'), ['two@dom.ain'])
+ eq(msg.get_all('x-original-cc'), ['four@dom.ain', 'five@dom.ain'])
+ eq(msg.get_all('x-original-content-transfer-encoding'),
+ ['no', 'maybe'])
+
+
+
+def suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(TestPrepMessage))
+ return suite
+
+
+
+if __name__ == '__main__':
+ unittest.main(defaultTest='suite')