From 4a9f4f43684c3a754f43935b97013057340c305d Mon Sep 17 00:00:00 2001
From: Michael Merickel <michael@merickel.org>
Date: Wed, 10 Oct 2018 07:04:43 +0200
Subject: [PATCH] deprecate range support

---
 pyramid/tests/test_config/test_views.py |   35 +++++++++++++++++++++++++++++------
 1 files changed, 29 insertions(+), 6 deletions(-)

diff --git a/pyramid/tests/test_config/test_views.py b/pyramid/tests/test_config/test_views.py
index abc10d3..6565a35 100644
--- a/pyramid/tests/test_config/test_views.py
+++ b/pyramid/tests/test_config/test_views.py
@@ -1477,6 +1477,25 @@
         request.accept = DummyAccept('text/html')
         self._assertNotFound(wrapper, None, request)
 
+    def test_add_view_with_range_accept_match(self):
+        from pyramid.renderers import null_renderer
+        view = lambda *arg: 'OK'
+        config = self._makeOne(autocommit=True)
+        config.add_view(view=view, accept='text/*', renderer=null_renderer)
+        wrapper = self._getViewCallable(config)
+        request = self._makeRequest(config)
+        request.accept = DummyAccept('text/html', contains=True)
+        self.assertEqual(wrapper(None, request), 'OK')
+
+    def test_add_view_with_range_accept_nomatch(self):
+        view = lambda *arg: 'OK'
+        config = self._makeOne(autocommit=True)
+        config.add_view(view=view, accept='text/*')
+        wrapper = self._getViewCallable(config)
+        request = self._makeRequest(config)
+        request.accept = DummyAccept('application/json', contains=False)
+        self._assertNotFound(wrapper, None, request)
+
     def test_add_view_with_containment_true(self):
         from pyramid.renderers import null_renderer
         from zope.interface import directlyProvides
@@ -2431,20 +2450,19 @@
         ])
 
     def test_add_accept_view_order_throws_on_wildcard(self):
-        from pyramid.exceptions import ConfigurationError
         config = self._makeOne(autocommit=True)
         self.assertRaises(
-            ConfigurationError, config.add_accept_view_order, '*/*',
+            ValueError, config.add_accept_view_order, '*/*',
         )
 
     def test_add_accept_view_order_throws_on_type_mismatch(self):
         config = self._makeOne(autocommit=True)
         self.assertRaises(
-            ConfigurationError, config.add_accept_view_order,
+            ValueError, config.add_accept_view_order,
             'text/*', weighs_more_than='text/html',
         )
         self.assertRaises(
-            ConfigurationError, config.add_accept_view_order,
+            ValueError, config.add_accept_view_order,
             'text/html', weighs_less_than='application/*',
         )
         self.assertRaises(
@@ -2577,7 +2595,8 @@
         self.assertEqual(set(mv.accepts), set(['text/xml', 'text/html']))
         self.assertEqual(mv.views, [(99, 'view2', None), (100, 'view', None)])
         mv.add('view6', 98, accept='text/*')
-        self.assertEqual(mv.media_views['text/*'], [(98, 'view6', None)])
+        self.assertEqual(mv.views, [
+            (98, 'view6', None), (99, 'view2', None), (100, 'view', None)])
 
     def test_add_with_phash(self):
         mv = self._makeOne()
@@ -3503,8 +3522,9 @@
     pass
 
 class DummyAccept(object):
-    def __init__(self, *matches):
+    def __init__(self, *matches, **kw):
         self.matches = list(matches)
+        self.contains = kw.pop('contains', False)
 
     def acceptable_offers(self, offers):
         results = []
@@ -3513,6 +3533,9 @@
                 results.append((match, 1.0))
         return results
 
+    def __contains__(self, value):
+        return self.contains
+
 class DummyConfig:
     def __init__(self):
         self.registry = DummyRegistry()

--
Gitblit v1.9.3