diff options
author | Marc Abramowitz <marc@marc-abramowitz.com> | 2016-03-07 15:19:32 -0800 |
---|---|---|
committer | Marc Abramowitz <marc@marc-abramowitz.com> | 2016-03-07 15:19:32 -0800 |
commit | 7251d0d4018b060dd86c9b779334516a1c032f7a (patch) | |
tree | cc8bca89295e3387f078fe019992ca99995a71da /tests | |
parent | 4cc33835964f7a62ce829a63ddff893e752232b3 (diff) | |
download | paste-git-gzip_work_with_generator.tar.gz |
Make gzip work with app that is generatorgzip_work_with_generator
```
$ tox
...
py26: commands succeeded
py27: commands succeeded
py34: commands succeeded
py35: commands succeeded
pypy: commands succeeded
congratulations :)
```
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_gzipper.py | 53 |
1 files changed, 51 insertions, 2 deletions
diff --git a/tests/test_gzipper.py b/tests/test_gzipper.py index 54b7901..8ad5ec3 100644 --- a/tests/test_gzipper.py +++ b/tests/test_gzipper.py @@ -3,17 +3,66 @@ from paste.gzipper import middleware import gzip import six + def simple_app(environ, start_response): start_response('200 OK', [('content-type', 'text/plain')]) return [b'this is a test'] -wsgi_app = middleware(simple_app) -app = TestApp(wsgi_app) + +def simple_app_nothing(environ, start_response): + start_response('200 OK', [('content-type', 'text/plain')]) + return [b''] + + +def simple_app_generator(environ, start_response): + start_response('200 OK', [('content-type', 'text/plain')]) + yield b'this is a test' + + +def simple_app_generator_nothing(environ, start_response): + start_response('200 OK', [('content-type', 'text/plain')]) + yield b'' + def test_gzip(): + wsgi_app = middleware(simple_app) + app = TestApp(wsgi_app) + res = app.get( + '/', extra_environ=dict(HTTP_ACCEPT_ENCODING='gzip')) + assert int(res.header('content-length')) == len(res.body) + assert res.body != b'this is a test' + actual = gzip.GzipFile(fileobj=six.BytesIO(res.body)).read() + assert actual == b'this is a test' + + +def test_gzip_nothing(): + wsgi_app = middleware(simple_app_nothing) + app = TestApp(wsgi_app) + res = app.get( + '/', extra_environ=dict(HTTP_ACCEPT_ENCODING='gzip')) + assert int(res.header('content-length')) == len(res.body) + assert res.body != b'this is a test' + actual = gzip.GzipFile(fileobj=six.BytesIO(res.body)).read() + assert actual == b'' + + +def test_gzip_generator(): + wsgi_app = middleware(simple_app_generator) + app = TestApp(wsgi_app) res = app.get( '/', extra_environ=dict(HTTP_ACCEPT_ENCODING='gzip')) assert int(res.header('content-length')) == len(res.body) assert res.body != b'this is a test' actual = gzip.GzipFile(fileobj=six.BytesIO(res.body)).read() assert actual == b'this is a test' + + +def test_gzip_generator_nothing(): + wsgi_app = middleware(simple_app_generator_nothing) + app = TestApp(wsgi_app) + res = app.get( + '/', extra_environ=dict(HTTP_ACCEPT_ENCODING='gzip')) + assert int(res.header('content-length')) == len(res.body) + assert res.body != b'this is a test' + actual = gzip.GzipFile(fileobj=six.BytesIO(res.body)).read() + assert actual == b'' |