[Checkins] SVN: z3c.caching/trunk/ Add back convenience API - both for BBB and because it's easier to work with.
Martin Aspeli
optilude at gmx.net
Thu Dec 31 02:16:33 EST 2009
Log message for revision 107430:
Add back convenience API - both for BBB and because it's easier to work with.
Changed:
U z3c.caching/trunk/README.txt
U z3c.caching/trunk/src/z3c/caching/registry.py
U z3c.caching/trunk/src/z3c/caching/tests/test_registry.py
-=-
Modified: z3c.caching/trunk/README.txt
===================================================================
--- z3c.caching/trunk/README.txt 2009-12-31 07:08:04 UTC (rev 107429)
+++ z3c.caching/trunk/README.txt 2009-12-31 07:16:33 UTC (rev 107430)
@@ -67,11 +67,9 @@
To find the ruleset for an object use the ``lookup`` method::
- from z3c.caching.registry import getGlobalRulesetRegistry
- registry = getGlobalRulesetRegistry()
+ from z3c.caching.registry import lookup
+ cacheRule = lookup(FrontpageView)
- cacheRule = registry.lookup(FrontpageView)
-
Caching operations
------------------
Modified: z3c.caching/trunk/src/z3c/caching/registry.py
===================================================================
--- z3c.caching/trunk/src/z3c/caching/registry.py 2009-12-31 07:08:04 UTC (rev 107429)
+++ z3c.caching/trunk/src/z3c/caching/registry.py 2009-12-31 07:16:33 UTC (rev 107430)
@@ -92,3 +92,25 @@
def getGlobalRulesetRegistry():
return IRulesetRegistry(getGlobalSiteManager(), None)
+
+# Convenience API
+
+def register(obj, rule):
+ registry = getGlobalRulesetRegistry()
+ if registry is None:
+ raise LookupError("Global not found initialised")
+ return registry.register(obj, rule)
+
+def unregister(obj):
+ registry = getGlobalRulesetRegistry()
+ if registry is None:
+ raise LookupError("Global not found initialised")
+ return registry.unregister(obj)
+
+def lookup(obj):
+ registry = getGlobalRulesetRegistry()
+ if registry is None:
+ return None
+ return registry.lookup(obj)
+
+__all__ = ['getGlobalRulesetRegistry', 'register', 'unregister', 'lookup']
\ No newline at end of file
Modified: z3c.caching/trunk/src/z3c/caching/tests/test_registry.py
===================================================================
--- z3c.caching/trunk/src/z3c/caching/tests/test_registry.py 2009-12-31 07:08:04 UTC (rev 107429)
+++ z3c.caching/trunk/src/z3c/caching/tests/test_registry.py 2009-12-31 07:16:33 UTC (rev 107430)
@@ -111,7 +111,52 @@
def test_enumerate_empty(self):
self.assertEqual(set([]), set(self.registry.enumerate()))
+
+class TestConvenienceAPI(TestCase):
+
+ def setUp(self):
+ provideAdapter(RulesetRegistry)
+ self.registry = getGlobalRulesetRegistry()
+ def tearDown(self):
+ self.registry.clear()
+ zope.component.testing.tearDown()
+
+ def test_no_ruleset_returned_if_unregistered(self):
+ from z3c.caching.registry import lookup
+ self.failUnless(lookup(None) is None)
+
+ def test_ruleset_for_class(self):
+ from z3c.caching.registry import register, lookup
+ register(TestView, "frop")
+ i=TestView()
+ self.assertEqual(lookup(i), "frop")
+
+ def test_ruleset_for_interface(self):
+ from z3c.caching.registry import register, lookup
+ register(ITestView, "frop")
+ i=TestView()
+ self.assertEqual(lookup(i), "frop")
+
+ def test_most_specific_interface_wins(self):
+ from z3c.caching.registry import register, lookup
+ register(ITestView, "frop")
+ register(IMoreSpecificTestView, "fribble")
+ i=OtherTestView()
+ self.assertEqual(lookup(i), "fribble")
+
+ def test_unregistering_ruleset_removes_ruleset(self):
+ from z3c.caching.registry import register, unregister, lookup
+ register(TestView, "frop")
+ unregister(TestView)
+ self.failUnless(lookup(TestView) is None)
+
+ def test_unregistering_nonexistant_ruleset_doesnt_error(self):
+ from z3c.caching.registry import unregister, lookup
+ self.failUnless(lookup(TestView) is None)
+ unregister(TestView)
+ self.failUnless(lookup(TestView) is None)
+
def test_suite():
import unittest
return unittest.defaultTestLoader.loadTestsFromName(__name__)
More information about the checkins
mailing list