diff options
| author | Chris McDonough <chrism@agendaless.com> | 2009-01-16 18:58:16 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2009-01-16 18:58:16 +0000 |
| commit | 5a7f9a4d57424f14a1e072cc06b6bf7a191a7d08 (patch) | |
| tree | b44448198ddf8031b3e09b83dd731f2ae1d6623a /repoze/bfg/tests/test_wsgi.py | |
| parent | 4856cc54bcd5feb97db49f1cca923afb01c0bf02 (diff) | |
| download | pyramid-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.py | 55 |
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 |
