[Checkins] SVN: zope.container/trunk/ Eliminated dependency on zope.app.testing (we still need it indirectly

Martijn Faassen faassen at infrae.com
Thu Jan 29 06:53:39 EST 2009


Log message for revision 95417:
  Eliminated dependency on zope.app.testing (we still need it indirectly
  now as zope.app.component needs it, and we still need that).
  

Changed:
  _U  zope.container/trunk/
  U   zope.container/trunk/buildout.cfg
  U   zope.container/trunk/setup.py
  U   zope.container/trunk/src/zope/container/constraints.txt
  U   zope.container/trunk/src/zope/container/contained.py
  U   zope.container/trunk/src/zope/container/testing.py
  D   zope.container/trunk/src/zope/container/tests/placelesssetup.py
  U   zope.container/trunk/src/zope/container/tests/test_btree.py
  U   zope.container/trunk/src/zope/container/tests/test_contained.py
  U   zope.container/trunk/src/zope/container/tests/test_containertraverser.py
  U   zope.container/trunk/src/zope/container/tests/test_icontainer.py
  U   zope.container/trunk/src/zope/container/tests/test_objectcopier.py
  U   zope.container/trunk/src/zope/container/tests/test_objectmover.py
  U   zope.container/trunk/src/zope/container/tests/test_ordered.py

-=-

Property changes on: zope.container/trunk
___________________________________________________________________
Added: svn:externals
   + zope.app.container svn://svn.zope.org/repos/main/zope.app.container/trunk


Modified: zope.container/trunk/buildout.cfg
===================================================================
--- zope.container/trunk/buildout.cfg	2009-01-29 11:47:58 UTC (rev 95416)
+++ zope.container/trunk/buildout.cfg	2009-01-29 11:53:38 UTC (rev 95417)
@@ -1,5 +1,5 @@
 [buildout]
-develop = .
+develop = . zope.app.container
 parts = test
 
 [test]

Modified: zope.container/trunk/setup.py
===================================================================
--- zope.container/trunk/setup.py	2009-01-29 11:47:58 UTC (rev 95416)
+++ zope.container/trunk/setup.py	2009-01-29 11:53:38 UTC (rev 95417)
@@ -59,7 +59,11 @@
                               ], include_dirs=['include']),
                    ],
 
-      extras_require=dict(test=['zope.app.testing']),
+      # we don't need zope.app.testing, but zope.app.component does and
+      # doesn't declare the dependency, and we need zope.app.component for
+      # testing
+      extras_require=dict(test=['zope.app.testing',
+                                'zope.app.component']),
       install_requires=['setuptools',
                         'zope.interface',
                         'zope.app.publisher',

Modified: zope.container/trunk/src/zope/container/constraints.txt
===================================================================
--- zope.container/trunk/src/zope/container/constraints.txt	2009-01-29 11:47:58 UTC (rev 95416)
+++ zope.container/trunk/src/zope/container/constraints.txt	2009-01-29 11:53:38 UTC (rev 95417)
@@ -6,8 +6,8 @@
 containers an item can be placed in.  We express these constraints in
 interfaces.  Let's define some container and item interfaces:
 
-    >>> from zope.app.container.interfaces import IContainer, IContained
-    >>> from zope.app.container.constraints import containers, contains
+    >>> from zope.container.interfaces import IContainer, IContained
+    >>> from zope.container.constraints import containers, contains
 
     >>> class IBuddyFolder(IContainer):
     ...     contains('.IBuddy')
@@ -35,7 +35,7 @@
     >>> class BuddyFolder:
     ...     interface.implements(IBuddyFolder)
 
-    >>> from zope.app.container.constraints import checkObject, checkFactory
+    >>> from zope.container.constraints import checkObject, checkFactory
     >>> from zope.component.factory import Factory
 
     >>> checkObject(BuddyFolder(), 'x', Buddy())

Modified: zope.container/trunk/src/zope/container/contained.py
===================================================================
--- zope.container/trunk/src/zope/container/contained.py	2009-01-29 11:47:58 UTC (rev 95416)
+++ zope.container/trunk/src/zope/container/contained.py	2009-01-29 11:53:38 UTC (rev 95417)
@@ -146,14 +146,14 @@
 
        Now we'll register it:
 
-         >>> from zope.app.testing import ztapi
-         >>> ztapi.subscribe([None, IObjectMovedEvent], None, handler)
+         >>> from zope import component
+         >>> component.provideHandler(handler, [None, IObjectMovedEvent])
 
        We also register our dispatcher:
 
-         >>> ztapi.subscribe([None, IObjectMovedEvent], None,
-         ...                 dispatchToSublocations)
-
+         >>> component.provideHandler(dispatchToSublocations,
+         ...   [None, IObjectMovedEvent])
+ 
        We can then call the dispatcher for the root object:
 
          >>> event = ObjectRemovedEvent(c)
@@ -382,14 +382,13 @@
 
     >>> from zope.container.interfaces import IObjectAddedEvent
     >>> from zope.container.interfaces import IObjectMovedEvent
-    >>> from zope.app.testing import ztapi
 
-    >>> ztapi.subscribe([IItem, IObjectAddedEvent], None,
-    ...                 lambda obj, event: obj.setAdded(event))
-
-    >>> ztapi.subscribe([IItem, IObjectMovedEvent], None,
-    ...                 lambda obj, event: obj.setMoved(event))
-
+    >>> from zope import component
+    >>> component.provideHandler(lambda obj, event: obj.setAdded(event),
+    ...   [IItem, IObjectAddedEvent])
+    >>> component.provideHandler(lambda obj, event: obj.setMoved(event),
+    ...   [IItem, IObjectMovedEvent])
+    
     >>> item = Item()
 
     >>> container = {}

Modified: zope.container/trunk/src/zope/container/testing.py
===================================================================
--- zope.container/trunk/src/zope/container/testing.py	2009-01-29 11:47:58 UTC (rev 95416)
+++ zope.container/trunk/src/zope/container/testing.py	2009-01-29 11:53:38 UTC (rev 95417)
@@ -1,7 +1,71 @@
-import os
-from zope.app.testing.functional import ZCMLLayer
+##############################################################################
+#
+# Copyright (c) 2002 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Unit test logic for setting up and tearing down basic infrastructure
 
-AppContainerLayer = ZCMLLayer(
-    os.path.join(os.path.split(__file__)[0], 'ftesting.zcml'),
-    __name__, 'AppContainerLayer', allow_teardown=True)
+$Id: placelesssetup.py 95341 2009-01-28 15:59:18Z wosc $
+"""
+from zope import component
+from zope.component.testing import PlacelessSetup as CAPlacelessSetup
+from zope.component.eventtesting import PlacelessSetup as EventPlacelessSetup
 
+from zope.traversing.interfaces import ITraversable
+import zope.traversing.testing
+
+from zope.container.interfaces import IWriteContainer, INameChooser
+from zope.container.contained import NameChooser
+from zope.container.interfaces import ISimpleReadContainer
+from zope.container.traversal import ContainerTraversable
+
+# XXX we would like to swap the names of the *PlacelessSetup classes
+# in here as that would seem to follow the convention better, but
+# unfortunately that would break compatibility with zope.app.testing
+# (which expects this PlacelessSetup) so it will have to wait.
+
+class PlacelessSetup(object):
+
+    def setUp(self):
+        component.provideAdapter(NameChooser, (IWriteContainer,), INameChooser)
+
+class ContainerPlacelessSetup(CAPlacelessSetup,
+                              EventPlacelessSetup,
+                              PlacelessSetup):
+
+    def setUp(self, doctesttest=None):
+        CAPlacelessSetup.setUp(self)
+        EventPlacelessSetup.setUp(self)
+        PlacelessSetup.setUp(self)
+
+ps = ContainerPlacelessSetup()
+setUp = ps.setUp
+
+def tearDown():
+    tearDown_ = ps.tearDown
+    def tearDown(doctesttest=None):
+        tearDown_()
+    return tearDown
+
+tearDown = tearDown()
+
+del ps
+
+class ContainerPlacefulSetup(ContainerPlacelessSetup):
+    def setUp(self, doctesttest=None):
+        ContainerPlacelessSetup.setUp(self, doctesttest)
+        zope.traversing.testing.setUp()
+        component.provideAdapter(ContainerTraversable,
+                                 (ISimpleReadContainer,), ITraversable)
+
+    def tearDown(self, docttesttest=None):
+        ContainerPlacelessSetup.tearDown(self)
+

Deleted: zope.container/trunk/src/zope/container/tests/placelesssetup.py
===================================================================
--- zope.container/trunk/src/zope/container/tests/placelesssetup.py	2009-01-29 11:47:58 UTC (rev 95416)
+++ zope.container/trunk/src/zope/container/tests/placelesssetup.py	2009-01-29 11:53:38 UTC (rev 95417)
@@ -1,25 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2002 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""Unit test logic for setting up and tearing down basic infrastructure
-
-$Id$
-"""
-from zope.app.testing import ztapi
-from zope.container.interfaces import IWriteContainer, INameChooser
-from zope.container.contained import NameChooser
-
-class PlacelessSetup(object):
-
-    def setUp(self):
-        ztapi.provideAdapter(IWriteContainer, INameChooser, NameChooser)

Modified: zope.container/trunk/src/zope/container/tests/test_btree.py
===================================================================
--- zope.container/trunk/src/zope/container/tests/test_btree.py	2009-01-29 11:47:58 UTC (rev 95416)
+++ zope.container/trunk/src/zope/container/tests/test_btree.py	2009-01-29 11:53:38 UTC (rev 95417)
@@ -18,8 +18,8 @@
 from unittest import TestCase, main, makeSuite, TestSuite
 from zope.interface.verify import verifyObject
 from zope.testing.doctestunit import DocTestSuite
-from zope.app.testing import placelesssetup
-from test_icontainer import TestSampleContainer
+from zope.component.testing import setUp, tearDown
+from zope.container.tests.test_icontainer import TestSampleContainer
 from zope.container.btree import BTreeContainer
 from zope.container.interfaces import IBTreeContainer
 
@@ -169,8 +169,8 @@
         makeSuite(TestBTreeContainer),
         makeSuite(TestBTreeSpecials),
         DocTestSuite('zope.container.btree',
-                     setUp=placelesssetup.setUp,
-                     tearDown=placelesssetup.tearDown),
+                     setUp=setUp,
+                     tearDown=tearDown),
         ))
 
 if __name__=='__main__':

Modified: zope.container/trunk/src/zope/container/tests/test_contained.py
===================================================================
--- zope.container/trunk/src/zope/container/tests/test_contained.py	2009-01-29 11:47:58 UTC (rev 95416)
+++ zope.container/trunk/src/zope/container/tests/test_contained.py	2009-01-29 11:53:38 UTC (rev 95417)
@@ -26,7 +26,7 @@
 from zope.testing import doctest
 
 from zope.container.contained import ContainedProxy
-from zope.app.testing import placelesssetup
+from zope.container import testing
 
 class MyOb(Persistent):
     pass
@@ -319,8 +319,8 @@
 def test_suite():
     return unittest.TestSuite((
         doctest.DocTestSuite('zope.container.contained',
-                             setUp=placelesssetup.setUp,
-                             tearDown=placelesssetup.tearDown),
+                             setUp=testing.setUp,
+                             tearDown=testing.tearDown),
         doctest.DocTestSuite(optionflags=doctest.NORMALIZE_WHITESPACE),
         ))
 

Modified: zope.container/trunk/src/zope/container/tests/test_containertraverser.py
===================================================================
--- zope.container/trunk/src/zope/container/tests/test_containertraverser.py	2009-01-29 11:47:58 UTC (rev 95416)
+++ zope.container/trunk/src/zope/container/tests/test_containertraverser.py	2009-01-29 11:53:38 UTC (rev 95417)
@@ -16,13 +16,16 @@
 $Id$
 """
 import unittest
-from zope.container.traversal import ContainerTraverser
-from zope.container.interfaces import IReadContainer
-from zope.app.testing import ztapi, placelesssetup
+from zope.interface import Interface, implements
+from zope import component
 from zope.publisher.interfaces import NotFound
 from zope.publisher.browser import TestRequest
-from zope.interface import implements
+from zope.publisher.interfaces.browser import IDefaultBrowserLayer
 
+from zope.container.traversal import ContainerTraverser
+from zope.container.interfaces import IReadContainer
+from zope.container import testing
+
 class TestContainer(object):
     implements(IReadContainer)
 
@@ -40,7 +43,7 @@
         self.request = request
 
 
-class TraverserTest(placelesssetup.PlacelessSetup, unittest.TestCase):
+class TraverserTest(testing.ContainerPlacelessSetup, unittest.TestCase):
 
     # The following two methods exist, so that other container traversers can
     # use these tests as a base.
@@ -60,7 +63,9 @@
         # Create the traverser
         self.traverser = self._getTraverser(foo2, self.request)
         # Define a simple view for the container
-        ztapi.browserView(IReadContainer, 'viewfoo', View)
+        component.provideAdapter(
+            View, (IReadContainer, IDefaultBrowserLayer), Interface,
+            name='viewfoo')
         
     def test_itemTraversal(self):
         self.assertEqual(

Modified: zope.container/trunk/src/zope/container/tests/test_icontainer.py
===================================================================
--- zope.container/trunk/src/zope/container/tests/test_icontainer.py	2009-01-29 11:47:58 UTC (rev 95416)
+++ zope.container/trunk/src/zope/container/tests/test_icontainer.py	2009-01-29 11:53:38 UTC (rev 95417)
@@ -19,14 +19,14 @@
 
 from zope.interface.verify import verifyObject
 from zope.container.interfaces import IContainer
-from zope.app.testing import placelesssetup
+from zope.container import testing
 
 
 def DefaultTestData():
     return [('3', '0'), ('2', '1'), ('4', '2'), ('6', '3'), ('0', '4'),
             ('5', '5'), ('1', '6'), ('8', '7'), ('7', '8'), ('9', '9')]
 
-class BaseTestIContainer(placelesssetup.PlacelessSetup):
+class BaseTestIContainer(testing.ContainerPlacelessSetup):
     """Base test cases for containers.
 
     Subclasses must define a makeTestObject that takes no

Modified: zope.container/trunk/src/zope/container/tests/test_objectcopier.py
===================================================================
--- zope.container/trunk/src/zope/container/tests/test_objectcopier.py	2009-01-29 11:47:58 UTC (rev 95416)
+++ zope.container/trunk/src/zope/container/tests/test_objectcopier.py	2009-01-29 11:53:38 UTC (rev 95417)
@@ -25,7 +25,7 @@
 from zope.copypastemove.interfaces import IObjectCopier
 
 from zope.app.component.testing import PlacefulSetup
-from zope.app.testing import setup
+from zope.container import testing
 from zope.app.folder import Folder
 
 class File(object):
@@ -33,11 +33,16 @@
 
 def test_copy_events():
     """
-    Prepare the setup::
+    Prepare an IObjectCopier::
 
-      >>> root = setup.placefulSetUp(site=True)
-      >>> zope.component.provideAdapter(ObjectCopier, (None,), IObjectCopier)
+      >>> from zope import component
+      >>> component.provideAdapter(ObjectCopier, (None,), IObjectCopier)
 
+    We set things up in a root folder::
+
+      >>> from zope.app.folder import rootFolder
+      >>> root = rootFolder()
+      
     Prepare some objects::
 
       >>> folder = Folder()
@@ -50,7 +55,7 @@
     Now make a copy::
 
       >>> clearEvents()
-      >>> copier = IObjectCopier(foo)
+      >>> copier = IObjectCopier(foo)  
       >>> copier.copyTo(folder, u'bar')
       u'bar'
 
@@ -71,10 +76,6 @@
       True
       >>> events[0].original is root[u'foo']
       True
-
-    Finally, tear down::
-
-      >>> setup.placefulTearDown()
     """
 
 
@@ -204,7 +205,8 @@
 def test_suite():
     return TestSuite((
         makeSuite(ObjectCopierTest),
-        doctest.DocTestSuite(),
+        doctest.DocTestSuite(setUp=testing.ContainerPlacefulSetup().setUp,
+                             tearDown=testing.ContainerPlacefulSetup().tearDown),
         ))
 
 if __name__=='__main__':

Modified: zope.container/trunk/src/zope/container/tests/test_objectmover.py
===================================================================
--- zope.container/trunk/src/zope/container/tests/test_objectmover.py	2009-01-29 11:47:58 UTC (rev 95416)
+++ zope.container/trunk/src/zope/container/tests/test_objectmover.py	2009-01-29 11:53:38 UTC (rev 95417)
@@ -25,18 +25,23 @@
 from zope.copypastemove.interfaces import IObjectMover
 
 from zope.app.component.testing import PlacefulSetup
-from zope.app.testing import setup
 from zope.app.folder import Folder
+from zope.container import testing
 
 class File(object):
     pass
 
 def test_move_events():
     """
+    We need a root folder::
+
+      >>> from zope.app.folder import rootFolder
+      >>> root = rootFolder()
+      
     Prepare the setup::
 
-      >>> root = setup.placefulSetUp(site=True)
-      >>> zope.component.provideAdapter(ObjectMover, (None,), IObjectMover)
+      >>> from zope import component
+      >>> component.provideAdapter(ObjectMover, (None,), IObjectMover)
 
     Prepare some objects::
 
@@ -85,9 +90,6 @@
       >>> events[2].object is root
       True
 
-    Finally, tear down::
-
-      >>> setup.placefulTearDown()
     """
 
 
@@ -220,7 +222,8 @@
 def test_suite():
     return TestSuite((
         makeSuite(ObjectMoverTest),
-        doctest.DocTestSuite(),
+        doctest.DocTestSuite(setUp=testing.ContainerPlacefulSetup().setUp,
+                             tearDown=testing.ContainerPlacefulSetup().tearDown),
         ))
 
 if __name__=='__main__':

Modified: zope.container/trunk/src/zope/container/tests/test_ordered.py
===================================================================
--- zope.container/trunk/src/zope/container/tests/test_ordered.py	2009-01-29 11:47:58 UTC (rev 95416)
+++ zope.container/trunk/src/zope/container/tests/test_ordered.py	2009-01-29 11:53:38 UTC (rev 95417)
@@ -18,13 +18,14 @@
 import unittest
 from zope.testing.doctestunit import DocTestSuite
 from zope.component.eventtesting import getEvents, clearEvents
-from zope.app.testing import placelesssetup, setup
+from zope.container import testing
 
 def test_order_events():
     """
     Prepare the setup::
 
-        >>> root = setup.placefulSetUp(site=True)
+        >>> from zope.app.folder import rootFolder
+        >>> root = rootFolder()
 
     Prepare some objects::
 
@@ -55,17 +56,15 @@
         >>> IObjectModifiedEvent.providedBy(events[0])
         True
 
-    Finally, tear down::
-
-        >>> setup.placefulTearDown()
     """
 
 def test_all_items_available_at_object_added_event():
     """
     Prepare the setup::
-
-        >>> root = setup.placefulSetUp(site=True)
-
+    
+        >>> from zope.app.folder import rootFolder
+        >>> root = rootFolder()
+        
     Now register an event subscriber to object added events.
 
         >>> import zope.component
@@ -84,16 +83,14 @@
         >>> oc['foo'] = 'FOO'
         ['foo']
 
-    Finally, tear down::
-
-        >>> setup.placefulTearDown()
     """
 
 def test_exception_causes_order_fix():
     """
     Prepare the setup::
 
-        >>> root = setup.placefulSetUp(site=True)
+        >>> from zope.app.folder import rootFolder
+        >>> root = rootFolder()
 
     Now register an event subscriber to object added events that
     throws an error.
@@ -121,17 +118,16 @@
         >>> 'foo' in oc.keys()
         False
 
-    Finally, tear down::
-
-        >>> setup.placefulTearDown()
     """
 
 def test_suite():
     suite = unittest.TestSuite()
     suite.addTest(DocTestSuite("zope.container.ordered",
-                               setUp=placelesssetup.setUp,
-                               tearDown=placelesssetup.tearDown))
-    suite.addTest(DocTestSuite())
+                               setUp=testing.setUp,
+                               tearDown=testing.tearDown))
+    suite.addTest(DocTestSuite(
+            setUp=testing.ContainerPlacefulSetup().setUp,
+            tearDown=testing.ContainerPlacefulSetup().tearDown))
     return suite
 
 if __name__ == '__main__':



More information about the Checkins mailing list