diff options
| author | Chris McDonough <chrism@agendaless.com> | 2009-10-26 13:38:21 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2009-10-26 13:38:21 +0000 |
| commit | 0a0ffe0b01e81e2fd55e92a818187d3b3b294605 (patch) | |
| tree | 2a5b77b435e343847ed24644c150599b69296916 /repoze | |
| parent | 0d13f6596c2cf38a611183e01a7f73173d5d6faa (diff) | |
| download | pyramid-0a0ffe0b01e81e2fd55e92a818187d3b3b294605.tar.gz pyramid-0a0ffe0b01e81e2fd55e92a818187d3b3b294605.tar.bz2 pyramid-0a0ffe0b01e81e2fd55e92a818187d3b3b294605.zip | |
Revert 6873, as it introduces an unnecessary providedBy for each request in the 99% case, and its behavior can be emulated by returning a root object that implements some interface and registering a traverser for that interface.
Diffstat (limited to 'repoze')
| -rw-r--r-- | repoze/bfg/tests/test_router.py | 40 | ||||
| -rw-r--r-- | repoze/bfg/traversal.py | 9 |
2 files changed, 6 insertions, 43 deletions
diff --git a/repoze/bfg/tests/test_router.py b/repoze/bfg/tests/test_router.py index 6c0497653..13a5bd11a 100644 --- a/repoze/bfg/tests/test_router.py +++ b/repoze/bfg/tests/test_router.py @@ -28,9 +28,10 @@ class TestRouter(unittest.TestCase): settings.update(kw) self.registry.registerUtility(settings, ISettings) - def _makeTraverserFactory(self, context, view_name='', subpath=None, + def _registerTraverserFactory(self, context, view_name='', subpath=None, traversed=None, virtual_root=None, virtual_root_path=None, **kw): + from repoze.bfg.interfaces import ITraverser if virtual_root is None: virtual_root = context @@ -41,13 +42,8 @@ class TestRouter(unittest.TestCase): if virtual_root_path is None: virtual_root_path = [] - from zope.interface import implements - from repoze.bfg.interfaces import ITraverser - class DummyTraverserFactory: - implements(ITraverser) - - def __init__(self, root=None): + def __init__(self, root): self.root = root def __call__(self, path): @@ -61,11 +57,6 @@ class TestRouter(unittest.TestCase): kw.update(values) return kw - return DummyTraverserFactory - - def _registerTraverserFactory(self, *args, **kwargs): - DummyTraverserFactory = self._makeTraverserFactory(*args, **kwargs) - from repoze.bfg.interfaces import ITraverser self.registry.registerAdapter(DummyTraverserFactory, (None,), ITraverser, name='') @@ -156,31 +147,6 @@ class TestRouter(unittest.TestCase): self.failIf('debug_notfound' in result[0]) self.assertEqual(len(logger.messages), 0) - def test_call_traverser_model(self): - environ = self._makeEnviron() - from zope.interface import Interface - class IContext(Interface): - pass - context = DummyContext() - from zope.interface import directlyProvides - directlyProvides(context, IContext) - RootFactory = self._makeTraverserFactory(context, view_name='def') - root = RootFactory() - self._registerRootFactory(root) - from repoze.bfg.interfaces import IRequest - response = DummyResponse() - response.app_iter = ['Hello world'] - view = DummyView(response) - self._registerView(view, 'def', IContext, IRequest) - logger = self._registerLogger() - router = self._makeOne() - start_response = DummyStartResponse() - result = router(environ, start_response) - self.assertEqual(result, ['Hello world']) - headers = start_response.headers - status = start_response.status - self.assertEqual(status, '200 OK') - def test_has_webob_adhoc_attrs(self): environ = self._makeEnviron() environ['webob.adhoc_attrs'] = {} diff --git a/repoze/bfg/traversal.py b/repoze/bfg/traversal.py index 580225566..11e5ca806 100644 --- a/repoze/bfg/traversal.py +++ b/repoze/bfg/traversal.py @@ -273,12 +273,9 @@ def traverse(model, path): return _traverse(model, {'PATH_INFO':path}) def _traverse(model, environ): - if ITraverser.providedBy(model): - traverser = model - else: - traverser = queryAdapter(model, ITraverser) - if traverser is None: - traverser = ModelGraphTraverser(model) + traverser = queryAdapter(model, ITraverser) + if traverser is None: + traverser = ModelGraphTraverser(model) result = traverser(environ) return result |
