aboutsummaryrefslogtreecommitdiff
path: root/python/tests/decompressor_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/tests/decompressor_test.py')
-rwxr-xr-xpython/tests/decompressor_test.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/python/tests/decompressor_test.py b/python/tests/decompressor_test.py
new file mode 100755
index 0000000..afa127f
--- /dev/null
+++ b/python/tests/decompressor_test.py
@@ -0,0 +1,47 @@
+# 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 functools
+import unittest
+
+from . import _test_utils
+import brotli
+
+
+def _get_original_name(test_data):
+ return test_data.split('.compressed')[0]
+
+
+class TestDecompressor(_test_utils.TestCase):
+
+ CHUNK_SIZE = 1
+
+ def setUp(self):
+ self.decompressor = brotli.Decompressor()
+
+ def _check_decompression(self, test_data):
+ # Verify decompression matches the original.
+ temp_uncompressed = _test_utils.get_temp_uncompressed_name(test_data)
+ original = _get_original_name(test_data)
+ self.assertFilesMatch(temp_uncompressed, original)
+
+ def _decompress(self, test_data):
+ temp_uncompressed = _test_utils.get_temp_uncompressed_name(test_data)
+ with open(temp_uncompressed, 'wb') as out_file:
+ with open(test_data, 'rb') as in_file:
+ read_chunk = functools.partial(in_file.read, self.CHUNK_SIZE)
+ for data in iter(read_chunk, b''):
+ out_file.write(self.decompressor.process(data))
+ self.assertTrue(self.decompressor.is_finished())
+
+ def _test_decompress(self, test_data):
+ self._decompress(test_data)
+ self._check_decompression(test_data)
+
+
+_test_utils.generate_test_methods(TestDecompressor, for_decompression=True)
+
+if __name__ == '__main__':
+ unittest.main()