diff options
author | Martin Panter <vadmium+py@gmail.com> | 2016-05-27 07:32:11 (GMT) |
---|---|---|
committer | Martin Panter <vadmium+py@gmail.com> | 2016-05-27 07:32:11 (GMT) |
commit | 9c946bbf2093f6fb85a4bbe68362d87daead6c98 (patch) | |
tree | fd97176f9fb1b44bdc8eb189071fae90e4c496de /Lib/test | |
parent | 5541aa35d04ed2bb168bc81e7dae31f5367b15c5 (diff) | |
download | cpython-9c946bbf2093f6fb85a4bbe68362d87daead6c98.zip cpython-9c946bbf2093f6fb85a4bbe68362d87daead6c98.tar.gz cpython-9c946bbf2093f6fb85a4bbe68362d87daead6c98.tar.bz2 |
Issue #5784: Expand documentation and tests for zlib wbits parameter
Based on documentation by AM Kuchling.
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_zlib.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/Lib/test/test_zlib.py b/Lib/test/test_zlib.py index cc13409..c537c2a 100644 --- a/Lib/test/test_zlib.py +++ b/Lib/test/test_zlib.py @@ -527,6 +527,49 @@ class CompressObjectTestCase(BaseCompressTestCase, unittest.TestCase): decompress = lambda s: d.decompress(s) + d.flush() self.check_big_decompress_buffer(size, decompress) + def test_wbits(self): + co = zlib.compressobj(1, zlib.DEFLATED, 15) + zlib15 = co.compress(HAMLET_SCENE) + co.flush() + self.assertEqual(zlib.decompress(zlib15, 15), HAMLET_SCENE) + self.assertEqual(zlib.decompress(zlib15, 0), HAMLET_SCENE) + self.assertEqual(zlib.decompress(zlib15, 32 + 15), HAMLET_SCENE) + with self.assertRaisesRegexp(zlib.error, 'invalid window size'): + zlib.decompress(zlib15, 14) + dco = zlib.decompressobj(32 + 15) + self.assertEqual(dco.decompress(zlib15), HAMLET_SCENE) + dco = zlib.decompressobj(14) + with self.assertRaisesRegexp(zlib.error, 'invalid window size'): + dco.decompress(zlib15) + + co = zlib.compressobj(1, zlib.DEFLATED, 9) + zlib9 = co.compress(HAMLET_SCENE) + co.flush() + self.assertEqual(zlib.decompress(zlib9, 9), HAMLET_SCENE) + self.assertEqual(zlib.decompress(zlib9, 15), HAMLET_SCENE) + self.assertEqual(zlib.decompress(zlib9, 0), HAMLET_SCENE) + self.assertEqual(zlib.decompress(zlib9, 32 + 9), HAMLET_SCENE) + dco = zlib.decompressobj(32 + 9) + self.assertEqual(dco.decompress(zlib9), HAMLET_SCENE) + + co = zlib.compressobj(1, zlib.DEFLATED, -15) + deflate15 = co.compress(HAMLET_SCENE) + co.flush() + self.assertEqual(zlib.decompress(deflate15, -15), HAMLET_SCENE) + dco = zlib.decompressobj(-15) + self.assertEqual(dco.decompress(deflate15), HAMLET_SCENE) + + co = zlib.compressobj(1, zlib.DEFLATED, -9) + deflate9 = co.compress(HAMLET_SCENE) + co.flush() + self.assertEqual(zlib.decompress(deflate9, -9), HAMLET_SCENE) + self.assertEqual(zlib.decompress(deflate9, -15), HAMLET_SCENE) + dco = zlib.decompressobj(-9) + self.assertEqual(dco.decompress(deflate9), HAMLET_SCENE) + + co = zlib.compressobj(1, zlib.DEFLATED, 16 + 15) + gzip = co.compress(HAMLET_SCENE) + co.flush() + self.assertEqual(zlib.decompress(gzip, 16 + 15), HAMLET_SCENE) + self.assertEqual(zlib.decompress(gzip, 32 + 15), HAMLET_SCENE) + dco = zlib.decompressobj(32 + 15) + self.assertEqual(dco.decompress(gzip), HAMLET_SCENE) + def genblock(seed, length, step=1024, generator=random): """length-byte stream of random data from a seed (in step-byte blocks).""" |