diff options
author | Thomas Weißschuh <thomas@t-8ch.de> | 2015-04-29 22:03:10 +0000 |
---|---|---|
committer | Thomas Weißschuh <thomas@t-8ch.de> | 2015-04-29 22:04:46 +0000 |
commit | 3f54764e66784e2311e2ba28f8b13d8c8083ecc7 (patch) | |
tree | 40896ab66615e7c314b52424ce6ff19c1a9cb2a6 | |
parent | 585983ab3f7fb7a0e0b223ebdab1b45471dbefe4 (diff) | |
download | urllib3-3f54764e66784e2311e2ba28f8b13d8c8083ecc7.tar.gz |
test chunked response with gzip encoding
duplicates #441
-rw-r--r-- | dummyserver/handlers.py | 11 | ||||
-rw-r--r-- | test/with_dummyserver/test_connectionpool.py | 10 |
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): |