[Zope-Checkins] CVS: Zope3/lib/python/Zope/Configuration/tests - Directives.py:1.1.2.5 testMeta.py:1.1.2.8 testXML.py:1.1.2.9

Jim Fulton jim@zope.com
Tue, 26 Mar 2002 19:47:16 -0500


Update of /cvs-repository/Zope3/lib/python/Zope/Configuration/tests
In directory cvs.zope.org:/tmp/cvs-serv28160/lib/python/Zope/Configuration/tests

Modified Files:
      Tag: Zope-3x-branch
	Directives.py testMeta.py testXML.py 
Log Message:
Merged in changes from contextual-directives branch.

Now, a leading dot in a dotted name implies the package the include
file was included from. It still defaults to ZopeProducts if a file 
was not included via a package.

A few of the config files have been convered to use the
shorthand. The rest still can be converted.

I also checked this against Step 6 in the tutorial, which I will check
in in a moment.


=== Zope3/lib/python/Zope/Configuration/tests/Directives.py 1.1.2.4 => 1.1.2.5 ===
     __implements__ = INonEmptyDirective
 
-    def __init__(self, name, permission=None, methods=None):
+    def __init__(self, _context, name, permission=None, methods=None):
         self._name=name
         self._permission=permission
         self._methods=methods
         self._children=[]
+        self.__context = _context
 
     def __call__(self):
         if not self._children:
@@ -39,7 +40,7 @@
         else:
             return ()
             
-    def protect(self, permission=None, methods=None):
+    def protect(self, _context, permission=None, methods=None):
         if permission is None: permission=self._permission
         if permission is None: raise 'no perm'
         p=self._name, permission, methods
@@ -49,7 +50,7 @@
 
 done = []
 
-def doit(name):
+def doit(_context, name):
     return [('d', done.append, (name,))]
 
 def clearDirectives():


=== Zope3/lib/python/Zope/Configuration/tests/testMeta.py 1.1.2.7 => 1.1.2.8 ===
      import protectClass, protections, doit, done
 from Zope.Testing.CleanUp import CleanUp # Base class w registry cleanup
+from Zope.Configuration import name
 
 ns='http://www.zope.org/NS/Zope3/test'
 
@@ -21,11 +22,11 @@
         from Zope.Configuration.meta \
              import register, registersub, begin, end, InvalidDirective
 
-        self.assertRaises(InvalidDirective, begin, None, (ns, 'doit'))
+        self.assertRaises(InvalidDirective, begin, None, name, (ns, 'doit'))
 
         register((ns, 'doit'), doit)
 
-        subs = begin(None, (ns, 'doit'), name='splat')
+        subs = begin(None, (ns, 'doit'), name, name='splat')
         (des, callable, args, kw), = end(subs)
         self.assertEqual(des, 'd')
         callable(*args)
@@ -39,7 +40,7 @@
         subs = register((ns, 'protectClass'), protectClass)
         registersub(subs, (ns, 'protect'))
 
-        subs=begin(None, (ns, 'protectClass'),
+        subs=begin(None, (ns, 'protectClass'), name,
                    name=".Contact", permission="splat", methods='update')
 
         (des, callable, args, kw), = end(subs)
@@ -55,15 +56,15 @@
         subs = register((ns, 'protectClass'), protectClass)
         registersub(subs, (ns, 'protect'))
 
-        subs = begin(None, (ns, 'protectClass'), name=".Contact")
+        subs = begin(None, (ns, 'protectClass'), name, name=".Contact")
 
-        actions = end(sub(subs, (ns, 'protect'),
+        actions = end(sub(subs, (ns, 'protect'), name,
                           permission='edit', methods='update'))
         (des, callable, args, kw), = actions
         self.assertEqual(des, ('.Contact', 'update'))
         callable(*args)
 
-        actions = end(sub(subs, (ns, 'protect'),
+        actions = end(sub(subs, (ns, 'protect'), name,
                           permission='view', methods='name, email'))
         (des, callable, args, kw), = actions
         self.assertEqual(des, ('.Contact', 'name, email'))


=== Zope3/lib/python/Zope/Configuration/tests/testXML.py 1.1.2.8 => 1.1.2.9 ===
         else:
             self.fail('Should have raised ZopeXMLConfigurationError')
+
+
+    def testInclude(self):
+        from tempfile import mktemp
+        name = mktemp()
+        open(name, 'w').write(
+            """<zopeConfigure xmlns='http://namespaces.zope.org/zope'>
+            <include package="Zope.Configuration.tests.Contact"
+                     file="contact.zcml" />
+            </zopeConfigure>""")
+
+        from Zope.Configuration.xmlconfig import XMLConfig
+        x=XMLConfig(name)
+        x()
         
 
 def test_suite():