diff options
Diffstat (limited to 'tests/test_runners.py')
-rw-r--r-- | tests/test_runners.py | 120 |
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') |