| # Copyright 2016 The Brotli Authors. All rights reserved. |
| # |
| # Distributed under MIT license. |
| # See file LICENSE for detail or copy at https://opensource.org/licenses/MIT |
| |
| import brotli |
| import pytest |
| |
| from . import _test_utils |
| |
| |
| @pytest.mark.parametrize("quality", [1, 6, 9, 11]) |
| @pytest.mark.parametrize("text_name", _test_utils.gather_text_inputs()) |
| def test_single_process(quality, text_name): |
| original = _test_utils.take_input(text_name) |
| compressor = brotli.Compressor(quality=quality) |
| compressed = compressor.process(original) |
| compressed += compressor.finish() |
| decompressed = brotli.decompress(compressed) |
| assert original == decompressed |
| |
| |
| @pytest.mark.parametrize("quality", [1, 6, 9, 11]) |
| @pytest.mark.parametrize("text_name", _test_utils.gather_text_inputs()) |
| def test_multiple_process(quality, text_name): |
| original = _test_utils.take_input(text_name) |
| chunk_size = 2048 |
| chunks = _test_utils.chunk_input(original, chunk_size) |
| compressor = brotli.Compressor(quality=quality) |
| compressed = b'' |
| for chunk in chunks: |
| compressed += compressor.process(chunk) |
| compressed += compressor.finish() |
| decompressed = brotli.decompress(compressed) |
| assert original == decompressed |
| |
| |
| @pytest.mark.parametrize("quality", [1, 6, 9, 11]) |
| @pytest.mark.parametrize("text_name", _test_utils.gather_text_inputs()) |
| def test_multiple_process_and_flush(quality, text_name): |
| original = _test_utils.take_input(text_name) |
| chunk_size = 2048 |
| chunks = _test_utils.chunk_input(original, chunk_size) |
| compressor = brotli.Compressor(quality=quality) |
| compressed = b'' |
| for chunk in chunks: |
| compressed += compressor.process(chunk) |
| compressed += compressor.flush() |
| compressed += compressor.finish() |
| decompressed = brotli.decompress(compressed) |
| assert original == decompressed |