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