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)