diff options
| author | Domen Kožar <domen@dev.si> | 2014-11-11 07:50:58 +0100 |
|---|---|---|
| committer | Domen Kožar <domen@dev.si> | 2014-11-11 08:07:40 +0100 |
| commit | dfa449126a8cb87c58e6e7519df5aecf252d5127 (patch) | |
| tree | 058cd999a7b6928dcaf4eea983e1e46329d7b8c9 | |
| parent | 41ba4dfda4dd0e7fb5c32aaa34c164fe3ad43142 (diff) | |
| download | pyramid-dfa449126a8cb87c58e6e7519df5aecf252d5127.tar.gz pyramid-dfa449126a8cb87c58e6e7519df5aecf252d5127.tar.bz2 pyramid-dfa449126a8cb87c58e6e7519df5aecf252d5127.zip | |
if view argument is not passed to config.add_forbidden_view, use default_exceptionresponse_view
| -rw-r--r-- | pyramid/config/views.py | 8 | ||||
| -rw-r--r-- | pyramid/tests/test_config/test_views.py | 15 |
2 files changed, 22 insertions, 1 deletions
diff --git a/pyramid/config/views.py b/pyramid/config/views.py index 6de5646f6..e4171b0c5 100644 --- a/pyramid/config/views.py +++ b/pyramid/config/views.py @@ -1592,9 +1592,12 @@ class ViewsConfiguratorMixin(object): config.add_forbidden_view(forbidden) + If ``view`` argument is not provided, the view callable defaults to + :func:`~pyramid.httpexceptions.default_exceptionresponse_view`. + All arguments have the same meaning as :meth:`pyramid.config.Configurator.add_view` and each predicate - argument restricts the set of circumstances under which this notfound + argument restricts the set of circumstances under which this forbidden view will be invoked. Unlike :meth:`pyramid.config.Configurator.add_view`, this method will raise an exception if passed ``name``, ``permission``, ``context``, @@ -1610,6 +1613,9 @@ class ViewsConfiguratorMixin(object): % arg ) + if view is None: + view = default_exceptionresponse_view + settings = dict( view=view, context=HTTPForbidden, diff --git a/pyramid/tests/test_config/test_views.py b/pyramid/tests/test_config/test_views.py index 0fb7c734a..39b8ba70d 100644 --- a/pyramid/tests/test_config/test_views.py +++ b/pyramid/tests/test_config/test_views.py @@ -1783,6 +1783,21 @@ class TestViewsConfigurationMixin(unittest.TestCase): result = view(None, request) self.assertEqual(result, 'OK') + def test_add_forbidden_view_no_view_argument(self): + from zope.interface import implementedBy + from pyramid.interfaces import IRequest + from pyramid.httpexceptions import HTTPForbidden + config = self._makeOne(autocommit=True) + config.setup_registry() + config.add_forbidden_view() + request = self._makeRequest(config) + view = self._getViewCallable(config, + ctx_iface=implementedBy(HTTPForbidden), + request_iface=IRequest) + context = HTTPForbidden() + result = view(context, request) + self.assertEqual(result, context) + def test_add_forbidden_view_allows_other_predicates(self): from pyramid.renderers import null_renderer config = self._makeOne(autocommit=True) |
