diff options
| -rw-r--r-- | pyramid/config/routes.py | 14 | ||||
| -rw-r--r-- | pyramid/config/views.py | 14 | ||||
| -rw-r--r-- | pyramid/tests/test_config/test_routes.py | 6 | ||||
| -rw-r--r-- | pyramid/tests/test_config/test_views.py | 24 |
4 files changed, 51 insertions, 7 deletions
diff --git a/pyramid/config/routes.py b/pyramid/config/routes.py index c31bd7195..9dca9e51e 100644 --- a/pyramid/config/routes.py +++ b/pyramid/config/routes.py @@ -1,3 +1,5 @@ +import warnings + from pyramid.compat import urlparse from pyramid.interfaces import ( IRequest, @@ -277,6 +279,18 @@ class RoutesConfiguratorMixin(object): .. versionadded:: 1.4 """ + if custom_predicates: + warnings.warn( + ('The "custom_predicates" argument to Configurator.add_route ' + 'is deprecated as of Pyramid 1.5. Use ' + '"config.add_route_predicate" and use the registered ' + 'route predicate as a predicate argument to add_route ' + 'instead. See "Adding A Third Party View, Route, or ' + 'Subscriber Predicate" in the "Hooks" chapter of the ' + 'documentation for more information.'), + DeprecationWarning, + stacklevel=3 + ) # these are route predicates; if they do not match, the next route # in the routelist will be tried if request_method is not None: diff --git a/pyramid/config/views.py b/pyramid/config/views.py index a4b681347..16deee987 100644 --- a/pyramid/config/views.py +++ b/pyramid/config/views.py @@ -1,6 +1,7 @@ import inspect import operator import os +import warnings from zope.interface import ( Interface, @@ -1052,6 +1053,19 @@ class ViewsConfiguratorMixin(object): .. versionadded: 1.4a1 """ + if custom_predicates: + warnings.warn( + ('The "custom_predicates" argument to Configurator.add_view ' + 'is deprecated as of Pyramid 1.5. Use ' + '"config.add_view_predicate" and use the registered ' + 'view predicate as a predicate argument to add_view instead. ' + 'See "Adding A Third Party View, Route, or Subscriber ' + 'Predicate" in the "Hooks" chapter of the documentation ' + 'for more information.'), + DeprecationWarning, + stacklevel=4 + ) + view = self.maybe_dotted(view) context = self.maybe_dotted(context) for_ = self.maybe_dotted(for_) diff --git a/pyramid/tests/test_config/test_routes.py b/pyramid/tests/test_config/test_routes.py index 6fb5189f6..1d2530c02 100644 --- a/pyramid/tests/test_config/test_routes.py +++ b/pyramid/tests/test_config/test_routes.py @@ -153,10 +153,14 @@ class RoutesConfiguratorMixinTests(unittest.TestCase): self.assertEqual(predicate(None, request), False) def test_add_route_with_custom_predicates(self): + import warnings config = self._makeOne(autocommit=True) def pred1(context, request): pass def pred2(context, request): pass - config.add_route('name', 'path', custom_predicates=(pred1, pred2)) + with warnings.catch_warnings(record=True) as w: + warnings.filterwarnings('always') + config.add_route('name', 'path', custom_predicates=(pred1, pred2)) + self.assertEqual(len(w), 1) route = self._assertRoute(config, 'name', 'path', 2) self.assertEqual(len(route.predicates), 2) diff --git a/pyramid/tests/test_config/test_views.py b/pyramid/tests/test_config/test_views.py index 848642aee..d9e0d17a6 100644 --- a/pyramid/tests/test_config/test_views.py +++ b/pyramid/tests/test_config/test_views.py @@ -1391,6 +1391,7 @@ class TestViewsConfigurationMixin(unittest.TestCase): self._assertNotFound(wrapper, None, request) def test_add_view_with_custom_predicates_match(self): + import warnings from pyramid.renderers import null_renderer view = lambda *arg: 'OK' config = self._makeOne(autocommit=True) @@ -1399,13 +1400,17 @@ class TestViewsConfigurationMixin(unittest.TestCase): def pred2(context, request): return True predicates = (pred1, pred2) - config.add_view(view=view, custom_predicates=predicates, - renderer=null_renderer) + with warnings.catch_warnings(record=True) as w: + warnings.filterwarnings('always') + config.add_view(view=view, custom_predicates=predicates, + renderer=null_renderer) + self.assertEqual(len(w), 1) wrapper = self._getViewCallable(config) request = self._makeRequest(config) self.assertEqual(wrapper(None, request), 'OK') def test_add_view_with_custom_predicates_nomatch(self): + import warnings view = lambda *arg: 'OK' config = self._makeOne(autocommit=True) def pred1(context, request): @@ -1413,22 +1418,29 @@ class TestViewsConfigurationMixin(unittest.TestCase): def pred2(context, request): return False predicates = (pred1, pred2) - config.add_view(view=view, custom_predicates=predicates) + with warnings.catch_warnings(record=True) as w: + warnings.filterwarnings('always') + config.add_view(view=view, custom_predicates=predicates) + self.assertEqual(len(w), 1) wrapper = self._getViewCallable(config) request = self._makeRequest(config) self._assertNotFound(wrapper, None, request) def test_add_view_custom_predicate_bests_standard_predicate(self): + import warnings from pyramid.renderers import null_renderer view = lambda *arg: 'OK' view2 = lambda *arg: 'NOT OK' config = self._makeOne(autocommit=True) def pred1(context, request): return True - config.add_view(view=view, custom_predicates=(pred1,), - renderer=null_renderer) - config.add_view(view=view2, request_method='GET', + with warnings.catch_warnings(record=True) as w: + warnings.filterwarnings('always') + config.add_view(view=view, custom_predicates=(pred1,), renderer=null_renderer) + config.add_view(view=view2, request_method='GET', + renderer=null_renderer) + self.assertEqual(len(w), 1) wrapper = self._getViewCallable(config) request = self._makeRequest(config) request.method = 'GET' |
