diff options
| author | Jacob Kaplan-Moss <jacob@jacobian.org> | 2009-05-07 15:39:06 +0000 |
|---|---|---|
| committer | Jacob Kaplan-Moss <jacob@jacobian.org> | 2009-05-07 15:39:06 +0000 |
| commit | bfdb7d26aa534578dbac3c43e76d8ac3a5ad6a06 (patch) | |
| tree | a213cc5592e01137ff1ab4fdf9d5d8ef68ef0bea /tests/regressiontests/builtin_server | |
| parent | 523da3801d07e27556b33661bc175138a9456410 (diff) | |
Fixed #9659: fixed `wsgi.file_wrapper` in the builtin server. Thanks, mitsuhiko.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@10690 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests/builtin_server')
| -rw-r--r-- | tests/regressiontests/builtin_server/__init__.py | 0 | ||||
| -rw-r--r-- | tests/regressiontests/builtin_server/models.py | 0 | ||||
| -rw-r--r-- | tests/regressiontests/builtin_server/tests.py | 51 |
3 files changed, 51 insertions, 0 deletions
diff --git a/tests/regressiontests/builtin_server/__init__.py b/tests/regressiontests/builtin_server/__init__.py new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/tests/regressiontests/builtin_server/__init__.py diff --git a/tests/regressiontests/builtin_server/models.py b/tests/regressiontests/builtin_server/models.py new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/tests/regressiontests/builtin_server/models.py diff --git a/tests/regressiontests/builtin_server/tests.py b/tests/regressiontests/builtin_server/tests.py new file mode 100644 index 0000000000..ad3abc9e9f --- /dev/null +++ b/tests/regressiontests/builtin_server/tests.py @@ -0,0 +1,51 @@ +from unittest import TestCase +from StringIO import StringIO +from django.core.servers.basehttp import ServerHandler + +# +# Tests for #9659: wsgi.file_wrapper in the builtin server. +# We need to mock a couple of of handlers and keep track of what +# gets called when using a couple kinds of WSGI apps. +# + +class DummyHandler(object): + def log_request(*args, **kwargs): + pass + +class FileWrapperHandler(ServerHandler): + def __init__(self, *args, **kwargs): + ServerHandler.__init__(self, *args, **kwargs) + self.request_handler = DummyHandler() + self._used_sendfile = False + + def sendfile(self): + self._used_sendfile = True + return True + +def wsgi_app(environ, start_response): + start_response('200 OK', [('Content-Type', 'text/plain')]) + return ['Hello World!'] + +def wsgi_app_file_wrapper(environ, start_response): + start_response('200 OK', [('Content-Type', 'text/plain')]) + return environ['wsgi.file_wrapper'](StringIO('foo')) + +class WSGIFileWrapperTests(TestCase): + """ + Test that the wsgi.file_wrapper works for the builting server. + """ + + def test_file_wrapper_uses_sendfile(self): + env = {'SERVER_PROTOCOL': 'HTTP/1.0'} + err = StringIO() + handler = FileWrapperHandler(None, StringIO(), err, env) + handler.run(wsgi_app_file_wrapper) + self.assert_(handler._used_sendfile) + + def test_file_wrapper_no_sendfile(self): + env = {'SERVER_PROTOCOL': 'HTTP/1.0'} + err = StringIO() + handler = FileWrapperHandler(None, StringIO(), err, env) + handler.run(wsgi_app) + self.failIf(handler._used_sendfile) + self.assertEqual(handler.stdout.getvalue().splitlines()[-1],'Hello World!') |
