From 34f00aede8634810164baaac0fd9214b683ff181 Mon Sep 17 00:00:00 2001 From: "Lorenzo M. Catucci" Date: Fri, 8 Jun 2012 12:31:50 +0200 Subject: RFC 2616 sec. 3.7 case insensitive match test Since "... The type, subtype, and parameter attribute names are case- insensitive..." the type and subtype in the accept parameter in add_view should be treated in a case insensitive way. --- pyramid/tests/test_config/test_views.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/pyramid/tests/test_config/test_views.py b/pyramid/tests/test_config/test_views.py index 9b46f83c9..4e1be2190 100644 --- a/pyramid/tests/test_config/test_views.py +++ b/pyramid/tests/test_config/test_views.py @@ -645,6 +645,26 @@ 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' + def get_val(obj, key): + return obj.get(key) + 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' -- cgit v1.2.3