From 5a7f9a4d57424f14a1e072cc06b6bf7a191a7d08 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Fri, 16 Jan 2009 18:58:16 +0000 Subject: 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 ```` to ````. 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. --- repoze/bfg/tests/test_wsgi.py | 55 ++++++------------------------------------- 1 file changed, 7 insertions(+), 48 deletions(-) (limited to 'repoze/bfg/tests/test_wsgi.py') 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 -- cgit v1.2.3