diff options
author | Walter Dörwald <walter@livinglogic.de> | 2003-05-22 17:32:40 +0000 |
---|---|---|
committer | Walter Dörwald <walter@livinglogic.de> | 2003-05-22 17:32:40 +0000 |
commit | 8891021229abb3bc4a9732c8cfa1993dccde8674 (patch) | |
tree | 08b75fd0083e5b9011b66a401d83318375cdcb48 /Lib/test/test_mimetools.py | |
parent | fee10040b4289560b5747d9e774e7a2d5d058605 (diff) | |
download | cpython-git-8891021229abb3bc4a9732c8cfa1993dccde8674.tar.gz |
Port test_mimetools.py to PyUnit and add various tests.
From SF patch #736962.
Diffstat (limited to 'Lib/test/test_mimetools.py')
-rw-r--r-- | Lib/test/test_mimetools.py | 69 |
1 files changed, 51 insertions, 18 deletions
diff --git a/Lib/test/test_mimetools.py b/Lib/test/test_mimetools.py index 79464a2eaf..52809fa2b0 100644 --- a/Lib/test/test_mimetools.py +++ b/Lib/test/test_mimetools.py @@ -1,18 +1,51 @@ -from test.test_support import TestFailed -import mimetools - -import string,StringIO -start = string.ascii_letters + "=" + string.digits + "\n" -for enc in ['7bit','8bit','base64','quoted-printable']: - print enc, - i = StringIO.StringIO(start) - o = StringIO.StringIO() - mimetools.encode(i,o,enc) - i = StringIO.StringIO(o.getvalue()) - o = StringIO.StringIO() - mimetools.decode(i,o,enc) - if o.getvalue()==start: - print "PASS" - else: - print "FAIL" - print o.getvalue() +import unittest +from test import test_support + +import string, StringIO, mimetools, sets + +msgtext1 = mimetools.Message(StringIO.StringIO( +"""Content-Type: text/plain; charset=iso-8859-1; format=flowed +Content-Transfer-Encoding: 8bit + +Foo! +""")) + +class MimeToolsTest(unittest.TestCase): + + def test_decodeencode(self): + start = string.ascii_letters + "=" + string.digits + "\n" + for enc in ['7bit','8bit','base64','quoted-printable', + 'uuencode', 'x-uuencode', 'uue', 'x-uue']: + i = StringIO.StringIO(start) + o = StringIO.StringIO() + mimetools.encode(i, o, enc) + i = StringIO.StringIO(o.getvalue()) + o = StringIO.StringIO() + mimetools.decode(i, o, enc) + self.assertEqual(o.getvalue(), start) + + def test_boundary(self): + s = sets.Set([""]) + for i in xrange(100): + nb = mimetools.choose_boundary() + self.assert_(nb not in s) + s.add(nb) + + def test_message(self): + msg = mimetools.Message(StringIO.StringIO(msgtext1)) + self.assertEqual(msg.gettype(), "text/plain") + self.assertEqual(msg.getmaintype(), "text") + self.assertEqual(msg.getsubtype(), "plain") + self.assertEqual(msg.getplist(), ["charset=iso-8859-1", "format=flowed"]) + self.assertEqual(msg.getparamnames(), ["charset", "format"]) + self.assertEqual(msg.getparam("charset"), "iso-8859-1") + self.assertEqual(msg.getparam("format"), "flowed") + self.assertEqual(msg.getparam("spam"), None) + self.assertEqual(msg.getencoding(), "8bit") + +def test_main(): + test_support.run_unittest(MimeToolsTest) + +if __name__=="__main__": + test_main() + |