diff options
| author | Bert JW Regeer <bertjw@regeer.org> | 2015-10-20 22:46:54 -0600 |
|---|---|---|
| committer | Bert JW Regeer <bertjw@regeer.org> | 2015-10-20 23:21:27 -0600 |
| commit | d11119922ec91da838b81f0c7ae5855adc596b79 (patch) | |
| tree | be0a089a5985469175bd2adcb4de9354c31fdd7c | |
| parent | c15fe7a1298be06fcb25c1377c8ae18f98bce1ff (diff) | |
| download | pyramid-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.py | 93 |
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() |
