summaryrefslogtreecommitdiff
path: root/tests/test_gzipper.py
diff options
context:
space:
mode:
authorMarc Abramowitz <marc@marc-abramowitz.com>2016-03-07 15:19:32 -0800
committerMarc Abramowitz <marc@marc-abramowitz.com>2016-03-07 15:19:32 -0800
commit7251d0d4018b060dd86c9b779334516a1c032f7a (patch)
treecc8bca89295e3387f078fe019992ca99995a71da /tests/test_gzipper.py
parent4cc33835964f7a62ce829a63ddff893e752232b3 (diff)
downloadpaste-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/test_gzipper.py')
-rw-r--r--tests/test_gzipper.py53
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''