diff options
| author | Chris McDonough <chrism@agendaless.com> | 2009-01-16 19:23:34 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2009-01-16 19:23:34 +0000 |
| commit | b99526e428d46c54bb866df61c5d326b0c57716a (patch) | |
| tree | 5d96d465abed746e888e0e94d1f1f49efd770bb4 /repoze/bfg/view.py | |
| parent | 5a7f9a4d57424f14a1e072cc06b6bf7a191a7d08 (diff) | |
| download | pyramid-b99526e428d46c54bb866df61c5d326b0c57716a.tar.gz pyramid-b99526e428d46c54bb866df61c5d326b0c57716a.tar.bz2 pyramid-b99526e428d46c54bb866df61c5d326b0c57716a.zip | |
- The ``repoze.bfg.view.static`` helper now uses
``webob.Request.get_response`` to do its work rather than relying on
howgrown WSGI code.
Diffstat (limited to 'repoze/bfg/view.py')
| -rw-r--r-- | repoze/bfg/view.py | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/repoze/bfg/view.py b/repoze/bfg/view.py index f580a4fb1..3b27a8b94 100644 --- a/repoze/bfg/view.py +++ b/repoze/bfg/view.py @@ -1,10 +1,7 @@ from paste.urlparser import StaticURLParser -from webob import Response - from zope.component import queryMultiAdapter from zope.component import queryUtility -from repoze.bfg.interfaces import IResponseFactory from repoze.bfg.interfaces import ISecurityPolicy from repoze.bfg.interfaces import IViewPermission from repoze.bfg.interfaces import IView @@ -148,23 +145,13 @@ class static(object): def __call__(self, context, request): subpath = '/'.join(request.subpath) - caught = [] - def catch_start_response(status, headers, exc_info=None): - caught[:] = (status, headers, exc_info) - ecopy = request.environ.copy() + request_copy = request.copy() # Fix up PATH_INFO to get rid of everything but the "subpath" # (the actual path to the file relative to the root dir). + request_copy.environ['PATH_INFO'] = '/' + subpath # Zero out SCRIPT_NAME for good measure. - ecopy['PATH_INFO'] = '/' + subpath - ecopy['SCRIPT_NAME'] = '' - body = self.app(ecopy, catch_start_response) - status, headers, exc_info = caught - response_factory = queryUtility(IResponseFactory, default=Response) - response = response_factory() - response.app_iter = body - response.status = status - response.headerlist = headers - return response + request_copy.environ['SCRIPT_NAME'] = '' + return request_copy.get_response(self.app) class bfg_view(object): """ Decorator which allows Python code to make view registrations |
