From 7de404bb4af2744a64c13e31a780fc0229b8f9e5 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Mon, 7 Jul 2008 04:44:57 +0000 Subject: Look up a view after traversal; adapt it to IWSGIApplication. --- repoze/bfg/tests/test_traversal.py | 72 ++++++++++++++++++++------------------ 1 file changed, 37 insertions(+), 35 deletions(-) (limited to 'repoze/bfg/tests/test_traversal.py') diff --git a/repoze/bfg/tests/test_traversal.py b/repoze/bfg/tests/test_traversal.py index bb0b98b79..115086b8b 100644 --- a/repoze/bfg/tests/test_traversal.py +++ b/repoze/bfg/tests/test_traversal.py @@ -36,62 +36,61 @@ class NaivePolicyTests(unittest.TestCase, PlacelessSetup): PlacelessSetup.tearDown(self) def _getTargetClass(self): - from repoze.bfg.traversal import NaiveTraversalPolicy - return NaiveTraversalPolicy + from repoze.bfg.traversal import NaivePublishTraverser + return NaivePublishTraverser def _makeOne(self, *arg, **kw): import zope.component gsm = zope.component.getGlobalSiteManager() - from repoze.bfg.interfaces import ITraverser - gsm.registerAdapter(DummyTraverser, (None,), ITraverser, '') klass = self._getTargetClass() return klass(*arg, **kw) - def test_class_conforms_to_ITraversalPolicy(self): + def test_class_conforms_to_IPublishTraverser(self): from zope.interface.verify import verifyClass - from repoze.bfg.interfaces import ITraversalPolicy - verifyClass(ITraversalPolicy, self._getTargetClass()) + from repoze.bfg.interfaces import IPublishTraverser + verifyClass(IPublishTraverser, self._getTargetClass()) - def test_instance_conforms_to_ITraversalPolicy(self): + def test_instance_conforms_to_IPublishTraverser(self): from zope.interface.verify import verifyObject - from repoze.bfg.interfaces import ITraversalPolicy - verifyObject(ITraversalPolicy, self._makeOne()) + from repoze.bfg.interfaces import IPublishTraverser + context = DummyContext() + request = DummyRequest() + verifyObject(IPublishTraverser, self._makeOne(context, request)) - def test_call_nonkeyerror_raises(self): - policy = self._makeOne() - environ = {'PATH_INFO':'/foo'} - root = None - self.assertRaises(TypeError, policy, environ, root) + def test_call_pathel_with_no_getitem(self): + request = DummyRequest() + policy = self._makeOne(None, request) + ctx, name, subpath = policy('/foo/bar') + self.assertEqual(ctx, None) + self.assertEqual(name, 'foo') + self.assertEqual(subpath, ['bar']) def test_call_withconn_getitem_emptypath_nosubpath(self): - policy = self._makeOne() - context = DummyContext() - environ = {'PATH_INFO':''} - root = context - ctx, name, subpath = policy(environ, root) - self.assertEqual(context, ctx) + root = DummyContext() + request = DummyRequest() + policy = self._makeOne(root, request) + ctx, name, subpath = policy('') + self.assertEqual(ctx, root) self.assertEqual(name, '') self.assertEqual(subpath, []) def test_call_withconn_getitem_withpath_nosubpath(self): - policy = self._makeOne() - context = DummyContext() - context2 = DummyContext(context) - environ = {'PATH_INFO':'/foo/bar'} - root = context - ctx, name, subpath = policy(environ, root) - self.assertEqual(context, ctx) + foo = DummyContext() + root = DummyContext(foo) + request = DummyRequest() + policy = self._makeOne(root, request) + ctx, name, subpath = policy('/foo/bar') + self.assertEqual(ctx, foo) self.assertEqual(name, 'bar') self.assertEqual(subpath, []) def test_call_withconn_getitem_withpath_withsubpath(self): - policy = self._makeOne() - context = DummyContext() - context2 = DummyContext(context) - environ = {'PATH_INFO':'/foo/bar/baz/buz'} - root = context - ctx, name, subpath = policy(environ, root) - self.assertEqual(context, ctx) + foo = DummyContext() + request = DummyRequest() + root = DummyContext(foo) + policy = self._makeOne(root, request) + ctx, name, subpath = policy('/foo/bar/baz/buz') + self.assertEqual(ctx, foo) self.assertEqual(name, 'bar') self.assertEqual(subpath, ['baz', 'buz']) @@ -103,6 +102,9 @@ class DummyContext: if self.next is None: raise KeyError, name return self.next + +class DummyRequest: + pass class DummyTraverser: def __init__(self, context): -- cgit v1.2.3