[Checkins] SVN: z3c.caching/trunk/src/z3c/caching/ Add tests for the ZCML handling

Matthew Wilkes matthew at matthewwilkes.co.uk
Mon Dec 28 14:23:47 EST 2009


Log message for revision 107227:
  Add tests for the ZCML handling

Changed:
  A   z3c.caching/trunk/src/z3c/caching/tests/test1.zcml
  A   z3c.caching/trunk/src/z3c/caching/tests/test2.zcml
  A   z3c.caching/trunk/src/z3c/caching/tests/test_zcml.py
  U   z3c.caching/trunk/src/z3c/caching/zcml.py

-=-
Added: z3c.caching/trunk/src/z3c/caching/tests/test1.zcml
===================================================================
--- z3c.caching/trunk/src/z3c/caching/tests/test1.zcml	                        (rev 0)
+++ z3c.caching/trunk/src/z3c/caching/tests/test1.zcml	2009-12-28 19:23:47 UTC (rev 107227)
@@ -0,0 +1,13 @@
+<configure xmlns="http://namespaces.zope.org/zope"
+           xmlns:cache="http://namespaces.zope.org/cache">
+
+    <include package="z3c.caching" file="meta.zcml" />
+
+    <cache:ruleset
+        for="z3c.caching.tests.test_registry.ITestView"
+        ruleset="first"
+        />
+
+</configure>
+
+  
\ No newline at end of file

Added: z3c.caching/trunk/src/z3c/caching/tests/test2.zcml
===================================================================
--- z3c.caching/trunk/src/z3c/caching/tests/test2.zcml	                        (rev 0)
+++ z3c.caching/trunk/src/z3c/caching/tests/test2.zcml	2009-12-28 19:23:47 UTC (rev 107227)
@@ -0,0 +1,18 @@
+<configure xmlns="http://namespaces.zope.org/zope"
+           xmlns:cache="http://namespaces.zope.org/cache">
+
+    <include package="z3c.caching" file="meta.zcml" />
+
+    <cache:ruleset
+        for="z3c.caching.tests.test_registry.ITestView"
+        ruleset="first"
+        />
+
+    <cache:ruleset
+        for="z3c.caching.tests.test_registry.ITestView"
+        ruleset="second"
+        />
+
+</configure>
+
+  
\ No newline at end of file

Added: z3c.caching/trunk/src/z3c/caching/tests/test_zcml.py
===================================================================
--- z3c.caching/trunk/src/z3c/caching/tests/test_zcml.py	                        (rev 0)
+++ z3c.caching/trunk/src/z3c/caching/tests/test_zcml.py	2009-12-28 19:23:47 UTC (rev 107227)
@@ -0,0 +1,36 @@
+import os
+from unittest import TestCase
+
+from zope.configuration import config, xmlconfig
+
+from z3c.caching.registry import getGlobalRulesetRegistry
+import z3c.caching.tests
+from z3c.caching.tests.test_registry import (ITestView, IMoreSpecificTestView, 
+                                             TestView, OtherTestView)
+
+def path(*p):
+    return os.path.join(os.path.dirname(__file__), *p)
+
+class TestZCMLDeclarations(TestCase):
+
+    def setUp(self):
+        self.registry = getGlobalRulesetRegistry()
+    
+    def tearDown(self):
+        xmlconfig._clearContext()
+        self.registry.clear()
+
+    def test_simple_registration(self):
+        i = TestView()
+        self.failUnless(self.registry[i] is None)
+        
+        zcml = xmlconfig.XMLConfig("test1.zcml", z3c.caching.tests)
+        zcml()
+        
+        i = TestView()
+        self.assertEqual(self.registry[i], "first")
+
+    def test_conflicting_registrations(self):
+        zcml = xmlconfig.XMLConfig("test2.zcml", z3c.caching.tests)
+        self.assertRaises(Exception, zcml) # ZCML conflict error
+        
\ No newline at end of file

Modified: z3c.caching/trunk/src/z3c/caching/zcml.py
===================================================================
--- z3c.caching/trunk/src/z3c/caching/zcml.py	2009-12-28 19:23:33 UTC (rev 107226)
+++ z3c.caching/trunk/src/z3c/caching/zcml.py	2009-12-28 19:23:47 UTC (rev 107227)
@@ -1,7 +1,7 @@
 from zope.interface import Interface
 from zope.configuration.fields import GlobalObject
 from zope.configuration.fields import PythonIdentifier
-from z3c.caching.registry import register
+from z3c.caching.registry import getGlobalRulesetRegistry
 
 class IRuleset(Interface):
     for_ = GlobalObject(
@@ -18,6 +18,7 @@
 
 
 def ruleset(_context, for_, ruleset):
+    register = getGlobalRulesetRegistry().register
     _context.action(
             discriminator=("registerCacheRule", for_),
             callable = register,



More information about the checkins mailing list