[Checkins] SVN: zope.container/trunk/ Change configure.zcml to not depend on zope.app.component.

Baiju M baiju.m.mail at gmail.com
Thu Apr 2 22:28:21 EDT 2009


Log message for revision 98799:
  Change configure.zcml to not depend on zope.app.component.
  Fixes: https://bugs.launchpad.net/bugs/348329
  (Thanks to Gary Poster for the idea, see r98787)
  

Changed:
  U   zope.container/trunk/CHANGES.txt
  U   zope.container/trunk/setup.py
  U   zope.container/trunk/src/zope/container/configure.zcml
  A   zope.container/trunk/src/zope/container/tests/ftest_zcml_dependencies.zcml
  A   zope.container/trunk/src/zope/container/tests/test_dependencies.py

-=-
Modified: zope.container/trunk/CHANGES.txt
===================================================================
--- zope.container/trunk/CHANGES.txt	2009-04-03 01:09:49 UTC (rev 98798)
+++ zope.container/trunk/CHANGES.txt	2009-04-03 02:28:21 UTC (rev 98799)
@@ -5,6 +5,9 @@
 3.7.3 (unreleased)
 ------------------
 
+- Change configure.zcml to not depend on zope.app.component.
+  Fixes: https://bugs.launchpad.net/bugs/348329
+
 - Moved the declaration of ``IOrderedContainer.updateOrder``  to a new, basic
   ``IOrdered`` interface and let ``IOrderedContainer`` inherit it. This allows
   easier reuse of the declaration.

Modified: zope.container/trunk/setup.py
===================================================================
--- zope.container/trunk/setup.py	2009-04-03 01:09:49 UTC (rev 98798)
+++ zope.container/trunk/setup.py	2009-04-03 02:28:21 UTC (rev 98799)
@@ -59,7 +59,10 @@
                               ], include_dirs=['include']),
                    ],
       extras_require=dict(
-          test=['zope.copypastemove']),
+          test=['zope.copypastemove',
+                'zope.app.testing',
+                'zope.app.component',
+                ]),
       install_requires=['setuptools',
                         'zope.interface',
                         'zope.cachedescriptors',

Modified: zope.container/trunk/src/zope/container/configure.zcml
===================================================================
--- zope.container/trunk/src/zope/container/configure.zcml	2009-04-03 01:09:49 UTC (rev 98798)
+++ zope.container/trunk/src/zope/container/configure.zcml	2009-04-03 02:28:21 UTC (rev 98799)
@@ -1,7 +1,5 @@
 <configure
    xmlns="http://namespaces.zope.org/zope"
-   xmlns:browser="http://namespaces.zope.org/browser"
-   xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc"
    i18n_domain="zope"
    >
 
@@ -81,22 +79,20 @@
     <allow interface=".constraints.IItemTypePrecondition" />
   </class>
 
-  <view
-      for="zope.container.interfaces.IItemContainer"
-      type="zope.publisher.interfaces.browser.IBrowserRequest"
+  <adapter
+      for="zope.container.interfaces.IItemContainer
+           zope.publisher.interfaces.browser.IBrowserRequest"
       provides="zope.publisher.interfaces.browser.IBrowserPublisher"
       factory="zope.container.traversal.ItemTraverser"
       permission="zope.Public"
-      allowed_interface="zope.publisher.interfaces.browser.IBrowserPublisher"
       />
 
-  <view
-      for="zope.container.interfaces.ISimpleReadContainer"
-      type="zope.publisher.interfaces.browser.IBrowserRequest"
+  <adapter
+      for="zope.container.interfaces.ISimpleReadContainer
+	   zope.publisher.interfaces.browser.IBrowserRequest"
       provides="zope.publisher.interfaces.browser.IBrowserPublisher"
       factory="zope.container.traversal.ItemTraverser"
       permission="zope.Public"
-      allowed_interface="zope.publisher.interfaces.browser.IBrowserPublisher"
       />
 
 </configure>

Added: zope.container/trunk/src/zope/container/tests/ftest_zcml_dependencies.zcml
===================================================================
--- zope.container/trunk/src/zope/container/tests/ftest_zcml_dependencies.zcml	                        (rev 0)
+++ zope.container/trunk/src/zope/container/tests/ftest_zcml_dependencies.zcml	2009-04-03 02:28:21 UTC (rev 98799)
@@ -0,0 +1,10 @@
+<configure
+    xmlns="http://namespaces.zope.org/zope">
+
+    <include package="zope.component" file="meta.zcml"/>
+    <include package="zope.security" file="meta.zcml" />
+    <include package="zope.security" file="permissions.zcml" />
+
+    <include package="zope.container"/>
+
+</configure>

Added: zope.container/trunk/src/zope/container/tests/test_dependencies.py
===================================================================
--- zope.container/trunk/src/zope/container/tests/test_dependencies.py	                        (rev 0)
+++ zope.container/trunk/src/zope/container/tests/test_dependencies.py	2009-04-03 02:28:21 UTC (rev 98799)
@@ -0,0 +1,54 @@
+import os
+import unittest
+
+from zope.interface import implements
+import zope.component
+from zope.app.testing import functional
+from zope.publisher.browser import TestRequest
+
+from zope.publisher.interfaces.browser import IBrowserPublisher
+from zope.container.traversal import ItemTraverser
+
+ContainerLayer = functional.ZCMLLayer(
+    os.path.join(os.path.dirname(__file__), 'ftest_zcml_dependencies.zcml'),
+    __name__, 'ContainerLayer', allow_teardown=True)
+
+
+from zope.container.interfaces import IItemContainer
+from zope.container.interfaces import ISimpleReadContainer
+
+class ZCMLDependencies(functional.BrowserTestCase):
+
+    def test_zcml_can_load_with_only_zope_component_meta(self):
+        # this is just an example.  It is supposed to show that the
+        # configure.zcml file has loaded successfully.
+
+        request = TestRequest()
+
+        class SampleItemContainer(object):
+            implements(IItemContainer)
+
+        sampleitemcontainer = SampleItemContainer()
+        res = zope.component.getMultiAdapter(
+            (sampleitemcontainer, request), IBrowserPublisher)
+        self.failUnless(isinstance(res, ItemTraverser))
+        self.failUnless(res.context is sampleitemcontainer)
+
+        class SampleSimpleReadContainer(object):
+            implements(ISimpleReadContainer)
+
+        samplesimplereadcontainer = SampleSimpleReadContainer()
+        res = zope.component.getMultiAdapter(
+            (samplesimplereadcontainer, request), IBrowserPublisher)
+        self.failUnless(isinstance(res, ItemTraverser))
+        self.failUnless(res.context is samplesimplereadcontainer)
+
+def test_suite():
+    suite = unittest.TestSuite()
+    ZCMLDependencies.layer = ContainerLayer
+    suite.addTest(unittest.makeSuite(ZCMLDependencies))
+    return suite
+
+
+if __name__ == '__main__':
+    unittest.main()



More information about the Checkins mailing list