From 65f3f8ea3964706002da64b6751d6302f426c3da Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Tue, 27 Jan 2009 22:38:56 +0000 Subject: Whoops, wasn't quite done adding vhost support to traverser yet. --- repoze/bfg/includes/configure.zcml | 4 ++-- repoze/bfg/tests/test_traversal.py | 13 +++++++++++++ repoze/bfg/traversal.py | 6 ++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/repoze/bfg/includes/configure.zcml b/repoze/bfg/includes/configure.zcml index 7a07e1775..33e1aed39 100644 --- a/repoze/bfg/includes/configure.zcml +++ b/repoze/bfg/includes/configure.zcml @@ -15,7 +15,7 @@ @@ -29,7 +29,7 @@ diff --git a/repoze/bfg/tests/test_traversal.py b/repoze/bfg/tests/test_traversal.py index 48b968458..4782ab264 100644 --- a/repoze/bfg/tests/test_traversal.py +++ b/repoze/bfg/tests/test_traversal.py @@ -135,6 +135,19 @@ class ModelGraphTraverserTests(unittest.TestCase): self.assertEqual(name, 'foo') self.assertEqual(subpath, []) + def test_call_with_vh_root(self): + environ = self._getEnviron(PATH_INFO='/baz', + HTTP_X_VHM_ROOT='/foo/bar') + baz = DummyContext() + bar = DummyContext(baz) + foo = DummyContext(bar) + root = DummyContext(foo) + policy = self._makeOne(root) + ctx, name, subpath = policy(environ) + self.assertEqual(ctx, baz) + self.assertEqual(name, '') + self.assertEqual(subpath, []) + def test_call_with_ILocation_root_proxies(self): baz = DummyContext() bar = DummyContext(baz) diff --git a/repoze/bfg/traversal.py b/repoze/bfg/traversal.py index 76172c18c..476f119b9 100644 --- a/repoze/bfg/traversal.py +++ b/repoze/bfg/traversal.py @@ -228,6 +228,12 @@ class ModelGraphTraverser(object): path = environ['PATH_INFO'] except KeyError: path = '/' + try: + vroot = environ[VH_ROOT_KEY] + path = vroot + path + except KeyError: + pass + path = list(traversal_path(path)) locatable = self.locatable step = self._step -- cgit v1.2.3