summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBert JW Regeer <bertjw@regeer.org>2015-10-20 22:46:54 -0600
committerBert JW Regeer <bertjw@regeer.org>2015-10-20 23:21:27 -0600
commitd11119922ec91da838b81f0c7ae5855adc596b79 (patch)
treebe0a089a5985469175bd2adcb4de9354c31fdd7c
parentc15fe7a1298be06fcb25c1377c8ae18f98bce1ff (diff)
downloadpyramid-d11119922ec91da838b81f0c7ae5855adc596b79.tar.gz
pyramid-d11119922ec91da838b81f0c7ae5855adc596b79.tar.bz2
pyramid-d11119922ec91da838b81f0c7ae5855adc596b79.zip
Add tests to verify we order stuff correctly
Specifically we want to make sure that rendered_view always comes first, unless a user overrides it by name.
-rw-r--r--pyramid/tests/test_config/test_derivations.py93
1 files changed, 93 insertions, 0 deletions
diff --git a/pyramid/tests/test_config/test_derivations.py b/pyramid/tests/test_config/test_derivations.py
index 94f570fe2..710128dca 100644
--- a/pyramid/tests/test_config/test_derivations.py
+++ b/pyramid/tests/test_config/test_derivations.py
@@ -1086,6 +1086,98 @@ class TestDeriveView(unittest.TestCase):
view, http_cache=(None,))
+class TestDerivationOrder(unittest.TestCase):
+ def setUp(self):
+ self.config = testing.setUp()
+
+ def tearDown(self):
+ self.config = None
+ testing.tearDown()
+
+ def test_right_order_user_sorted(self):
+ from pyramid.interfaces import IViewDerivers
+
+ self.config.add_view_derivation('deriv1', None, default=None)
+ self.config.add_view_derivation('deriv2', None, default=None, over='deriv1')
+ self.config.add_view_derivation('deriv3', None, default=None, under='deriv2')
+
+ derivers = self.config.registry.queryUtility(IViewDerivers, default=[])
+ derivers_sorted = derivers.sorted()
+ dlist = [d for (d, _) in derivers_sorted]
+ self.assertEqual([
+ 'rendered_view',
+ 'deriv2',
+ 'deriv3',
+ 'deriv1',
+ 'decorated_view',
+ 'http_cached_view',
+ 'owrapped_view',
+ 'secured_view',
+ 'authdebug_view',
+ ], dlist)
+
+ def test_right_order_implicit(self):
+ from pyramid.interfaces import IViewDerivers
+
+ self.config.add_view_derivation('deriv1', None, default=None)
+ self.config.add_view_derivation('deriv2', None, default=None)
+ self.config.add_view_derivation('deriv3', None, default=None)
+
+ derivers = self.config.registry.queryUtility(IViewDerivers, default=[])
+ derivers_sorted = derivers.sorted()
+ dlist = [d for (d, _) in derivers_sorted]
+ self.assertEqual([
+ 'rendered_view',
+ 'deriv1',
+ 'deriv2',
+ 'deriv3',
+ 'decorated_view',
+ 'http_cached_view',
+ 'owrapped_view',
+ 'secured_view',
+ 'authdebug_view',
+ ], dlist)
+
+ def test_right_order_over_rendered_view(self):
+ from pyramid.interfaces import IViewDerivers
+
+ self.config.add_view_derivation('deriv1', None, default=None, over='rendered_view')
+
+ derivers = self.config.registry.queryUtility(IViewDerivers, default=[])
+ derivers_sorted = derivers.sorted()
+ dlist = [d for (d, _) in derivers_sorted]
+ self.assertEqual(['deriv1',
+ 'rendered_view',
+ 'decorated_view',
+ 'http_cached_view',
+ 'owrapped_view',
+ 'secured_view',
+ 'authdebug_view',
+ ], dlist)
+
+
+ def test_right_order_over_rendered_view_others(self):
+ from pyramid.interfaces import IViewDerivers
+
+ self.config.add_view_derivation('deriv1', None, default=None, over='rendered_view')
+ self.config.add_view_derivation('deriv2', None, default=None)
+ self.config.add_view_derivation('deriv3', None, default=None)
+
+ derivers = self.config.registry.queryUtility(IViewDerivers, default=[])
+ derivers_sorted = derivers.sorted()
+ dlist = [d for (d, _) in derivers_sorted]
+ self.assertEqual(['deriv1',
+ 'rendered_view',
+ 'deriv2',
+ 'deriv3',
+ 'decorated_view',
+ 'http_cached_view',
+ 'owrapped_view',
+ 'secured_view',
+ 'authdebug_view',
+ ], dlist)
+
+
class TestAddDerivation(unittest.TestCase):
def setUp(self):
@@ -1196,6 +1288,7 @@ class TestAddDerivation(unittest.TestCase):
result = self.config._derive_view(view)
self.assertEqual(response.deriv, ['deriv2', 'deriv3', 'deriv1'])
+
class TestDerivationIntegration(unittest.TestCase):
def setUp(self):
self.config = testing.setUp()