[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