[Checkins] SVN: zope.catalog/trunk/ Removed zope.app.testing dependency
Nikolay Kim
fafhrd91 at gmail.com
Sun Dec 27 01:48:18 EST 2009
Log message for revision 107142:
Removed zope.app.testing dependency
Changed:
U zope.catalog/trunk/CHANGES.txt
U zope.catalog/trunk/setup.py
U zope.catalog/trunk/src/zope/catalog/interfaces.py
U zope.catalog/trunk/src/zope/catalog/tests.py
-=-
Modified: zope.catalog/trunk/CHANGES.txt
===================================================================
--- zope.catalog/trunk/CHANGES.txt 2009-12-27 06:09:31 UTC (rev 107141)
+++ zope.catalog/trunk/CHANGES.txt 2009-12-27 06:48:17 UTC (rev 107142)
@@ -2,11 +2,12 @@
CHANGES
=======
-3.8.1 (unreleased)
+3.8.1 (2009-12-27)
------------------
-- ...
+- Removed ``zope.app.testing`` dependency
+
3.8.0 (2009-02-01)
------------------
Modified: zope.catalog/trunk/setup.py
===================================================================
--- zope.catalog/trunk/setup.py 2009-12-27 06:09:31 UTC (rev 107141)
+++ zope.catalog/trunk/setup.py 2009-12-27 06:48:17 UTC (rev 107142)
@@ -61,7 +61,7 @@
namespace_packages=['zope'],
extras_require = dict(
test=['zope.testing',
- 'zope.app.testing',
+ 'zope.site',
]),
install_requires = [
'setuptools',
Modified: zope.catalog/trunk/src/zope/catalog/interfaces.py
===================================================================
--- zope.catalog/trunk/src/zope/catalog/interfaces.py 2009-12-27 06:09:31 UTC (rev 107141)
+++ zope.catalog/trunk/src/zope/catalog/interfaces.py 2009-12-27 06:48:17 UTC (rev 107142)
@@ -29,14 +29,14 @@
def searchResults(**kw):
"""Search on the given indexes.
-
+
Keyword arguments dictionary keys
are index names and values are queries
for these indexes.
-
+
Keyword arguments has some special names,
used by the catalog itself:
-
+
* _sort_index - The name of index to sort
results with. This index must implement
zope.index.interfaces.IIndexSort.
@@ -64,10 +64,10 @@
__parent__ = zope.schema.Field()
zope.container.constraints.containers('.ICatalog')
-
+
class ICatalog(ICatalogQuery, ICatalogEdit,
- zope.container.interfaces.IContainer):
+ zope.container.interfaces.IContainer):
"""Marker to describe a catalog in content space."""
zope.container.constraints.contains(ICatalogIndex)
Modified: zope.catalog/trunk/src/zope/catalog/tests.py
===================================================================
--- zope.catalog/trunk/src/zope/catalog/tests.py 2009-12-27 06:09:31 UTC (rev 107141)
+++ zope.catalog/trunk/src/zope/catalog/tests.py 2009-12-27 06:48:17 UTC (rev 107142)
@@ -20,20 +20,31 @@
"""
import unittest
from zope.testing import doctest
-from zope.interface import implements
+from zope.interface import implements, Interface
from zope.interface.verify import verifyObject
-from zope.app.testing import setup, placelesssetup
from BTrees.IFBTree import IFSet
from zope.intid.interfaces import IIntIds
-from zope.site.hooks import setSite
from zope.location.location import Location
from zope.component import provideUtility
+from zope.component import provideAdapter
+from zope.component import provideHandler
+from zope.component import testing, eventtesting
+from zope.component.interfaces import ISite, IComponentLookup
+from zope.site.hooks import setSite, setHooks, resetHooks
+from zope.site.folder import Folder, rootFolder
+from zope.site.site import SiteManagerAdapter, LocalSiteManager
+from zope.traversing import api
+from zope.traversing.testing import setUp as traversingSetUp
+from zope.traversing.interfaces import ITraversable
+from zope.container.traversal import ContainerTraversable
+from zope.container.interfaces import ISimpleReadContainer
from zope.index.interfaces import IInjection, IIndexSearch
from zope.catalog.interfaces import ICatalog
from zope.catalog.catalog import Catalog
from zope.catalog.field import FieldIndex
+
class ReferenceStub:
def __init__(self, obj):
self.obj = obj
@@ -113,8 +124,16 @@
self.__dict__ = kw
-class Test(placelesssetup.PlacelessSetup, unittest.TestCase):
+class PlacelessSetup(testing.PlacelessSetup,
+ eventtesting.PlacelessSetup):
+ def setUp(self, doctesttest=None):
+ testing.PlacelessSetup.setUp(self)
+ eventtesting.PlacelessSetup.setUp(self)
+
+
+class Test(PlacelessSetup, unittest.TestCase):
+
def test_catalog_add_del_indexes(self):
catalog = Catalog()
verifyObject(ICatalog, catalog)
@@ -222,14 +241,14 @@
class TestEventSubscribers(unittest.TestCase):
def setUp(self):
- self.root = setup.placefulSetUp(True)
+ self.root = placefulSetUp(True)
sm = self.root.getSiteManager()
- self.utility = setup.addUtility(sm, '', IIntIds, IntIdsStub())
- self.cat = setup.addUtility(sm, '', ICatalog, CatalogStub())
+ self.utility = addUtility(sm, '', IIntIds, IntIdsStub())
+ self.cat = addUtility(sm, '', ICatalog, CatalogStub())
setSite(self.root)
def tearDown(self):
- setup.placefulTearDown()
+ placefulTearDown()
def test_indexDocSubscriber(self):
from zope.catalog.catalog import indexDocSubscriber
@@ -305,25 +324,24 @@
"""
def setUp(self):
+ placefulSetUp(True)
- setup.placefulSetUp(True)
-
from zope.catalog.catalog import Catalog
- self.root = setup.buildSampleFolderTree()
+ self.root = buildSampleFolderTree()
subfolder = self.root[u'folder1'][u'folder1_1']
- root_sm = self.root_sm = setup.createSiteManager(self.root)
- local_sm = self.local_sm = setup.createSiteManager(subfolder)
- self.utility = setup.addUtility(root_sm, '', IIntIds, IntIdsStub())
- self.cat = setup.addUtility(local_sm, '', ICatalog, Catalog())
+ root_sm = self.root_sm = createSiteManager(self.root)
+ local_sm = self.local_sm = createSiteManager(subfolder)
+ self.utility = addUtility(root_sm, '', IIntIds, IntIdsStub())
+ self.cat = addUtility(local_sm, '', ICatalog, Catalog())
self.cat['name'] = StubIndex('__name__', None)
for obj in self.iterAll(self.root) :
self.utility.register(obj)
def tearDown(self):
- setup.placefulTearDown()
+ placefulTearDown()
def iterAll(self, container) :
from zope.container.interfaces import IContainer
@@ -357,7 +375,7 @@
because the intid utility can not contain objects outside the site
where it is registered.
"""
- utility = setup.addUtility(self.local_sm, '', IIntIds, IntIdsStub())
+ utility = addUtility(self.local_sm, '', IIntIds, IntIdsStub())
subfolder = self.root[u'folder1'][u'folder1_1']
for obj in self.iterAll(subfolder) :
utility.register(obj)
@@ -375,18 +393,17 @@
"""
def setUp(self):
+ placefulSetUp(True)
- setup.placefulSetUp(True)
-
from zope.catalog.catalog import Catalog
- self.root = setup.buildSampleFolderTree()
+ self.root = buildSampleFolderTree()
self.subfolder = self.root[u'folder1'][u'folder1_1']
- root_sm = self.root_sm = setup.createSiteManager(self.root)
- local_sm = self.local_sm = setup.createSiteManager(self.subfolder)
- self.utility = setup.addUtility(root_sm, '', IIntIds, IntIdsStub())
- self.cat = setup.addUtility(local_sm, '', ICatalog, Catalog())
+ root_sm = self.root_sm = createSiteManager(self.root)
+ local_sm = self.local_sm = createSiteManager(self.subfolder)
+ self.utility = addUtility(root_sm, '', IIntIds, IntIdsStub())
+ self.cat = addUtility(local_sm, '', ICatalog, Catalog())
self.cat['name'] = StubIndex('__name__', None)
for obj in self.iterAll(self.root) :
@@ -394,7 +411,7 @@
def tearDown(self):
- setup.placefulTearDown()
+ placefulTearDown()
def iterAll(self, container) :
from zope.container.interfaces import IContainer
@@ -489,7 +506,7 @@
self.assertEqual(len(res), 0)
-class TestCatalogBugs(placelesssetup.PlacelessSetup, unittest.TestCase):
+class TestCatalogBugs(PlacelessSetup, unittest.TestCase):
"""I found that z.a.catalog, AttributeIndex failed to remove the previous
value/object from the index IF the NEW value is None.
"""
@@ -553,7 +570,7 @@
def getAuthor(self):
return self.author
-class TestIndexRaisingValueGetter(placelesssetup.PlacelessSetup, unittest.TestCase):
+class TestIndexRaisingValueGetter(PlacelessSetup, unittest.TestCase):
""" """
def test_IndexRaisingValueGetter(self):
"""We can have indexes whose values are determined by callable
@@ -587,10 +604,115 @@
pass
+#------------------------------------------------------------------------
+# placeful setUp/tearDown
+def placefulSetUp(site=False):
+ testing.setUp()
+ eventtesting.setUp()
+ traversingSetUp()
+ setHooks()
+ provideAdapter(ContainerTraversable,
+ (ISimpleReadContainer,), ITraversable)
+ provideAdapter(SiteManagerAdapter, (Interface,), IComponentLookup)
+
+ if site:
+ root = rootFolder()
+ createSiteManager(root, setsite=True)
+ return root
+
+def placefulTearDown():
+ resetHooks()
+ setSite()
+ testing.tearDown()
+
+
+#------------------------------------------------------------------------
+# placeless setUp/tearDown
+ps = PlacelessSetup()
+placelessSetUp = ps.setUp
+
+def placelessTearDown():
+ tearDown_ = ps.tearDown
+ def tearDown(doctesttest=None):
+ tearDown_()
+ return tearDown
+
+placelessTearDown = placelessTearDown()
+del ps
+
+
+#------------------------------------------------------------------------
+# setup site manager
+def createSiteManager(folder, setsite=False):
+ if not ISite.providedBy(folder):
+ folder.setSiteManager(LocalSiteManager(folder))
+ if setsite:
+ setSite(folder)
+ return api.traverse(folder, "++etc++site")
+
+
+#------------------------------------------------------------------------
+# Local Utility Addition
+def addUtility(sitemanager, name, iface, utility, suffix=''):
+ """Add a utility to a site manager
+
+ This helper function is useful for tests that need to set up utilities.
+ """
+ folder_name = (name or (iface.__name__ + 'Utility')) + suffix
+ default = sitemanager['default']
+ default[folder_name] = utility
+ utility = default[folder_name]
+ sitemanager.registerUtility(utility, iface, name)
+ return utility
+
+
+#------------------------------------------------------------------------
+# Sample Folder Creation
+def buildSampleFolderTree():
+ # set up a reasonably complex folder structure
+ #
+ # ____________ rootFolder ______________________________
+ # / \ \
+ # folder1 __________________ folder2 folder3
+ # | \ | |
+ # folder1_1 ____ folder1_2 folder2_1 folder3_1
+ # | \ | |
+ # folder1_1_1 folder1_1_2 folder1_2_1 folder2_1_1
+
+ root = rootFolder()
+ root[u'folder1'] = Folder()
+ root[u'folder1'][u'folder1_1'] = Folder()
+ root[u'folder1'][u'folder1_1'][u'folder1_1_1'] = Folder()
+ root[u'folder1'][u'folder1_1'][u'folder1_1_2'] = Folder()
+ root[u'folder1'][u'folder1_2'] = Folder()
+ root[u'folder1'][u'folder1_2'][u'folder1_2_1'] = Folder()
+ root[u'folder2'] = Folder()
+ root[u'folder2'][u'folder2_1'] = Folder()
+ root[u'folder2'][u'folder2_1'][u'folder2_1_1'] = Folder()
+ root[u"\N{CYRILLIC SMALL LETTER PE}"
+ u"\N{CYRILLIC SMALL LETTER A}"
+ u"\N{CYRILLIC SMALL LETTER PE}"
+ u"\N{CYRILLIC SMALL LETTER KA}"
+ u"\N{CYRILLIC SMALL LETTER A}3"] = Folder()
+ root[u"\N{CYRILLIC SMALL LETTER PE}"
+ u"\N{CYRILLIC SMALL LETTER A}"
+ u"\N{CYRILLIC SMALL LETTER PE}"
+ u"\N{CYRILLIC SMALL LETTER KA}"
+ u"\N{CYRILLIC SMALL LETTER A}3"][
+ u"\N{CYRILLIC SMALL LETTER PE}"
+ u"\N{CYRILLIC SMALL LETTER A}"
+ u"\N{CYRILLIC SMALL LETTER PE}"
+ u"\N{CYRILLIC SMALL LETTER KA}"
+ u"\N{CYRILLIC SMALL LETTER A}3_1"] = Folder()
+
+ return root
+
+
def setUp(test):
- root = setup.placefulSetUp(True)
+ root = placefulSetUp(True)
test.globs['root'] = root
+
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(Test))
@@ -602,13 +724,13 @@
suite.addTest(doctest.DocTestSuite('zope.catalog.attribute'))
suite.addTest(doctest.DocFileSuite(
'README.txt',
- setUp=placelesssetup.setUp,
- tearDown=placelesssetup.tearDown,
+ setUp=placelessSetUp,
+ tearDown=placelessTearDown,
))
suite.addTest(doctest.DocFileSuite(
'event.txt',
setUp=setUp,
- tearDown=lambda x: setup.placefulTearDown(),
+ tearDown=lambda x: placefulTearDown(),
optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS,
))
More information about the checkins
mailing list