summaryrefslogtreecommitdiff
path: root/Mailman/testing/test_handlers.py
diff options
context:
space:
mode:
authorBarry Warsaw2007-07-10 22:39:57 -0400
committerBarry Warsaw2007-07-10 22:39:57 -0400
commitde429f33191b84bc261535d8deba54399fb1bd4a (patch)
tree1d1f2b932c33f70deb34ee68c802bbd3ee2cb8df /Mailman/testing/test_handlers.py
parentbebaec0e24f3492ff4190c36074b6c51cd44589b (diff)
downloadmailman-de429f33191b84bc261535d8deba54399fb1bd4a.tar.gz
mailman-de429f33191b84bc261535d8deba54399fb1bd4a.tar.zst
mailman-de429f33191b84bc261535d8deba54399fb1bd4a.zip
Conversion of the ToDigest tests to doctests, along with just enough handler
module update to make the thing pass. Much more coverage is still necessary, but this at least recreates the existing tests. Changes to the test infrastructure to make REPORT_ONLY_FIRST_FAILURE conditional on lower (default) verbosity. Increase the verbosity via 'bin/testall -v' and you get all the failure output.
Diffstat (limited to 'Mailman/testing/test_handlers.py')
-rw-r--r--Mailman/testing/test_handlers.py116
1 files changed, 0 insertions, 116 deletions
diff --git a/Mailman/testing/test_handlers.py b/Mailman/testing/test_handlers.py
index 8b1f11e98..aa7ac0dae 100644
--- a/Mailman/testing/test_handlers.py
+++ b/Mailman/testing/test_handlers.py
@@ -43,7 +43,6 @@ from Mailman.Handlers import Moderate
from Mailman.Handlers import Scrubber
# Don't test handlers such as SMTPDirect and Sendmail here
from Mailman.Handlers import ToArchive
-from Mailman.Handlers import ToDigest
@@ -275,124 +274,9 @@ It rocks!
-class TestToDigest(TestBase):
- def _makemsg(self, i=0):
- msg = email.message_from_string("""From: aperson@example.org
-To: _xtest@example.com
-Subject: message number %(i)d
-
-Here is message %(i)d
-""" % {'i' : i})
- return msg
-
- def setUp(self):
- TestBase.setUp(self)
- self._path = os.path.join(self._mlist.fullpath(), 'digest.mbox')
- fp = open(self._path, 'w')
- g = Generator(fp)
- for i in range(5):
- g.flatten(self._makemsg(i), unixfrom=1)
- fp.close()
- self._sb = Switchboard(config.VIRGINQUEUE_DIR)
-
- def tearDown(self):
- try:
- os.unlink(self._path)
- except OSError, e:
- if e.errno <> errno.ENOENT: raise
- for f in os.listdir(config.VIRGINQUEUE_DIR):
- os.unlink(os.path.join(config.VIRGINQUEUE_DIR, f))
- TestBase.tearDown(self)
-
- def test_short_circuit(self):
- eq = self.assertEqual
- mlist = self._mlist
- mlist.digestable = 0
- eq(ToDigest.process(mlist, None, {}), None)
- mlist.digestable = 1
- eq(ToDigest.process(mlist, None, {'isdigest': 1}), None)
- eq(self._sb.files(), [])
-
- def test_undersized(self):
- msg = self._makemsg(99)
- size = os.path.getsize(self._path) + len(str(msg))
- self._mlist.digest_size_threshhold = (size + 1) * 1024
- ToDigest.process(self._mlist, msg, {})
- self.assertEqual(self._sb.files(), [])
-
- def test_send_a_digest(self):
- eq = self.assertEqual
- mlist = self._mlist
- msg = self._makemsg(99)
- size = os.path.getsize(self._path) + len(str(msg))
- mlist.digest_size_threshhold = 0
- ToDigest.process(mlist, msg, {})
- files = self._sb.files()
- # There should be two files in the queue, one for the MIME digest and
- # one for the RFC 1153 digest.
- eq(len(files), 2)
- # Now figure out which of the two files is the MIME digest and which
- # is the RFC 1153 digest.
- for filebase in files:
- qmsg, qdata = self._sb.dequeue(filebase)
- if qmsg.get_content_maintype() == 'multipart':
- mimemsg = qmsg
- mimedata = qdata
- else:
- rfc1153msg = qmsg
- rfc1153data = qdata
- eq(rfc1153msg.get_content_type(), 'text/plain')
- eq(mimemsg.get_content_type(), 'multipart/mixed')
- eq(mimemsg['from'], mlist.GetRequestEmail())
- eq(mimemsg['subject'],
- '%(realname)s Digest, Vol %(volume)d, Issue %(issue)d' % {
- 'realname': mlist.real_name,
- 'volume' : mlist.volume,
- 'issue' : mlist.next_digest_number - 1,
- })
- eq(mimemsg['to'], mlist.GetListEmail())
- # BAW: this test is incomplete...
-
- def test_send_i18n_digest(self):
- eq = self.assertEqual
- mlist = self._mlist
- mlist.preferred_language = 'fr'
- msg = email.message_from_string("""\
-From: aperson@example.org
-To: _xtest@example.com
-Subject: =?iso-2022-jp?b?GyRCMGxIVhsoQg==?=
-MIME-Version: 1.0
-Content-Type: text/plain; charset=iso-2022-jp
-Content-Transfer-Encoding: 7bit
-
-\x1b$B0lHV\x1b(B
-""")
- mlist.digest_size_threshhold = 0
- ToDigest.process(mlist, msg, {})
- files = self._sb.files()
- eq(len(files), 2)
- for filebase in files:
- qmsg, qdata = self._sb.dequeue(filebase)
- if qmsg.get_content_maintype() == 'multipart':
- mimemsg = qmsg
- mimedata = qdata
- else:
- rfc1153msg = qmsg
- rfc1153data = qdata
- eq(rfc1153msg.get_content_type(), 'text/plain')
- eq(rfc1153msg.get_content_charset(), 'utf-8')
- eq(rfc1153msg['content-transfer-encoding'], 'base64')
- toc = mimemsg.get_payload()[1]
- eq(toc.get_content_type(), 'text/plain')
- eq(toc.get_content_charset(), 'utf-8')
- eq(toc['content-transfer-encoding'], 'base64')
-
-
-
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestApprove))
suite.addTest(unittest.makeSuite(TestScrubber))
suite.addTest(unittest.makeSuite(TestToArchive))
- suite.addTest(unittest.makeSuite(TestToDigest))
return suite