test_mimetools.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import unittest
  2. from test import test_support
  3. import string
  4. import StringIO
  5. mimetools = test_support.import_module("mimetools", deprecated=True)
  6. msgtext1 = mimetools.Message(StringIO.StringIO(
  7. """Content-Type: text/plain; charset=iso-8859-1; format=flowed
  8. Content-Transfer-Encoding: 8bit
  9. Foo!
  10. """))
  11. class MimeToolsTest(unittest.TestCase):
  12. def test_decodeencode(self):
  13. start = string.ascii_letters + "=" + string.digits + "\n"
  14. for enc in ['7bit','8bit','base64','quoted-printable',
  15. 'uuencode', 'x-uuencode', 'uue', 'x-uue']:
  16. i = StringIO.StringIO(start)
  17. o = StringIO.StringIO()
  18. mimetools.encode(i, o, enc)
  19. i = StringIO.StringIO(o.getvalue())
  20. o = StringIO.StringIO()
  21. mimetools.decode(i, o, enc)
  22. self.assertEqual(o.getvalue(), start)
  23. def test_boundary(self):
  24. s = set([""])
  25. for i in xrange(100):
  26. nb = mimetools.choose_boundary()
  27. self.assertNotIn(nb, s)
  28. s.add(nb)
  29. def test_message(self):
  30. msg = mimetools.Message(StringIO.StringIO(msgtext1))
  31. self.assertEqual(msg.gettype(), "text/plain")
  32. self.assertEqual(msg.getmaintype(), "text")
  33. self.assertEqual(msg.getsubtype(), "plain")
  34. self.assertEqual(msg.getplist(), ["charset=iso-8859-1", "format=flowed"])
  35. self.assertEqual(msg.getparamnames(), ["charset", "format"])
  36. self.assertEqual(msg.getparam("charset"), "iso-8859-1")
  37. self.assertEqual(msg.getparam("format"), "flowed")
  38. self.assertEqual(msg.getparam("spam"), None)
  39. self.assertEqual(msg.getencoding(), "8bit")
  40. def test_main():
  41. test_support.run_unittest(MimeToolsTest)
  42. if __name__=="__main__":
  43. test_main()