| import unittest | 
 | from test import test_support | 
 |  | 
 | import string, mimetools | 
 | import io | 
 |  | 
 | msgtext1 = mimetools.Message(io.StringIO( | 
 | """Content-Type: text/plain; charset=iso-8859-1; format=flowed | 
 | Content-Transfer-Encoding: 8bit | 
 |  | 
 | Foo! | 
 | """)) | 
 |  | 
 | sample = bytes(string.ascii_letters + "=" + string.digits + "\n", "ASCII") | 
 |  | 
 | class MimeToolsTest(unittest.TestCase): | 
 |  | 
 |     def decode_encode_test(self, enc): | 
 |         i = io.BytesIO(sample) | 
 |         o = io.BytesIO() | 
 |         mimetools.encode(i, o, enc) | 
 |         i = io.BytesIO(o.getvalue()) | 
 |         o = io.BytesIO() | 
 |         mimetools.decode(i, o, enc) | 
 |         self.assertEqual(o.getvalue(), sample) | 
 |  | 
 |     # Separate tests for better diagnostics | 
 |  | 
 |     def test_7bit(self): | 
 |         self.decode_encode_test('7bit') | 
 |  | 
 |     def test_8bit(self): | 
 |         self.decode_encode_test('8bit') | 
 |  | 
 |     def test_base64(self): | 
 |         self.decode_encode_test('base64') | 
 |  | 
 |     def test_quoted_printable(self): | 
 |         self.decode_encode_test('quoted-printable') | 
 |  | 
 |     def test_uuencode(self): | 
 |         self.decode_encode_test('uuencode') | 
 |  | 
 |     def test_x_uuencode(self): | 
 |         self.decode_encode_test('x-uuencode') | 
 |  | 
 |     def test_uue(self): | 
 |         self.decode_encode_test('uue') | 
 |  | 
 |     def test_x_uue(self): | 
 |         self.decode_encode_test('x-uue') | 
 |  | 
 |     def test_boundary(self): | 
 |         s = set([""]) | 
 |         for i in range(100): | 
 |             nb = mimetools.choose_boundary() | 
 |             self.assert_(nb not in s) | 
 |             s.add(nb) | 
 |  | 
 |     def test_message(self): | 
 |         msg = mimetools.Message(io.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() |