def test_cornercases(): """ Test degenerate arguments. """ stream = rminiz_oxide.deflateInit() bytes = rminiz_oxide.compress(stream, "") bytes += rminiz_oxide.compress(stream, "") bytes += rminiz_oxide.compress(stream, "", rminiz_oxide.Z_FINISH) assert zlib.decompress(bytes) == "" rminiz_oxide.deflateEnd(stream) stream = rminiz_oxide.inflateInit() data, finished, unused = rminiz_oxide.decompress(stream, "") assert data == "" assert finished is False assert unused == 0 buf = compressed for i in range(10): data, finished, unused = rminiz_oxide.decompress(stream, buf, max_length=0) assert data == "" assert finished is False assert unused > 0 buf = buf[-unused:] rminiz_oxide.inflateEnd(stream)
def test_compression(): """ Once we have got a deflate stream, rminiz_oxide.compress() should allow us to compress bytes. """ stream = rminiz_oxide.deflateInit() bytes = rminiz_oxide.compress(stream, expanded) bytes += rminiz_oxide.compress(stream, "", rminiz_oxide.Z_FINISH) rminiz_oxide.deflateEnd(stream) assert bytes == compressed
def test_compression_lots_of_data(): """ Test compression of more data that fits in a single internal output buffer. """ expanded = repr(range(20000)) compressed = zlib.compress(expanded) print len(expanded), '=>', len(compressed) stream = rminiz_oxide.deflateInit() bytes = rminiz_oxide.compress(stream, expanded, rminiz_oxide.Z_FINISH) rminiz_oxide.deflateEnd(stream) assert bytes == compressed
def f(i, check): bytes = "s" * i if check == 1: for j in range(3): stream = rminiz_oxide.deflateInit() bytes = rminiz_oxide.compress(stream, bytes, rminiz_oxide.Z_FINISH) rminiz_oxide.deflateEnd(stream) return bytes if check == 2: return str(rminiz_oxide.adler32(bytes)) if check == 3: return str(rminiz_oxide.crc32(bytes)) return '?'
def __init__(self, space, level=rminiz_oxide.Z_DEFAULT_COMPRESSION, method=rminiz_oxide.Z_DEFLATED, # \ wbits=rminiz_oxide.MAX_WBITS, # \ undocumented memLevel=rminiz_oxide.DEF_MEM_LEVEL, # / parameters strategy=rminiz_oxide.Z_DEFAULT_STRATEGY): # / ZLibObject.__init__(self, space) try: self.stream = rminiz_oxide.deflateInit(level, method, wbits, memLevel, strategy) except rminiz_oxide.RZlibError as e: raise zlib_error(space, e.msg) except ValueError: raise oefmt(space.w_ValueError, "Invalid initialization option") self.register_finalizer(space)
def compress(space, string, level=rminiz_oxide.Z_DEFAULT_COMPRESSION): """ compress(string[, level]) -- Returned compressed string. Optional arg level is the compression level, in 1-9. """ try: try: stream = rminiz_oxide.deflateInit(level) except ValueError: raise zlib_error(space, "Bad compression level") try: result = rminiz_oxide.compress(stream, string, rminiz_oxide.Z_FINISH) finally: rminiz_oxide.deflateEnd(stream) except rminiz_oxide.RZlibError as e: raise zlib_error(space, e.msg) return space.newbytes(result)
def test_deflate_init_end(): """ deflateInit() followed by deflateEnd() should work and do nothing. """ stream = rminiz_oxide.deflateInit() rminiz_oxide.deflateEnd(stream)