From ed18cc83ad6e3e93cb7c4aca9a964feb7f0765fd Mon Sep 17 00:00:00 2001
From: Gisle Aas <gisle@aas.no>
Date: Tue, 23 Feb 2010 09:19:24 -0500
Subject: [PATCH 2/2] Test that the custom response shows up on the WSGI level as well

---
 tests/regressiontests/wsgi/tests.py    |   24 ++++++++++++++++++++++++
 tests/regressiontests/wsgi/urls.py     |    5 +++++
 tests/regressiontests/wsgi/views.py    |    4 ++++
 tests/urls.py                          |    3 +++
 4 files changed, 36 insertions(+), 0 deletions(-)
 create mode 100644 tests/regressiontests/wsgi/__init__.py
 create mode 100644 tests/regressiontests/wsgi/models.py
 create mode 100644 tests/regressiontests/wsgi/tests.py
 create mode 100644 tests/regressiontests/wsgi/urls.py
 create mode 100644 tests/regressiontests/wsgi/views.py

diff --git a/tests/regressiontests/wsgi/__init__.py b/tests/regressiontests/wsgi/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/tests/regressiontests/wsgi/models.py b/tests/regressiontests/wsgi/models.py
new file mode 100644
index 0000000..e69de29
diff --git a/tests/regressiontests/wsgi/tests.py b/tests/regressiontests/wsgi/tests.py
new file mode 100644
index 0000000..3d62129
--- /dev/null
+++ b/tests/regressiontests/wsgi/tests.py
@@ -0,0 +1,24 @@
+from unittest import TestCase
+from django.core.handlers.wsgi import WSGIHandler
+
+class Tests(TestCase):
+    def test_custom_status(self):
+        class Object(object): pass
+        response = Object()
+
+        def start_response(status, headers):
+            response.status = status
+            response.headers = headers
+
+        app = WSGIHandler()
+        content = app({
+            'REQUEST_METHOD': 'GET',
+            'PATH_INFO': '/wsgi/custom_status/',
+            'SERVER_NAME': 'localhost',
+            'SERVER_PORT': '80',
+            'SERVER_PROTOCOL': 'HTTP/1.0',
+        }, start_response)
+        response.content = "".join(content)
+
+        self.assertEqual(response.status, "220 Pretty good")
+        self.assertEqual(response.content, "Hello")
diff --git a/tests/regressiontests/wsgi/urls.py b/tests/regressiontests/wsgi/urls.py
new file mode 100644
index 0000000..26d8ea2
--- /dev/null
+++ b/tests/regressiontests/wsgi/urls.py
@@ -0,0 +1,5 @@
+from django.conf.urls.defaults import *
+
+urlpatterns = patterns('',
+    (r'^custom_status/', 'regressiontests.wsgi.views.custom_status'),
+)
diff --git a/tests/regressiontests/wsgi/views.py b/tests/regressiontests/wsgi/views.py
new file mode 100644
index 0000000..deecfd9
--- /dev/null
+++ b/tests/regressiontests/wsgi/views.py
@@ -0,0 +1,4 @@
+from django.http import HttpResponse
+
+def custom_status(request):
+    return HttpResponse("Hello", status="220 Pretty good")
diff --git a/tests/urls.py b/tests/urls.py
index 01d6408..eed06c2 100644
--- a/tests/urls.py
+++ b/tests/urls.py
@@ -41,4 +41,7 @@ urlpatterns = patterns('',
 
     # special headers views
     (r'special_headers/', include('regressiontests.special_headers.urls')),
+
+    # try to run the wsgi handler directly
+    (r'wsgi/', include('regressiontests.wsgi.urls'))
 )
-- 
1.7.0.83.g241b9

