]> git.proxmox.com Git - mirror_edk2.git/blame - AppPkg/Applications/Python/Python-2.7.2/Lib/test/test_base64.py
EmbeddedPkg: Extend NvVarStoreFormattedLib LIBRARY_CLASS
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.2 / Lib / test / test_base64.py
CommitLineData
4710c53d 1import unittest\r
2from test import test_support\r
3import base64\r
4\r
5\r
6\f\r
7class LegacyBase64TestCase(unittest.TestCase):\r
8 def test_encodestring(self):\r
9 eq = self.assertEqual\r
10 eq(base64.encodestring("www.python.org"), "d3d3LnB5dGhvbi5vcmc=\n")\r
11 eq(base64.encodestring("a"), "YQ==\n")\r
12 eq(base64.encodestring("ab"), "YWI=\n")\r
13 eq(base64.encodestring("abc"), "YWJj\n")\r
14 eq(base64.encodestring(""), "")\r
15 eq(base64.encodestring("abcdefghijklmnopqrstuvwxyz"\r
16 "ABCDEFGHIJKLMNOPQRSTUVWXYZ"\r
17 "0123456789!@#0^&*();:<>,. []{}"),\r
18 "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNE"\r
19 "RUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0\nNT"\r
20 "Y3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==\n")\r
21\r
22 def test_decodestring(self):\r
23 eq = self.assertEqual\r
24 eq(base64.decodestring("d3d3LnB5dGhvbi5vcmc=\n"), "www.python.org")\r
25 eq(base64.decodestring("YQ==\n"), "a")\r
26 eq(base64.decodestring("YWI=\n"), "ab")\r
27 eq(base64.decodestring("YWJj\n"), "abc")\r
28 eq(base64.decodestring("YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNE"\r
29 "RUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0\nNT"\r
30 "Y3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==\n"),\r
31 "abcdefghijklmnopqrstuvwxyz"\r
32 "ABCDEFGHIJKLMNOPQRSTUVWXYZ"\r
33 "0123456789!@#0^&*();:<>,. []{}")\r
34 eq(base64.decodestring(''), '')\r
35\r
36 def test_encode(self):\r
37 eq = self.assertEqual\r
38 from cStringIO import StringIO\r
39 infp = StringIO('abcdefghijklmnopqrstuvwxyz'\r
40 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'\r
41 '0123456789!@#0^&*();:<>,. []{}')\r
42 outfp = StringIO()\r
43 base64.encode(infp, outfp)\r
44 eq(outfp.getvalue(),\r
45 'YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNE'\r
46 'RUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0\nNT'\r
47 'Y3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==\n')\r
48\r
49 def test_decode(self):\r
50 from cStringIO import StringIO\r
51 infp = StringIO('d3d3LnB5dGhvbi5vcmc=')\r
52 outfp = StringIO()\r
53 base64.decode(infp, outfp)\r
54 self.assertEqual(outfp.getvalue(), 'www.python.org')\r
55\r
56\r
57\f\r
58class BaseXYTestCase(unittest.TestCase):\r
59 def test_b64encode(self):\r
60 eq = self.assertEqual\r
61 # Test default alphabet\r
62 eq(base64.b64encode("www.python.org"), "d3d3LnB5dGhvbi5vcmc=")\r
63 eq(base64.b64encode('\x00'), 'AA==')\r
64 eq(base64.b64encode("a"), "YQ==")\r
65 eq(base64.b64encode("ab"), "YWI=")\r
66 eq(base64.b64encode("abc"), "YWJj")\r
67 eq(base64.b64encode(""), "")\r
68 eq(base64.b64encode("abcdefghijklmnopqrstuvwxyz"\r
69 "ABCDEFGHIJKLMNOPQRSTUVWXYZ"\r
70 "0123456789!@#0^&*();:<>,. []{}"),\r
71 "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNE"\r
72 "RUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NT"\r
73 "Y3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==")\r
74 # Test with arbitrary alternative characters\r
75 eq(base64.b64encode('\xd3V\xbeo\xf7\x1d', altchars='*$'), '01a*b$cd')\r
76 # Test standard alphabet\r
77 eq(base64.standard_b64encode("www.python.org"), "d3d3LnB5dGhvbi5vcmc=")\r
78 eq(base64.standard_b64encode("a"), "YQ==")\r
79 eq(base64.standard_b64encode("ab"), "YWI=")\r
80 eq(base64.standard_b64encode("abc"), "YWJj")\r
81 eq(base64.standard_b64encode(""), "")\r
82 eq(base64.standard_b64encode("abcdefghijklmnopqrstuvwxyz"\r
83 "ABCDEFGHIJKLMNOPQRSTUVWXYZ"\r
84 "0123456789!@#0^&*();:<>,. []{}"),\r
85 "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNE"\r
86 "RUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NT"\r
87 "Y3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==")\r
88 # Test with 'URL safe' alternative characters\r
89 eq(base64.urlsafe_b64encode('\xd3V\xbeo\xf7\x1d'), '01a-b_cd')\r
90\r
91 def test_b64decode(self):\r
92 eq = self.assertEqual\r
93 eq(base64.b64decode("d3d3LnB5dGhvbi5vcmc="), "www.python.org")\r
94 eq(base64.b64decode('AA=='), '\x00')\r
95 eq(base64.b64decode("YQ=="), "a")\r
96 eq(base64.b64decode("YWI="), "ab")\r
97 eq(base64.b64decode("YWJj"), "abc")\r
98 eq(base64.b64decode("YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNE"\r
99 "RUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0\nNT"\r
100 "Y3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ=="),\r
101 "abcdefghijklmnopqrstuvwxyz"\r
102 "ABCDEFGHIJKLMNOPQRSTUVWXYZ"\r
103 "0123456789!@#0^&*();:<>,. []{}")\r
104 eq(base64.b64decode(''), '')\r
105 # Test with arbitrary alternative characters\r
106 eq(base64.b64decode('01a*b$cd', altchars='*$'), '\xd3V\xbeo\xf7\x1d')\r
107 # Test standard alphabet\r
108 eq(base64.standard_b64decode("d3d3LnB5dGhvbi5vcmc="), "www.python.org")\r
109 eq(base64.standard_b64decode("YQ=="), "a")\r
110 eq(base64.standard_b64decode("YWI="), "ab")\r
111 eq(base64.standard_b64decode("YWJj"), "abc")\r
112 eq(base64.standard_b64decode(""), "")\r
113 eq(base64.standard_b64decode("YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNE"\r
114 "RUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NT"\r
115 "Y3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ=="),\r
116 "abcdefghijklmnopqrstuvwxyz"\r
117 "ABCDEFGHIJKLMNOPQRSTUVWXYZ"\r
118 "0123456789!@#0^&*();:<>,. []{}")\r
119 # Test with 'URL safe' alternative characters\r
120 eq(base64.urlsafe_b64decode('01a-b_cd'), '\xd3V\xbeo\xf7\x1d')\r
121\r
122 def test_b64decode_error(self):\r
123 self.assertRaises(TypeError, base64.b64decode, 'abc')\r
124\r
125 def test_b32encode(self):\r
126 eq = self.assertEqual\r
127 eq(base64.b32encode(''), '')\r
128 eq(base64.b32encode('\x00'), 'AA======')\r
129 eq(base64.b32encode('a'), 'ME======')\r
130 eq(base64.b32encode('ab'), 'MFRA====')\r
131 eq(base64.b32encode('abc'), 'MFRGG===')\r
132 eq(base64.b32encode('abcd'), 'MFRGGZA=')\r
133 eq(base64.b32encode('abcde'), 'MFRGGZDF')\r
134\r
135 def test_b32decode(self):\r
136 eq = self.assertEqual\r
137 eq(base64.b32decode(''), '')\r
138 eq(base64.b32decode('AA======'), '\x00')\r
139 eq(base64.b32decode('ME======'), 'a')\r
140 eq(base64.b32decode('MFRA===='), 'ab')\r
141 eq(base64.b32decode('MFRGG==='), 'abc')\r
142 eq(base64.b32decode('MFRGGZA='), 'abcd')\r
143 eq(base64.b32decode('MFRGGZDF'), 'abcde')\r
144\r
145 def test_b32decode_casefold(self):\r
146 eq = self.assertEqual\r
147 eq(base64.b32decode('', True), '')\r
148 eq(base64.b32decode('ME======', True), 'a')\r
149 eq(base64.b32decode('MFRA====', True), 'ab')\r
150 eq(base64.b32decode('MFRGG===', True), 'abc')\r
151 eq(base64.b32decode('MFRGGZA=', True), 'abcd')\r
152 eq(base64.b32decode('MFRGGZDF', True), 'abcde')\r
153 # Lower cases\r
154 eq(base64.b32decode('me======', True), 'a')\r
155 eq(base64.b32decode('mfra====', True), 'ab')\r
156 eq(base64.b32decode('mfrgg===', True), 'abc')\r
157 eq(base64.b32decode('mfrggza=', True), 'abcd')\r
158 eq(base64.b32decode('mfrggzdf', True), 'abcde')\r
159 # Expected exceptions\r
160 self.assertRaises(TypeError, base64.b32decode, 'me======')\r
161 # Mapping zero and one\r
162 eq(base64.b32decode('MLO23456'), 'b\xdd\xad\xf3\xbe')\r
163 eq(base64.b32decode('M1023456', map01='L'), 'b\xdd\xad\xf3\xbe')\r
164 eq(base64.b32decode('M1023456', map01='I'), 'b\x1d\xad\xf3\xbe')\r
165\r
166 def test_b32decode_error(self):\r
167 self.assertRaises(TypeError, base64.b32decode, 'abc')\r
168 self.assertRaises(TypeError, base64.b32decode, 'ABCDEF==')\r
169\r
170 def test_b16encode(self):\r
171 eq = self.assertEqual\r
172 eq(base64.b16encode('\x01\x02\xab\xcd\xef'), '0102ABCDEF')\r
173 eq(base64.b16encode('\x00'), '00')\r
174\r
175 def test_b16decode(self):\r
176 eq = self.assertEqual\r
177 eq(base64.b16decode('0102ABCDEF'), '\x01\x02\xab\xcd\xef')\r
178 eq(base64.b16decode('00'), '\x00')\r
179 # Lower case is not allowed without a flag\r
180 self.assertRaises(TypeError, base64.b16decode, '0102abcdef')\r
181 # Case fold\r
182 eq(base64.b16decode('0102abcdef', True), '\x01\x02\xab\xcd\xef')\r
183\r
184\r
185\f\r
186def test_main():\r
187 test_support.run_unittest(__name__)\r
188\r
189if __name__ == '__main__':\r
190 test_main()\r