summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests/test_wsgi.py
diff options
context:
space:
mode:
Diffstat (limited to 'repoze/bfg/tests/test_wsgi.py')
-rw-r--r--repoze/bfg/tests/test_wsgi.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/repoze/bfg/tests/test_wsgi.py b/repoze/bfg/tests/test_wsgi.py
index 4c36850b6..ac02ec49f 100644
--- a/repoze/bfg/tests/test_wsgi.py
+++ b/repoze/bfg/tests/test_wsgi.py
@@ -1,6 +1,13 @@
import unittest
+from zope.testing.cleanup import cleanUp
class WSGIAppTests(unittest.TestCase):
+ def setUp(self):
+ cleanUp()
+
+ def tearDown(self):
+ cleanUp()
+
def test_decorator(self):
body = 'Unauthorized'
headerlist = [ ('Content-Type', 'text/plain'),
@@ -18,6 +25,28 @@ class WSGIAppTests(unittest.TestCase):
self.assertEqual(response.headerlist, headerlist)
self.assertEqual(response.app_iter, [body])
+ def test_decorator_alternate_iresponsefactory(self):
+ body = 'Unauthorized'
+ headerlist = [ ('Content-Type', 'text/plain'),
+ ('Content-Length', len(body)) ]
+ status = '401 Unauthorized'
+ def real_wsgiapp(environ, start_response):
+ start_response(status, headerlist)
+ return [body]
+ from repoze.bfg.wsgi import wsgiapp
+ wrapped = wsgiapp(real_wsgiapp)
+ context = DummyContext()
+ request = DummyRequest({})
+ from repoze.bfg.interfaces import IResponseFactory
+ from zope.component import getGlobalSiteManager
+ from webob import Response
+ class Response2(Response):
+ pass
+ gsm = getGlobalSiteManager()
+ gsm.registerUtility(Response2, IResponseFactory)
+ response = wrapped(context, request)
+ self.failUnless(isinstance(response, Response2))
+
def test_decorator_startresponse_uncalled(self):
body = 'Unauthorized'
headerlist = [ ('Content-Type', 'text/plain'),