summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Merickel <michael@merickel.org>2018-09-27 01:22:02 -0500
committerMichael Merickel <michael@merickel.org>2018-09-27 01:22:02 -0500
commitc3c83eb71ff3352cee754b404ad4d65ab02fa464 (patch)
treefd6601c22dafd763e928f77005f2de50d5511620
parent30f79dc6f3f7b6a478004ca4e41171468095c235 (diff)
downloadpyramid-c3c83eb71ff3352cee754b404ad4d65ab02fa464.tar.gz
pyramid-c3c83eb71ff3352cee754b404ad4d65ab02fa464.tar.bz2
pyramid-c3c83eb71ff3352cee754b404ad4d65ab02fa464.zip
fix old tests
-rw-r--r--pyramid/config/routes.py2
-rw-r--r--pyramid/tests/test_config/test_routes.py30
-rw-r--r--pyramid/tests/test_config/test_views.py42
3 files changed, 48 insertions, 26 deletions
diff --git a/pyramid/config/routes.py b/pyramid/config/routes.py
index e2f2e7782..01917537d 100644
--- a/pyramid/config/routes.py
+++ b/pyramid/config/routes.py
@@ -296,7 +296,7 @@ class RoutesConfiguratorMixin(object):
)
if accept is not None:
- if is_nonstr_iter(accept):
+ if not is_nonstr_iter(accept):
accept = [accept]
accept = [accept_option.lower() for accept_option in accept]
diff --git a/pyramid/tests/test_config/test_routes.py b/pyramid/tests/test_config/test_routes.py
index 1d2530c02..afae4db33 100644
--- a/pyramid/tests/test_config/test_routes.py
+++ b/pyramid/tests/test_config/test_routes.py
@@ -182,10 +182,25 @@ class RoutesConfiguratorMixinTests(unittest.TestCase):
route = self._assertRoute(config, 'name', 'path', 1)
predicate = route.predicates[0]
request = self._makeRequest(config)
- request.accept = ['text/xml']
+ request.accept = DummyAccept('text/xml')
self.assertEqual(predicate(None, request), True)
request = self._makeRequest(config)
- request.accept = ['text/html']
+ request.accept = DummyAccept('text/html')
+ self.assertEqual(predicate(None, request), False)
+
+ def test_add_route_with_accept_list(self):
+ config = self._makeOne(autocommit=True)
+ config.add_route('name', 'path', accept=['text/xml', 'text/plain'])
+ route = self._assertRoute(config, 'name', 'path', 1)
+ predicate = route.predicates[0]
+ request = self._makeRequest(config)
+ request.accept = DummyAccept('text/xml')
+ self.assertEqual(predicate(None, request), True)
+ request = self._makeRequest(config)
+ request.accept = DummyAccept('text/plain')
+ self.assertEqual(predicate(None, request), True)
+ request = self._makeRequest(config)
+ request.accept = DummyAccept('text/html')
self.assertEqual(predicate(None, request), False)
def test_add_route_no_pattern_with_path(self):
@@ -253,3 +268,14 @@ class DummyRequest:
self.environ = environ
self.params = {}
self.cookies = {}
+
+class DummyAccept(object):
+ def __init__(self, *matches):
+ self.matches = list(matches)
+
+ def acceptable_offers(self, offers):
+ results = []
+ for match in self.matches:
+ if match in offers:
+ results.append((match, 1.0))
+ return results
diff --git a/pyramid/tests/test_config/test_views.py b/pyramid/tests/test_config/test_views.py
index 1c99d2ac5..db15a39fb 100644
--- a/pyramid/tests/test_config/test_views.py
+++ b/pyramid/tests/test_config/test_views.py
@@ -842,7 +842,7 @@ class TestViewsConfigurationMixin(unittest.TestCase):
config.add_view(view=view2, renderer=null_renderer)
wrapper = self._getViewCallable(config)
self.assertTrue(IMultiView.providedBy(wrapper))
- self.assertEqual([x[:2] for x in wrapper.views], [(view2, None)])
+ self.assertEqual([(x[0], x[2]) for x in wrapper.views], [(view2, None)])
self.assertEqual(wrapper(None, None), 'OK1')
def test_add_view_exc_multiview_replaces_multiviews(self):
@@ -869,13 +869,13 @@ class TestViewsConfigurationMixin(unittest.TestCase):
hot_wrapper = self._getViewCallable(
config, ctx_iface=implementedBy(RuntimeError))
self.assertTrue(IMultiView.providedBy(hot_wrapper))
- self.assertEqual([x[:2] for x in hot_wrapper.views], [(view2, None)])
+ self.assertEqual([(x[0], x[2]) for x in hot_wrapper.views], [(view2, None)])
self.assertEqual(hot_wrapper(None, None), 'OK1')
exc_wrapper = self._getViewCallable(
config, exc_iface=implementedBy(RuntimeError))
self.assertTrue(IMultiView.providedBy(exc_wrapper))
- self.assertEqual([x[:2] for x in exc_wrapper.views], [(view2, None)])
+ self.assertEqual([(x[0], x[2]) for x in exc_wrapper.views], [(view2, None)])
self.assertEqual(exc_wrapper(None, None), 'OK1')
def test_add_view_exc_multiview_replaces_only_exc_multiview(self):
@@ -908,7 +908,7 @@ class TestViewsConfigurationMixin(unittest.TestCase):
exc_wrapper = self._getViewCallable(
config, exc_iface=implementedBy(RuntimeError))
self.assertTrue(IMultiView.providedBy(exc_wrapper))
- self.assertEqual([x[:2] for x in exc_wrapper.views], [(view2, None)])
+ self.assertEqual([(x[0], x[2]) for x in exc_wrapper.views], [(view2, None)])
self.assertEqual(exc_wrapper(None, None), 'OK1')
def test_add_view_multiview_context_superclass_then_subclass(self):
@@ -1465,7 +1465,7 @@ class TestViewsConfigurationMixin(unittest.TestCase):
config.add_view(view=view, accept='text/xml', renderer=null_renderer)
wrapper = self._getViewCallable(config)
request = self._makeRequest(config)
- request.accept = ['text/xml']
+ request.accept = DummyAccept('text/xml')
self.assertEqual(wrapper(None, request), 'OK')
def test_add_view_with_accept_nomatch(self):
@@ -1474,7 +1474,7 @@ class TestViewsConfigurationMixin(unittest.TestCase):
config.add_view(view=view, accept='text/xml')
wrapper = self._getViewCallable(config)
request = self._makeRequest(config)
- request.accept = ['text/html']
+ request.accept = DummyAccept('text/html')
self._assertNotFound(wrapper, None, request)
def test_add_view_with_containment_true(self):
@@ -2499,19 +2499,17 @@ class TestMultiView(unittest.TestCase):
self.assertEqual(mv.views, [(100, 'view', None)])
mv.add('view2', 99)
self.assertEqual(mv.views, [(99, 'view2', None), (100, 'view', None)])
- mv.add('view3', 100, 'text/html')
+ mv.add('view3', 100, accept='text/html')
self.assertEqual(mv.media_views['text/html'], [(100, 'view3', None)])
- mv.add('view4', 99, 'text/html', 'abc')
+ mv.add('view4', 99, 'abc', accept='text/html')
self.assertEqual(mv.media_views['text/html'],
[(99, 'view4', 'abc'), (100, 'view3', None)])
- mv.add('view5', 100, 'text/xml')
+ mv.add('view5', 100, accept='text/xml')
self.assertEqual(mv.media_views['text/xml'], [(100, 'view5', None)])
self.assertEqual(set(mv.accepts), set(['text/xml', 'text/html']))
self.assertEqual(mv.views, [(99, 'view2', None), (100, 'view', None)])
- mv.add('view6', 98, 'text/*')
- self.assertEqual(mv.views, [(98, 'view6', None),
- (99, 'view2', None),
- (100, 'view', None)])
+ mv.add('view6', 98, accept='text/*')
+ self.assertEqual(mv.media_views['text/*'], [(98, 'view6', None)])
def test_add_with_phash(self):
mv = self._makeOne()
@@ -3440,14 +3438,12 @@ class DummyAccept(object):
def __init__(self, *matches):
self.matches = list(matches)
- def best_match(self, offered):
- if self.matches:
- for match in self.matches:
- if match in offered:
- self.matches.remove(match)
- return match
- def __contains__(self, val):
- return val in self.matches
+ def acceptable_offers(self, offers):
+ results = []
+ for match in self.matches:
+ if match in offers:
+ results.append((match, 1.0))
+ return results
class DummyConfig:
def __init__(self):
@@ -3475,8 +3471,8 @@ class DummyMultiView:
def __init__(self):
self.views = []
self.name = 'name'
- def add(self, view, order, accept=None, phash=None):
- self.views.append((view, accept, phash))
+ def add(self, view, order, phash=None, accept=None, accept_order=None):
+ self.views.append((view, phash, accept, accept_order))
def __call__(self, context, request):
return 'OK1'
def __permitted__(self, context, request):