blob: 42e3c81d7305dc44a740748ae06364f4f75433e2 [file] [log] [blame]
Raymond Hettinger2ae87532002-05-18 00:25:10 +00001import unittest
Barry Warsaw04f357c2002-07-23 19:04:11 +00002from test import test_support
Raymond Hettinger2ae87532002-05-18 00:25:10 +00003import base64
4from binascii import Error as binascii_error
5
6class Base64TestCase(unittest.TestCase):
7 def test_encode_string(self):
8 """Testing encode string"""
Tim Peters8ac14952002-05-23 15:15:30 +00009 test_support.verify(base64.encodestring("www.python.org") ==
10 "d3d3LnB5dGhvbi5vcmc=\n",
Raymond Hettinger2ae87532002-05-18 00:25:10 +000011 reason="www.python.org encodestring failed")
Tim Peters8ac14952002-05-23 15:15:30 +000012 test_support.verify(base64.encodestring("a") ==
13 "YQ==\n",
Raymond Hettinger2ae87532002-05-18 00:25:10 +000014 reason="a encodestring failed")
Tim Peters8ac14952002-05-23 15:15:30 +000015 test_support.verify(base64.encodestring("ab") ==
16 "YWI=\n",
Raymond Hettinger2ae87532002-05-18 00:25:10 +000017 reason="ab encodestring failed")
Tim Peters8ac14952002-05-23 15:15:30 +000018 test_support.verify(base64.encodestring("abc") ==
19 "YWJj\n",
Raymond Hettinger2ae87532002-05-18 00:25:10 +000020 reason="abc encodestring failed")
Tim Peters8ac14952002-05-23 15:15:30 +000021 test_support.verify(base64.encodestring("") ==
22 "",
Raymond Hettinger2ae87532002-05-18 00:25:10 +000023 reason="null encodestring failed")
24 test_support.verify(base64.encodestring(
25 "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#0^&*();:<>,. []{}") ==
26 "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0\nNTY3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==\n",
27 reason = "long encodestring failed")
28
29 def test_decode_string(self):
30 """Testing decode string"""
31 test_support.verify(base64.decodestring("d3d3LnB5dGhvbi5vcmc=\n") ==
Tim Peters8ac14952002-05-23 15:15:30 +000032 "www.python.org",
Raymond Hettinger2ae87532002-05-18 00:25:10 +000033 reason="www.python.org decodestring failed")
34 test_support.verify(base64.decodestring("YQ==\n") ==
Tim Peters8ac14952002-05-23 15:15:30 +000035 "a",
Raymond Hettinger2ae87532002-05-18 00:25:10 +000036 reason="a decodestring failed")
37 test_support.verify(base64.decodestring("YWI=\n") ==
Tim Peters8ac14952002-05-23 15:15:30 +000038 "ab",
Raymond Hettinger2ae87532002-05-18 00:25:10 +000039 reason="ab decodestring failed")
40 test_support.verify(base64.decodestring("YWJj\n") ==
Tim Peters8ac14952002-05-23 15:15:30 +000041 "abc",
Raymond Hettinger2ae87532002-05-18 00:25:10 +000042 reason="abc decodestring failed")
43 test_support.verify(base64.decodestring(
44 "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0\nNTY3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==\n") ==
45 "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#0^&*();:<>,. []{}",
46 reason = "long decodestring failed")
Barry Warsaw0a51b582002-08-15 22:14:24 +000047 test_support.verify(base64.decodestring('') == '')
Tim Peters8ac14952002-05-23 15:15:30 +000048
Raymond Hettinger2ae87532002-05-18 00:25:10 +000049def test_main():
50 test_support.run_unittest(Base64TestCase)
51
52if __name__ == "__main__":
53 test_main()