Skip to content

Commit f59fffe

Browse files
Update tests.
1 parent ce5bcd2 commit f59fffe

1 file changed

Lines changed: 58 additions & 48 deletions

File tree

Lib/test/test_binascii.py

Lines changed: 58 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,43 @@ def test_exceptions(self):
4747
self.assertIsSubclass(binascii.Incomplete, Exception)
4848

4949
def test_constants(self):
50-
for name in ('BASE64_ALPHABET', 'URLSAFE_BASE64_ALPHABET',
51-
'CRYPT_ALPHABET', 'BCRYPT_ALPHABET',
52-
'UU_ALPHABET', 'XX_ALPHABET',
53-
'BINHEX_ALPHABET'):
54-
value = getattr(binascii, name)
55-
self.assertIsInstance(value, bytes)
56-
self.assertEqual(len(value), 64)
57-
self.assertEqual(len(set(value)), 64)
50+
self.assertEqual(binascii.BASE64_ALPHABET,
51+
b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
52+
b'abcdefghijklmnopqrstuvwxyz'
53+
b'0123456789+/')
54+
self.assertEqual(binascii.URLSAFE_BASE64_ALPHABET,
55+
binascii.BASE64_ALPHABET[:-2] + b'-_')
56+
self.assertEqual(binascii.CRYPT_ALPHABET,
57+
b'./0123456789'
58+
b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
59+
b'abcdefghijklmnopqrstuvwxyz')
60+
self.assertEqual(binascii.BCRYPT_ALPHABET,
61+
b'./'
62+
b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
63+
b'abcdefghijklmnopqrstuvwxyz'
64+
b'0123456789')
65+
self.assertEqual(binascii.UU_ALPHABET, bytes(range(32, 32+64)))
66+
self.assertEqual(binascii.XX_ALPHABET,
67+
b'+-0123456789'
68+
b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
69+
b'abcdefghijklmnopqrstuvwxyz')
70+
self.assertEqual(binascii.BINHEX_ALPHABET,
71+
b'!"#$%&\'()*+,-012345689'
72+
b'@ABCDEFGHIJKLMNPQRSTUVXYZ['
73+
b'`abcdefhijklmpqr')
74+
75+
self.assertEqual(binascii.BASE85_ALPHABET,
76+
b'0123456789'
77+
b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
78+
b'abcdefghijklmnopqrstuvwxyz'
79+
b'!#$%&()*+-;<=>?@^_`{|}~')
80+
self.assertEqual(binascii.ASCII85_ALPHABET, bytes(range(33, 33+85)))
81+
self.assertEqual(binascii.Z85_ALPHABET,
82+
b'0123456789'
83+
b'abcdefghijklmnopqrstuvwxyz'
84+
b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
85+
b'.-:+=^!/*?&<>()[]{}@%$#')
86+
5887
for name in ('BASE85_ALPHABET', 'ASCII85_ALPHABET',
5988
'Z85_ALPHABET'):
6089
value = getattr(binascii, name)
@@ -323,10 +352,7 @@ def test_base64_alphabet(self):
323352
b'ABCDEFGHIJKLMNPQRSTUVXYZ[`abcdefhijklmpqr')
324353
data = self.type2test(self.rawdata)
325354
encoded = binascii.b2a_base64(data, alphabet=alphabet)
326-
std_alphabet = (b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
327-
b'abcdefghijklmnopqrstuvwxyz'
328-
b'0123456789+/')
329-
trans = bytes.maketrans(std_alphabet, alphabet)
355+
trans = bytes.maketrans(binascii.BASE64_ALPHABET, alphabet)
330356
expected = binascii.b2a_base64(data).translate(trans)
331357
self.assertEqual(encoded, expected)
332358
self.assertEqual(binascii.a2b_base64(encoded, alphabet=alphabet), self.rawdata)
@@ -336,24 +362,17 @@ def test_base64_alphabet(self):
336362
self.assertEqual(binascii.b2a_base64(data, alphabet=alphabet), b'\n')
337363
self.assertEqual(binascii.a2b_base64(data, alphabet=alphabet), b'')
338364

339-
with self.assertRaises(TypeError):
340-
binascii.b2a_base64(data, alphabet=None)
341-
with self.assertRaises(TypeError):
342-
binascii.a2b_base64(data, alphabet=None)
343-
with self.assertRaises(TypeError):
344-
binascii.b2a_base64(data, alphabet=alphabet.decode())
345-
with self.assertRaises(TypeError):
346-
binascii.a2b_base64(data, alphabet=alphabet.decode())
365+
for func in binascii.b2a_base64, binascii.a2b_base64:
366+
with self.assertRaises(TypeError):
367+
func(data, alphabet=None)
368+
with self.assertRaises(TypeError):
369+
func(data, alphabet=alphabet.decode())
370+
with self.assertRaises(ValueError):
371+
func(data, alphabet=alphabet[:-1])
372+
with self.assertRaises(ValueError):
373+
func(data, alphabet=alphabet+b'?')
347374
with self.assertRaises(TypeError):
348375
binascii.a2b_base64(data, alphabet=bytearray(alphabet))
349-
with self.assertRaises(ValueError):
350-
binascii.b2a_base64(data, alphabet=alphabet[:-1])
351-
with self.assertRaises(ValueError):
352-
binascii.a2b_base64(data, alphabet=alphabet[:-1])
353-
with self.assertRaises(ValueError):
354-
binascii.b2a_base64(data, alphabet=alphabet+b'?')
355-
with self.assertRaises(ValueError):
356-
binascii.a2b_base64(data, alphabet=alphabet+b'?')
357376

358377
def test_ascii85_valid(self):
359378
# Test Ascii85 with valid data
@@ -645,9 +664,7 @@ def test_base85_alphabet(self):
645664
b'ABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#')
646665
data = self.type2test(self.rawdata)
647666
encoded = binascii.b2a_base85(data, alphabet=alphabet)
648-
std_alphabet = (b'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
649-
b'abcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~')
650-
trans = bytes.maketrans(std_alphabet, alphabet)
667+
trans = bytes.maketrans(binascii.BASE85_ALPHABET, alphabet)
651668
expected = binascii.b2a_base85(data).translate(trans)
652669
self.assertEqual(encoded, expected)
653670
self.assertEqual(binascii.a2b_base85(encoded, alphabet=alphabet), self.rawdata)
@@ -657,24 +674,17 @@ def test_base85_alphabet(self):
657674
self.assertEqual(binascii.b2a_base85(data, alphabet=alphabet), b'')
658675
self.assertEqual(binascii.a2b_base85(data, alphabet=alphabet), b'')
659676

677+
for func in binascii.b2a_base85, binascii.a2b_base85:
678+
with self.assertRaises(TypeError):
679+
func(data, alphabet=None)
680+
with self.assertRaises(TypeError):
681+
func(data, alphabet=alphabet.decode())
682+
with self.assertRaises(ValueError):
683+
func(data, alphabet=alphabet[:-1])
684+
with self.assertRaises(ValueError):
685+
func(data, alphabet=alphabet+b'?')
660686
with self.assertRaises(TypeError):
661-
binascii.b2a_base85(data, alphabet=None)
662-
with self.assertRaises(TypeError):
663-
binascii.a2b_base85(data, alphabet=None)
664-
with self.assertRaises(TypeError):
665-
binascii.b2a_base85(data, alphabet=alphabet.decode())
666-
with self.assertRaises(TypeError):
667-
binascii.a2b_base85(data, alphabet=alphabet.decode())
668-
with self.assertRaises(TypeError):
669-
binascii.a2b_base85(data, alphabet=bytearray(alphabet))
670-
with self.assertRaises(ValueError):
671-
binascii.b2a_base85(data, alphabet=alphabet[:-1])
672-
with self.assertRaises(ValueError):
673-
binascii.a2b_base85(data, alphabet=alphabet[:-1])
674-
with self.assertRaises(ValueError):
675-
binascii.b2a_base85(data, alphabet=alphabet+b'?')
676-
with self.assertRaises(ValueError):
677-
binascii.a2b_base85(data, alphabet=alphabet+b'?')
687+
binascii.a2b_base64(data, alphabet=bytearray(alphabet))
678688

679689
def test_uu(self):
680690
MAX_UU = 45

0 commit comments

Comments
 (0)