def test_process_alias(s): c1 = brotlicffi.Compressor() c2 = brotlicffi.Compressor() d1 = brotlicffi.Decompressor() d2 = brotlicffi.Decompressor() s1 = c1.compress(s) + c1.finish() s2 = c2.process(s) + c2.finish() assert ((d1.decompress(s1) + d1.finish()) == (d2.process(s2) + d2.finish()) == s)
def test_streaming_compression_flush(one_compressed_file, chunk_size, mode, quality, lgwin, lgblock): """ Confirm that the streaming compressor works as expected, including flushes after each chunk. """ compressed_chunks = [] c = brotlicffi.Compressor( mode=mode, quality=quality, lgwin=lgwin, lgblock=lgblock ) with open(one_compressed_file, 'rb') as f: while True: next_data = f.read(chunk_size) if not next_data: break compressed_chunks.append(c.compress(next_data)) compressed_chunks.append(c.flush()) compressed_chunks.append(c.finish()) decompressed = brotlicffi.decompress(b''.join(compressed_chunks)) with open(one_compressed_file, 'rb') as f: assert decompressed == f.read()
def main(): data = sys.argv[1].encode("utf-8") print(f"Compressing data: {data}") compressor = brotli.Compressor(mode=brotli.MODE_TEXT) compressed = compressor.process(data) + compressor.finish() print(f"Compressed data: {compressed}") decompressor = brotli.Decompressor() decompressed = decompressor.process(compressed) + decompressor.finish() print(f"Decompressed data: {decompressed}")
def test_bad_compressor_parameters(params): with pytest.raises(brotlicffi.error): brotlicffi.Compressor(**params)