summaryrefslogtreecommitdiff
path: root/repoze
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-01-28 04:55:17 +0000
committerChris McDonough <chrism@agendaless.com>2009-01-28 04:55:17 +0000
commit3bfa35586381fc808f455696837c9fe0ebc0a0ca (patch)
tree8748193635bb8acd881a754f4e4853646229de1b /repoze
parentda442da2870550f05c0d12a639e1a55315421c29 (diff)
downloadpyramid-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.py10
-rw-r--r--repoze/bfg/traversal.py9
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)