home *** CD-ROM | disk | FTP | other *** search
- 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()
-