diff options
| author | Michael Merickel <michael@merickel.org> | 2018-09-27 01:22:02 -0500 |
|---|---|---|
| committer | Michael Merickel <michael@merickel.org> | 2018-09-27 01:22:02 -0500 |
| commit | c3c83eb71ff3352cee754b404ad4d65ab02fa464 (patch) | |
| tree | fd6601c22dafd763e928f77005f2de50d5511620 | |
| parent | 30f79dc6f3f7b6a478004ca4e41171468095c235 (diff) | |
| download | pyramid-c3c83eb71ff3352cee754b404ad4d65ab02fa464.tar.gz pyramid-c3c83eb71ff3352cee754b404ad4d65ab02fa464.tar.bz2 pyramid-c3c83eb71ff3352cee754b404ad4d65ab02fa464.zip | |
fix old tests
| -rw-r--r-- | pyramid/config/routes.py | 2 | ||||
| -rw-r--r-- | pyramid/tests/test_config/test_routes.py | 30 | ||||
| -rw-r--r-- | pyramid/tests/test_config/test_views.py | 42 |
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): |
