import sys import zipfile with zipfile.ZipFile(sys.argv[1]) as archive: assert archive.testzip() is None entries = archive.infolist() assert [entry.filename for entry in entries] == [ 'stored.bin', 'nested/日本語.txt', 'empty/', 'duplicate', 'duplicate', 'executable', 'link' ] assert archive.read(entries[0]) == bytes([0, 1, 127, 128, 255]) assert archive.read(entries[1]).decode() == 'UTF-8 payload 日本語' assert entries[1].compress_type == zipfile.ZIP_DEFLATED assert entries[2].is_dir() assert archive.read(entries[3]) == b'first' assert archive.read(entries[4]) == b'second' assert entries[5].external_attr >> 16 == 0o106755 assert entries[6].external_attr >> 16 == 0o120777 assert archive.read(entries[6]) == b'stored.bin' print('PASS: Python zipfile independently validated helper archive CRCs, binary bytes, UTF-8, deflate, directory, duplicate ordering, UNIX executable mode and symlink mode.')