summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pyramid/config/routes.py14
-rw-r--r--pyramid/config/views.py14
-rw-r--r--pyramid/tests/test_config/test_routes.py6
-rw-r--r--pyramid/tests/test_config/test_views.py24
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'