diff options
| author | Chris McDonough <chrism@agendaless.com> | 2010-04-25 18:49:29 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2010-04-25 18:49:29 +0000 |
| commit | 30e64f38f3a01d71f8a728df9d56f31d950ebd20 (patch) | |
| tree | ebfdc1c832713e2ea737794fe090b766d3422407 /repoze/bfg/configuration.py | |
| parent | 36ca7c9f7f1b177d69be792f98fda054d7c36c45 (diff) | |
| download | pyramid-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.py | 23 |
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__ |
