summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests/test_wsgi.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-01-16 18:58:16 +0000
committerChris McDonough <chrism@agendaless.com>2009-01-16 18:58:16 +0000
commit5a7f9a4d57424f14a1e072cc06b6bf7a191a7d08 (patch)
treeb44448198ddf8031b3e09b83dd731f2ae1d6623a /repoze/bfg/tests/test_wsgi.py
parent4856cc54bcd5feb97db49f1cca923afb01c0bf02 (diff)
downloadpyramid-5a7f9a4d57424f14a1e072cc06b6bf7a191a7d08.tar.gz
pyramid-5a7f9a4d57424f14a1e072cc06b6bf7a191a7d08.tar.bz2
pyramid-5a7f9a4d57424f14a1e072cc06b6bf7a191a7d08.zip
Features
-------- - The functionality of ``repoze.bfg.convention`` has been merged into the core. Applications which make use of ``repoze.bfg.convention`` will continue to work indefinitely, but it is recommended that apps stop depending upon it. To do so, substitute imports of ``repoze.bfg.convention.bfg_view`` with imports of ``repoze.bfg.view.bfg_view``, and change the stanza in ZCML from ``<convention package=".">`` to ``<grok package=".">``. As a result of the merge, bfg has grown a new dependency: ``martian``. - View functions which use the pushpage decorator are now pickleable (meaning their use won't prevent a ``configure.zcml.cache`` file from being written to disk). Implementation Changes ---------------------- - The ``wsgiapp`` decorator now uses ``webob.Request.get_response`` to do its work rather than relying on howgrown WSGI code.
Diffstat (limited to 'repoze/bfg/tests/test_wsgi.py')
-rw-r--r--repoze/bfg/tests/test_wsgi.py55
1 files changed, 7 insertions, 48 deletions
diff --git a/repoze/bfg/tests/test_wsgi.py b/repoze/bfg/tests/test_wsgi.py
index ac02ec49f..e19e65044 100644
--- a/repoze/bfg/tests/test_wsgi.py
+++ b/repoze/bfg/tests/test_wsgi.py
@@ -9,63 +9,22 @@ class WSGIAppTests(unittest.TestCase):
cleanUp()
def test_decorator(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)
+ wrapped = wsgiapp(dummyapp)
context = DummyContext()
- request = DummyRequest({})
+ request = DummyRequest()
response = wrapped(context, request)
- self.assertEqual(response.status, status)
- self.assertEqual(response.headerlist, headerlist)
- self.assertEqual(response.app_iter, [body])
+ self.assertEqual(response, dummyapp)
- 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'),
- ('Content-Length', len(body)) ]
- status = '401 Unauthorized'
- def real_wsgiapp(environ, start_response):
- return [body]
- from repoze.bfg.wsgi import wsgiapp
- wrapped = wsgiapp(real_wsgiapp)
- context = DummyContext()
- request = DummyRequest({})
- self.assertRaises(RuntimeError, wrapped, context, request)
+def dummyapp(environ, start_response):
+ """ """
class DummyContext:
pass
class DummyRequest:
- def __init__(self, environ):
- self.environ = environ
+ def get_response(self, application):
+ return application