summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDomen Kožar <domen@dev.si>2014-11-11 07:50:58 +0100
committerDomen Kožar <domen@dev.si>2014-11-11 08:07:40 +0100
commitdfa449126a8cb87c58e6e7519df5aecf252d5127 (patch)
tree058cd999a7b6928dcaf4eea983e1e46329d7b8c9
parent41ba4dfda4dd0e7fb5c32aaa34c164fe3ad43142 (diff)
downloadpyramid-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.py8
-rw-r--r--pyramid/tests/test_config/test_views.py15
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)