test_binascii.py
来自「mallet是自然语言处理、机器学习领域的一个开源项目。」· Python 代码 · 共 120 行
PY
120 行
"""Test the binascii C module."""from test_support import verify, verboseimport binascii# Show module doc stringprint binascii.__doc__# Show module exceptionsprint binascii.Errorprint binascii.Incomplete# Check presence and display doc strings of all functionsfuncs = []for suffix in "base64", "hqx", "uu": prefixes = ["a2b_", "b2a_"] if suffix == "hqx": prefixes.extend(["crc_", "rlecode_", "rledecode_"]) for prefix in prefixes: name = prefix + suffix funcs.append(getattr(binascii, name))for func in funcs: print "%-15s: %s" % (func.__name__, func.__doc__)# Create binary test datatestdata = "The quick brown fox jumps over the lazy dog.\r\n"for i in range(256): # Be slow so we don't depend on other modules testdata = testdata + chr(i)testdata = testdata + "\r\nHello world.\n"# Test base64 with valid dataprint "base64 test"MAX_BASE64 = 57lines = []for i in range(0, len(testdata), MAX_BASE64): b = testdata[i:i+MAX_BASE64] a = binascii.b2a_base64(b) lines.append(a) print a,res = ""for line in lines: b = binascii.a2b_base64(line) res = res + bverify(res == testdata)# Test base64 with random invalid characters sprinkled throughout# (This requires a new version of binascii.)fillers = ""valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/"for i in range(256): c = chr(i) if c not in valid: fillers = fillers + cdef addnoise(line): noise = fillers ratio = len(line) // len(noise) res = "" while line and noise: if len(line) // len(noise) > ratio: c, line = line[0], line[1:] else: c, noise = noise[0], noise[1:] res = res + c return res + noise + lineres = ""for line in map(addnoise, lines): b = binascii.a2b_base64(line) res = res + bverify(res == testdata)# Test base64 with just invalid characters, which should return# empty strings.verify(binascii.a2b_base64(fillers) == '')# Test uuprint "uu test"MAX_UU = 45lines = []for i in range(0, len(testdata), MAX_UU): b = testdata[i:i+MAX_UU] a = binascii.b2a_uu(b) lines.append(a) print a,res = ""for line in lines: b = binascii.a2b_uu(line) res = res + bverify(res == testdata)# Test crc32()crc = binascii.crc32("Test the CRC-32 of")crc = binascii.crc32(" this string.", crc)if crc != 1571220330: print "binascii.crc32() failed."# The hqx test is in test_binhex.py# test hexlifications = '{s\005\000\000\000worldi\002\000\000\000s\005\000\000\000helloi\001\000\000\0000't = binascii.b2a_hex(s)u = binascii.a2b_hex(t)if s != u: print 'binascii hexlification failed'try: binascii.a2b_hex(t[:-1])except TypeError: passelse: print 'expected TypeError not raised'try: binascii.a2b_hex(t[:-1] + 'q')except TypeError: passelse: print 'expected TypeError not raised'# Verify the treatment of Unicode stringsverify(binascii.hexlify(u'a') == '61', "hexlify failed for Unicode")
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?