diff options
| author | Michael Merickel <michael@merickel.org> | 2012-08-23 10:43:32 -0500 |
|---|---|---|
| committer | Michael Merickel <michael@merickel.org> | 2012-08-23 10:43:32 -0500 |
| commit | 04373f1691c2e17a28a62b9ed30fcc830a007ffd (patch) | |
| tree | a180a73213cd8cd1eeb63e05297f7ff92986009b | |
| parent | 45b6e192c44ebee124317a90a9a6dcc044407a2a (diff) | |
| parent | ce5b5e4b842fe0e88d9ba5055b419b756723e8ec (diff) | |
| download | pyramid-04373f1691c2e17a28a62b9ed30fcc830a007ffd.tar.gz pyramid-04373f1691c2e17a28a62b9ed30fcc830a007ffd.tar.bz2 pyramid-04373f1691c2e17a28a62b9ed30fcc830a007ffd.zip | |
Merge branch 'accept_header' of lmctv/pyramid into pull.620
Conflicts:
CONTRIBUTORS.txt
pyramid/config/views.py
Updated the pull request to fix incompatibilities from changes
to Pyramid's predicate machinery.
| -rw-r--r-- | CONTRIBUTORS.txt | 2 | ||||
| -rw-r--r-- | pyramid/config/views.py | 3 | ||||
| -rw-r--r-- | pyramid/tests/test_config/test_views.py | 18 |
3 files changed, 23 insertions, 0 deletions
diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt index e44117af3..264acf048 100644 --- a/CONTRIBUTORS.txt +++ b/CONTRIBUTORS.txt @@ -173,6 +173,8 @@ Contributors - Marin Rukavina, 2012/05/03 +- Lorenzo M. Catucci, 2012/06/08 + - Marc Abramowitz, 2012/06/13 - Jeff Cook, 2012/06/16 diff --git a/pyramid/config/views.py b/pyramid/config/views.py index 1c4e20dd6..b61a71914 100644 --- a/pyramid/config/views.py +++ b/pyramid/config/views.py @@ -1047,6 +1047,9 @@ class ViewsConfiguratorMixin(object): name=renderer, package=self.package, registry = self.registry) + if accept is not None: + accept = accept.lower() + introspectables = [] pvals = predicates.copy() pvals.update( diff --git a/pyramid/tests/test_config/test_views.py b/pyramid/tests/test_config/test_views.py index 38f60d79b..1a59b3c5c 100644 --- a/pyramid/tests/test_config/test_views.py +++ b/pyramid/tests/test_config/test_views.py @@ -646,6 +646,24 @@ class TestViewsConfigurationMixin(unittest.TestCase): request.accept = DummyAccept('text/html', 'text/html') self.assertEqual(wrapper(None, request), 'OK2') + def test_add_view_mixed_case_replaces_existing_view(self): + from pyramid.renderers import null_renderer + def view(context, request): return 'OK' + def view2(context, request): return 'OK2' + def view3(context, request): return 'OK3' + config = self._makeOne(autocommit=True) + config.add_view(view=view, renderer=null_renderer) + config.add_view(view=view2, accept='text/html', renderer=null_renderer) + config.add_view(view=view3, accept='text/HTML', renderer=null_renderer) + wrapper = self._getViewCallable(config) + self.assertTrue(IMultiView.providedBy(wrapper)) + self.assertEqual(len(wrapper.media_views.items()),1) + self.assertFalse(wrapper.media_views.has_key('text/HTML')) + self.assertEqual(wrapper(None, None), 'OK') + request = DummyRequest() + request.accept = DummyAccept('text/html', 'text/html') + self.assertEqual(wrapper(None, request), 'OK3') + def test_add_views_with_accept_multiview_replaces_existing(self): from pyramid.renderers import null_renderer def view(context, request): return 'OK' |
