From 8f88693600edebb522b6d078691e72a0dcbdb287 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Fri, 4 Jul 2008 20:00:59 +0000 Subject: Depend on zope.component Use an adapter to perform traversal. --- repoze/bfg/tests/test_policy.py | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) (limited to 'repoze/bfg/tests') diff --git a/repoze/bfg/tests/test_policy.py b/repoze/bfg/tests/test_policy.py index e8752d1a1..3623d43f5 100644 --- a/repoze/bfg/tests/test_policy.py +++ b/repoze/bfg/tests/test_policy.py @@ -1,5 +1,7 @@ import unittest +from zope.component.testing import PlacelessSetup + class SplitPathTests(unittest.TestCase): def _getFUT(self): from repoze.bfg.policy import split_path @@ -25,25 +27,35 @@ class SplitPathTests(unittest.TestCase): f = self._getFUT() self.assertEqual(f('/foo/space%20thing/bar'), ['foo', 'space thing', 'bar']) - -class NaivePolicyTests(unittest.TestCase): + +class NaivePolicyTests(unittest.TestCase, PlacelessSetup): + def setUp(self): + PlacelessSetup.setUp(self) + + def tearDown(self): + PlacelessSetup.tearDown(self) + def _getTargetClass(self): - from repoze.bfg.policy import NaivePolicy - return NaivePolicy + from repoze.bfg.policy import NaiveTraversalPolicy + return NaiveTraversalPolicy 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_IPolicy(self): from zope.interface.verify import verifyClass - from repoze.bfg.interfaces import IPolicy - verifyClass(IPolicy, self._getTargetClass()) + from repoze.bfg.interfaces import ITraversalPolicy + verifyClass(ITraversalPolicy, self._getTargetClass()) def test_instance_conforms_to_IPolicy(self): from zope.interface.verify import verifyObject - from repoze.bfg.interfaces import IPolicy - verifyObject(IPolicy, self._makeOne()) + from repoze.bfg.interfaces import ITraversalPolicy + verifyObject(ITraversalPolicy, self._makeOne()) def test_call_nonkeyerror_raises(self): policy = self._makeOne() @@ -92,3 +104,12 @@ class DummyContext: raise KeyError, name return self.next +class DummyTraverser: + def __init__(self, context): + self.context = context + + def __call__(self, environ, name): + try: + return self.context[name] + except KeyError: + return None -- cgit v1.2.3