diff options
author | Xiang Zhang <angwerzx@126.com> | 2017-05-03 03:16:21 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-03 03:16:21 (GMT) |
commit | 13f1f423fac39f8f14a3ce919dd236975517d5c6 (patch) | |
tree | 674546ddbbbfaf930c0087eeb1621fab11e25d5f /Lib/test/test_binascii.py | |
parent | 0360a9d015ddbc4e3d58e3ab4b433da27bf1db3a (diff) | |
download | cpython-13f1f423fac39f8f14a3ce919dd236975517d5c6.zip cpython-13f1f423fac39f8f14a3ce919dd236975517d5c6.tar.gz cpython-13f1f423fac39f8f14a3ce919dd236975517d5c6.tar.bz2 |
bpo-30103: Allow Uuencode in Python using backtick as zero instead of space (#1326)
Diffstat (limited to 'Lib/test/test_binascii.py')
-rw-r--r-- | Lib/test/test_binascii.py | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/Lib/test/test_binascii.py b/Lib/test/test_binascii.py index 6b3e437..8fa57cd 100644 --- a/Lib/test/test_binascii.py +++ b/Lib/test/test_binascii.py @@ -112,29 +112,41 @@ class BinASCIITest(unittest.TestCase): def test_uu(self): MAX_UU = 45 - lines = [] - for i in range(0, len(self.data), MAX_UU): - b = self.type2test(self.rawdata[i:i+MAX_UU]) - a = binascii.b2a_uu(b) - lines.append(a) - res = bytes() - for line in lines: - a = self.type2test(line) - b = binascii.a2b_uu(a) - res += b - self.assertEqual(res, self.rawdata) + for backtick in (True, False): + lines = [] + for i in range(0, len(self.data), MAX_UU): + b = self.type2test(self.rawdata[i:i+MAX_UU]) + a = binascii.b2a_uu(b, backtick=backtick) + lines.append(a) + res = bytes() + for line in lines: + a = self.type2test(line) + b = binascii.a2b_uu(a) + res += b + self.assertEqual(res, self.rawdata) self.assertEqual(binascii.a2b_uu(b"\x7f"), b"\x00"*31) self.assertEqual(binascii.a2b_uu(b"\x80"), b"\x00"*32) self.assertEqual(binascii.a2b_uu(b"\xff"), b"\x00"*31) self.assertRaises(binascii.Error, binascii.a2b_uu, b"\xff\x00") self.assertRaises(binascii.Error, binascii.a2b_uu, b"!!!!") - self.assertRaises(binascii.Error, binascii.b2a_uu, 46*b"!") # Issue #7701 (crash on a pydebug build) self.assertEqual(binascii.b2a_uu(b'x'), b'!> \n') + self.assertEqual(binascii.b2a_uu(b''), b' \n') + self.assertEqual(binascii.b2a_uu(b'', backtick=True), b'`\n') + self.assertEqual(binascii.a2b_uu(b' \n'), b'') + self.assertEqual(binascii.a2b_uu(b'`\n'), b'') + self.assertEqual(binascii.b2a_uu(b'\x00Cat'), b'$ $-A= \n') + self.assertEqual(binascii.b2a_uu(b'\x00Cat', backtick=True), + b'$`$-A=```\n') + self.assertEqual(binascii.a2b_uu(b'$`$-A=```\n'), + binascii.a2b_uu(b'$ $-A= \n')) + with self.assertRaises(TypeError): + binascii.b2a_uu(b"", True) + def test_crc_hqx(self): crc = binascii.crc_hqx(self.type2test(b"Test the CRC-32 of"), 0) crc = binascii.crc_hqx(self.type2test(b" this string."), crc) |