summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Panter <vadmium+py@gmail.com>2016-05-27 11:30:59 (GMT)
committerMartin Panter <vadmium+py@gmail.com>2016-05-27 11:30:59 (GMT)
commit5677aa75f058cc1a16424d082acb067b00b9510e (patch)
treed16934893815f919ac65084268bd9b47dbac42a9
parentf4affb71bcccea880fad00a3d1f2d0e4c622e848 (diff)
parentc618ae8ed79cf391efa62b7d0ed571882a4356f9 (diff)
downloadcpython-5677aa75f058cc1a16424d082acb067b00b9510e.zip
cpython-5677aa75f058cc1a16424d082acb067b00b9510e.tar.gz
cpython-5677aa75f058cc1a16424d082acb067b00b9510e.tar.bz2
Issue #5784: Merge zlib from 3.5
-rw-r--r--Doc/library/zlib.rst1
-rw-r--r--Lib/test/test_zlib.py13
2 files changed, 12 insertions, 2 deletions
diff --git a/Doc/library/zlib.rst b/Doc/library/zlib.rst
index f18c0fb..9f6fbf8 100644
--- a/Doc/library/zlib.rst
+++ b/Doc/library/zlib.rst
@@ -147,6 +147,7 @@ The available exception and functions in this module are:
must include a zlib header and trailer.
* 0: Automatically determine the window size from the zlib header.
+ Only supported since zlib 1.2.3.5.
* −8 to −15: Uses the absolute value of *wbits* as the window size
logarithm. The input must be a raw stream with no header or trailer.
diff --git a/Lib/test/test_zlib.py b/Lib/test/test_zlib.py
index 1765f90..b3e10c0 100644
--- a/Lib/test/test_zlib.py
+++ b/Lib/test/test_zlib.py
@@ -685,10 +685,18 @@ class CompressObjectTestCase(BaseCompressTestCase, unittest.TestCase):
data = None
def test_wbits(self):
+ # wbits=0 only supported since zlib v1.2.3.5
+ # Register "1.2.3" as "1.2.3.0"
+ v = (zlib.ZLIB_RUNTIME_VERSION + ".0").split(".", 4)
+ supports_wbits_0 = int(v[0]) > 1 or int(v[0]) == 1 \
+ and (int(v[1]) > 2 or int(v[1]) == 2
+ and (int(v[2]) > 3 or int(v[2]) == 3 and int(v[3]) >= 5))
+
co = zlib.compressobj(level=1, wbits=15)
zlib15 = co.compress(HAMLET_SCENE) + co.flush()
self.assertEqual(zlib.decompress(zlib15, 15), HAMLET_SCENE)
- self.assertEqual(zlib.decompress(zlib15, 0), HAMLET_SCENE)
+ if supports_wbits_0:
+ self.assertEqual(zlib.decompress(zlib15, 0), HAMLET_SCENE)
self.assertEqual(zlib.decompress(zlib15, 32 + 15), HAMLET_SCENE)
with self.assertRaisesRegex(zlib.error, 'invalid window size'):
zlib.decompress(zlib15, 14)
@@ -702,7 +710,8 @@ class CompressObjectTestCase(BaseCompressTestCase, unittest.TestCase):
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)
+ if supports_wbits_0:
+ self.assertEqual(zlib.decompress(zlib9, 0), HAMLET_SCENE)
self.assertEqual(zlib.decompress(zlib9, 32 + 9), HAMLET_SCENE)
dco = zlib.decompressobj(wbits=32 + 9)
self.assertEqual(dco.decompress(zlib9), HAMLET_SCENE)