| 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() |