summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Weißschuh <thomas@t-8ch.de>2015-04-29 22:03:10 +0000
committerThomas Weißschuh <thomas@t-8ch.de>2015-04-29 22:04:46 +0000
commit3f54764e66784e2311e2ba28f8b13d8c8083ecc7 (patch)
tree40896ab66615e7c314b52424ce6ff19c1a9cb2a6
parent585983ab3f7fb7a0e0b223ebdab1b45471dbefe4 (diff)
downloadurllib3-3f54764e66784e2311e2ba28f8b13d8c8083ecc7.tar.gz
test chunked response with gzip encoding
duplicates #441
-rw-r--r--dummyserver/handlers.py11
-rw-r--r--test/with_dummyserver/test_connectionpool.py10
2 files changed, 21 insertions, 0 deletions
diff --git a/dummyserver/handlers.py b/dummyserver/handlers.py
index 358f06e8..53fbe4a8 100644
--- a/dummyserver/handlers.py
+++ b/dummyserver/handlers.py
@@ -221,6 +221,17 @@ class TestingApp(RequestHandler):
def chunked(self, request):
return Response(['123'] * 4)
+ def chunked_gzip(self, request):
+ chunks = []
+ compressor = zlib.compressobj(6, zlib.DEFLATED, 16 + zlib.MAX_WBITS)
+
+ for uncompressed in [b'123'] * 4:
+ chunks.append(compressor.compress(uncompressed))
+
+ chunks.append(compressor.flush())
+
+ return Response(chunks, headers=[('Content-Encoding', 'gzip')])
+
def shutdown(self, request):
sys.exit()
diff --git a/test/with_dummyserver/test_connectionpool.py b/test/with_dummyserver/test_connectionpool.py
index a867c50b..d6cb1622 100644
--- a/test/with_dummyserver/test_connectionpool.py
+++ b/test/with_dummyserver/test_connectionpool.py
@@ -637,6 +637,16 @@ class TestConnectionPool(HTTPDummyServerTestCase):
self.assertEqual(self.pool.num_connections, 1)
self.assertEqual(self.pool.num_requests, x)
+ def test_chunked_gzip(self):
+ response = self.pool.request(
+ 'GET',
+ '/chunked_gzip',
+ preload_content=False,
+ decode_content=True,
+ )
+
+ self.assertEqual(b'123' * 4, response.read())
+
class TestRetry(HTTPDummyServerTestCase):
def setUp(self):