diff options
| author | Chris McDonough <chrism@agendaless.com> | 2009-01-28 04:55:17 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2009-01-28 04:55:17 +0000 |
| commit | 3bfa35586381fc808f455696837c9fe0ebc0a0ca (patch) | |
| tree | 8748193635bb8acd881a754f4e4853646229de1b /repoze | |
| parent | da442da2870550f05c0d12a639e1a55315421c29 (diff) | |
| download | pyramid-3bfa35586381fc808f455696837c9fe0ebc0a0ca.tar.gz pyramid-3bfa35586381fc808f455696837c9fe0ebc0a0ca.tar.bz2 pyramid-3bfa35586381fc808f455696837c9fe0ebc0a0ca.zip | |
Microtweak and bwcompat code.
Diffstat (limited to 'repoze')
| -rw-r--r-- | repoze/bfg/tests/test_traversal.py | 10 | ||||
| -rw-r--r-- | repoze/bfg/traversal.py | 9 |
2 files changed, 17 insertions, 2 deletions
diff --git a/repoze/bfg/tests/test_traversal.py b/repoze/bfg/tests/test_traversal.py index 4782ab264..3b0c4318c 100644 --- a/repoze/bfg/tests/test_traversal.py +++ b/repoze/bfg/tests/test_traversal.py @@ -225,6 +225,16 @@ class ModelGraphTraverserTests(unittest.TestCase): environ = self._getEnviron(PATH_INFO='/%s' % segment) self.assertRaises(TypeError, policy, environ) + def test_locatable_bwcompat(self): + root = DummyContext() + from repoze.bfg.interfaces import ILocation + from zope.interface import directlyProvides + policy = self._makeOne(root) + self.assertEqual(policy.locatable, False) + directlyProvides(root, ILocation) + self.assertEqual(policy.locatable, True) + + class FindInterfaceTests(unittest.TestCase): def _callFUT(self, context, iface): from repoze.bfg.traversal import find_interface diff --git a/repoze/bfg/traversal.py b/repoze/bfg/traversal.py index 476f119b9..4f1ffb60d 100644 --- a/repoze/bfg/traversal.py +++ b/repoze/bfg/traversal.py @@ -221,7 +221,12 @@ class ModelGraphTraverser(object): implements(ITraverser) def __init__(self, root): self.root = root - self.locatable = ILocation.providedBy(root) + + @property + def locatable(self): + """ Backwards compatibility for Malthe and David, even though + they're not supposed to be using this ;-)""" + return ILocation.providedBy(self.root) def __call__(self, environ, _marker=_marker): try: @@ -235,11 +240,11 @@ class ModelGraphTraverser(object): pass path = list(traversal_path(path)) - locatable = self.locatable step = self._step ob = self.root name = '' + locatable = ILocation.providedBy(ob) while path: segment = path.pop(0) |
