summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Merickel <michael@merickel.org>2012-08-23 10:43:32 -0500
committerMichael Merickel <michael@merickel.org>2012-08-23 10:43:32 -0500
commit04373f1691c2e17a28a62b9ed30fcc830a007ffd (patch)
treea180a73213cd8cd1eeb63e05297f7ff92986009b
parent45b6e192c44ebee124317a90a9a6dcc044407a2a (diff)
parentce5b5e4b842fe0e88d9ba5055b419b756723e8ec (diff)
downloadpyramid-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.txt2
-rw-r--r--pyramid/config/views.py3
-rw-r--r--pyramid/tests/test_config/test_views.py18
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'