summaryrefslogtreecommitdiff
path: root/repoze/bfg/configuration.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2010-04-25 18:49:29 +0000
committerChris McDonough <chrism@agendaless.com>2010-04-25 18:49:29 +0000
commit30e64f38f3a01d71f8a728df9d56f31d950ebd20 (patch)
treeebfdc1c832713e2ea737794fe090b766d3422407 /repoze/bfg/configuration.py
parent36ca7c9f7f1b177d69be792f98fda054d7c36c45 (diff)
downloadpyramid-30e64f38f3a01d71f8a728df9d56f31d950ebd20.tar.gz
pyramid-30e64f38f3a01d71f8a728df9d56f31d950ebd20.tar.bz2
pyramid-30e64f38f3a01d71f8a728df9d56f31d950ebd20.zip
Make default_notfound_view and default_forbidden_view expect an exception as
a context. Cause append_slash_notfound_view to work in case it is registered via set_notfound_view.
Diffstat (limited to 'repoze/bfg/configuration.py')
-rw-r--r--repoze/bfg/configuration.py23
1 files changed, 12 insertions, 11 deletions
diff --git a/repoze/bfg/configuration.py b/repoze/bfg/configuration.py
index 9ebb62a01..fdc259934 100644
--- a/repoze/bfg/configuration.py
+++ b/repoze/bfg/configuration.py
@@ -314,8 +314,8 @@ class Configurator(object):
authorization_policy)
for name, renderer in renderers:
self.add_renderer(name, renderer)
- self.set_notfound_view(default_notfound_view)
- self.set_forbidden_view(default_forbidden_view)
+ self.add_view(default_notfound_view, context=NotFound)
+ self.add_view(default_forbidden_view, context=Forbidden)
if locale_negotiator:
registry.registerUtility(locale_negotiator, ILocaleNegotiator)
@@ -1258,8 +1258,8 @@ class Configurator(object):
method's ``wrapper`` argument for a description)."""
view = self._derive_view(view, attr=attr, renderer_name=renderer)
def bwcompat_view(context, request):
- ctx = getattr(request, 'context', None)
- return view(ctx, request)
+ context = getattr(request, 'context', None)
+ return view(context, request)
return self.add_view(bwcompat_view, context=Forbidden,
wrapper=wrapper, _info=_info)
@@ -1304,8 +1304,8 @@ class Configurator(object):
"""
view = self._derive_view(view, attr=attr, renderer_name=renderer)
def bwcompat_view(context, request):
- ctx = getattr(request, 'context', None)
- return view(ctx, request)
+ context = getattr(request, 'context', None)
+ return view(context, request)
return self.add_view(bwcompat_view, context=NotFound,
wrapper=wrapper, _info=_info)
@@ -1749,11 +1749,12 @@ def rendered_response(renderer, response, view, context, request,
return response
result = renderer(response, {'view':view, 'renderer_name':renderer_name,
'context':context, 'request':request})
- response_factory = Response
- reg = getattr(request, 'registry', None)
- if reg is not None:
- # be kind to old unit tests
- response_factory = reg.queryUtility(IResponseFactory, default=Response)
+ try:
+ registry = request.registry
+ except AttributeError:
+ registry = get_current_registry()
+ response_factory = registry.queryUtility(IResponseFactory,
+ default=Response)
response = response_factory(result)
if request is not None: # in tests, it may be None
attrs = request.__dict__