1ced05db70069f9d84c4b0dd9b3b26b94e3482336Chris Craikfrom paste.fixture import TestApp 2ced05db70069f9d84c4b0dd9b3b26b94e3482336Chris Craikfrom paste.gzipper import middleware 3ced05db70069f9d84c4b0dd9b3b26b94e3482336Chris Craikimport gzip 4ced05db70069f9d84c4b0dd9b3b26b94e3482336Chris Craikimport six 5ced05db70069f9d84c4b0dd9b3b26b94e3482336Chris Craik 6ced05db70069f9d84c4b0dd9b3b26b94e3482336Chris Craikdef simple_app(environ, start_response): 7ced05db70069f9d84c4b0dd9b3b26b94e3482336Chris Craik start_response('200 OK', [('content-type', 'text/plain')]) 8ced05db70069f9d84c4b0dd9b3b26b94e3482336Chris Craik return [b'this is a test'] 9ced05db70069f9d84c4b0dd9b3b26b94e3482336Chris Craik 10ced05db70069f9d84c4b0dd9b3b26b94e3482336Chris Craikwsgi_app = middleware(simple_app) 11ced05db70069f9d84c4b0dd9b3b26b94e3482336Chris Craikapp = TestApp(wsgi_app) 12ced05db70069f9d84c4b0dd9b3b26b94e3482336Chris Craik 13ced05db70069f9d84c4b0dd9b3b26b94e3482336Chris Craikdef test_gzip(): 14ced05db70069f9d84c4b0dd9b3b26b94e3482336Chris Craik res = app.get( 15ced05db70069f9d84c4b0dd9b3b26b94e3482336Chris Craik '/', extra_environ=dict(HTTP_ACCEPT_ENCODING='gzip')) 16ced05db70069f9d84c4b0dd9b3b26b94e3482336Chris Craik assert int(res.header('content-length')) == len(res.body) 17ced05db70069f9d84c4b0dd9b3b26b94e3482336Chris Craik assert res.body != b'this is a test' 18ced05db70069f9d84c4b0dd9b3b26b94e3482336Chris Craik actual = gzip.GzipFile(fileobj=six.BytesIO(res.body)).read() 19ced05db70069f9d84c4b0dd9b3b26b94e3482336Chris Craik assert actual == b'this is a test' 20