[Checkins] SVN: z3c.contents/trunk/s Cleanup testing setup

Roger Ineichen roger at projekt01.ch
Sat Apr 12 20:05:15 EDT 2008


Log message for revision 85300:
  Cleanup testing setup
  Move functional tests from ftests.py to tests.py
  Removed the ftests.py because ftests files are not supported anymore
  

Changed:
  U   z3c.contents/trunk/setup.py
  D   z3c.contents/trunk/src/z3c/contents/ftests.py
  U   z3c.contents/trunk/src/z3c/contents/testing.py
  U   z3c.contents/trunk/src/z3c/contents/tests.py
  U   z3c.contents/trunk/src/z3c/contents/value.py

-=-
Modified: z3c.contents/trunk/setup.py
===================================================================
--- z3c.contents/trunk/setup.py	2008-04-12 23:14:02 UTC (rev 85299)
+++ z3c.contents/trunk/setup.py	2008-04-13 00:05:15 UTC (rev 85300)
@@ -59,7 +59,6 @@
             'zope.app.pagetemplate',
             'zope.app.securitypolicy',
             'zope.app.testing',
-            'zope.publisher',
             'zope.testing',
             ],
         ),
@@ -81,7 +80,9 @@
         'zope.i18nmessageid',
         'zope.index',
         'zope.interface',
+        'zope.publisher',
         'zope.schema',
+        'zope.schema',
         'zope.security',
         'zope.traversing',
         ],

Deleted: z3c.contents/trunk/src/z3c/contents/ftests.py
===================================================================
--- z3c.contents/trunk/src/z3c/contents/ftests.py	2008-04-12 23:14:02 UTC (rev 85299)
+++ z3c.contents/trunk/src/z3c/contents/ftests.py	2008-04-13 00:05:15 UTC (rev 85300)
@@ -1,41 +0,0 @@
-import os
-import doctest
-import lxml
-import transaction
-
-from zope.app.testing import functional
-import zope.component
-
-ftesting_zcml = os.path.join(os.path.dirname(__file__), 
-                                           'ftesting.zcml')
-TestLayer = functional.ZCMLLayer(
-                       ftesting_zcml, __name__, 'TestLayer')
-
-def printElement(browser, xpath, multiple=False, serialize=True):
-    """Print method to use with z3c.etestbrowser"""
-    result = [serialize and lxml.etree.tounicode(elem) or elem
-              for elem in browser.etree.xpath(xpath)]
-    if not multiple:
-        print result[0]
-        return
-    for elem in result:
-        print elem
-
-def setUp(test):
-    functional.FunctionalTestSetup().setUp()
-    test.globs['getRootFolder'] = functional.getRootFolder
-    test.globs['printElement'] = printElement
-
-def tearDown(test):
-    functional.FunctionalTestSetup().tearDown()
-
-def test_suite():
-    suite = functional.FunctionalDocFileSuite('BROWSER.txt',
-        setUp=setUp, tearDown=tearDown,
-        optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS,
-        )
-    suite.layer = TestLayer
-    return suite
-
-if __name__ == '__main__':
-    unittest.main(defaultTest='test_suite')

Modified: z3c.contents/trunk/src/z3c/contents/testing.py
===================================================================
--- z3c.contents/trunk/src/z3c/contents/testing.py	2008-04-12 23:14:02 UTC (rev 85299)
+++ z3c.contents/trunk/src/z3c/contents/testing.py	2008-04-13 00:05:15 UTC (rev 85300)
@@ -16,12 +16,37 @@
 """
 __docformat__ = "reStructuredText"
 
+import lxml
+import zope.component
 import zope.interface
-from zope.publisher.interfaces.browser import IBrowserRequest
+from zope.annotation.interfaces import IAnnotations
+from zope.copypastemove import ContainerItemRenamer
+from zope.copypastemove import ObjectMover
+from zope.copypastemove import ObjectCopier
+from zope.copypastemove import PrincipalClipboard
+from zope.copypastemove.interfaces import IContainerItemRenamer
+from zope.copypastemove.interfaces import IObjectMover
+from zope.copypastemove.interfaces import IObjectCopier
+from zope.copypastemove.interfaces import IPrincipalClipboard
 from zope.index.text.interfaces import ISearchableText
 
+from zope.app.container.interfaces import IContainer
+from zope.app.container.interfaces import IContained
+from zope.app.testing import functional
+from zope.app.testing import setup
+
+import z3c.macro.tales
 import z3c.layer.ready2go
+import z3c.table.testing
+import z3c.contents.value
 
+
+###############################################################################
+#
+# test component
+#
+###############################################################################
+
 class IContentsTestBrowserLayer(z3c.layer.ready2go.IReady2GoBrowserLayer):
         """test layer."""
 
@@ -60,3 +85,79 @@
 
     def getSearchableText(self):
         return '%s %d' % (self.content.title, self.content.number)
+
+
+###############################################################################
+#
+# testing helper
+#
+###############################################################################
+
+def printElement(browser, xpath, multiple=False, serialize=True):
+    """Print method to use with z3c.etestbrowser"""
+    result = [serialize and lxml.etree.tounicode(elem) or elem
+              for elem in browser.etree.xpath(xpath)]
+    if not multiple:
+        print result[0]
+        return
+    for elem in result:
+        print elem
+
+
+class PrincipalAnnotations(dict):
+    zope.interface.implements(IAnnotations)
+    data = {}
+    def __new__(class_, context=None):
+        try:
+            annotations = class_.data[str(context)]
+        except KeyError:
+            annotations = dict.__new__(class_)
+            class_.data[str(context)] = annotations
+        return annotations
+    def __init__(self, context):
+        pass
+    def __repr__(self):
+        return "<%s.PrincipalAnnotations object>" % __name__
+
+
+###############################################################################
+#
+# testing setup
+#
+###############################################################################
+
+def setUp(test):
+    test.globs = {'root': setup.placefulSetUp(True)}
+
+    from zope.app.pagetemplate import metaconfigure
+    metaconfigure.registerType('macro', z3c.macro.tales.MacroExpression)
+
+    zope.component.provideAdapter(ObjectCopier, (IContained,), IObjectCopier)
+    zope.component.provideAdapter(ObjectMover, (IContained,), IObjectMover)
+    zope.component.provideAdapter(ContainerItemRenamer, (IContainer,), 
+        IContainerItemRenamer)
+
+    zope.component.provideAdapter(PrincipalClipboard, (IAnnotations,),
+        IPrincipalClipboard)
+    # use None as principal
+    zope.component.provideAdapter(PrincipalAnnotations, (None,),
+        IAnnotations)
+
+    # dublin core stub adapter
+    zope.component.provideAdapter(z3c.table.testing.DublinCoreAdapterStub)
+
+    # value adapter
+    zope.component.provideAdapter(z3c.contents.value.SearchableValues)
+
+
+def tearDown(test):
+    setup.placefulTearDown()
+
+
+def doctestSetUp(test):
+    functional.FunctionalTestSetup().setUp()
+    test.globs['getRootFolder'] = functional.getRootFolder
+    test.globs['printElement'] = printElement
+
+def doctestTearDown(test):
+    functional.FunctionalTestSetup().tearDown()

Modified: z3c.contents/trunk/src/z3c/contents/tests.py
===================================================================
--- z3c.contents/trunk/src/z3c/contents/tests.py	2008-04-12 23:14:02 UTC (rev 85299)
+++ z3c.contents/trunk/src/z3c/contents/tests.py	2008-04-13 00:05:15 UTC (rev 85300)
@@ -17,77 +17,25 @@
 __docformat__ = "reStructuredText"
 
 import unittest
-import zope.component
-import zope.interface
-from zope.annotation.interfaces import IAnnotations
-from zope.copypastemove import ContainerItemRenamer
-from zope.copypastemove import ObjectMover
-from zope.copypastemove import ObjectCopier
-from zope.copypastemove import PrincipalClipboard
-from zope.copypastemove.interfaces import IContainerItemRenamer
-from zope.copypastemove.interfaces import IObjectMover
-from zope.copypastemove.interfaces import IObjectCopier
-from zope.copypastemove.interfaces import IPrincipalClipboard
 from zope.testing import doctest
-from zope.app.container.interfaces import IContainer
-from zope.app.container.interfaces import IContained
-from zope.app.testing import setup
+from zope.app.testing import functional
 
-from z3c.macro import tales
-import z3c.table.testing
-import z3c.contents.value
+from z3c.contents import testing
 
+functional.defineLayer('TestLayer', 'ftesting.zcml')
 
-class PrincipalAnnotations(dict):
-    zope.interface.implements(IAnnotations)
-    data = {}
-    def __new__(class_, context=None):
-        try:
-            annotations = class_.data[str(context)]
-        except KeyError:
-            annotations = dict.__new__(class_)
-            class_.data[str(context)] = annotations
-        return annotations
-    def __init__(self, context):
-        pass
-    def __repr__(self):
-        return "<%s.PrincipalAnnotations object>" % __name__
 
-
-def setUp(test):
-    test.globs = {'root': setup.placefulSetUp(True)}
-
-    from zope.app.pagetemplate import metaconfigure
-    metaconfigure.registerType('macro', tales.MacroExpression)
-
-    zope.component.provideAdapter(ObjectCopier, (IContained,), IObjectCopier)
-    zope.component.provideAdapter(ObjectMover, (IContained,), IObjectMover)
-    zope.component.provideAdapter(ContainerItemRenamer, (IContainer,), 
-        IContainerItemRenamer)
-
-    zope.component.provideAdapter(PrincipalClipboard, (IAnnotations,),
-        IPrincipalClipboard)
-    # use None as principal
-    zope.component.provideAdapter(PrincipalAnnotations, (None,),
-        IAnnotations)
-
-    # dublin core stub adapter
-    zope.component.provideAdapter(z3c.table.testing.DublinCoreAdapterStub)
-
-    # value adapter
-    zope.component.provideAdapter(z3c.contents.value.SearchableValues)
-
-
-def tearDown(test):
-    setup.placefulTearDown()
-
-
 def test_suite():
+    docTest = functional.FunctionalDocFileSuite('BROWSER.txt',
+        setUp=testing.doctestSetUp, tearDown=testing.doctestTearDown,
+        optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS)
+    docTest.layer = TestLayer
     return unittest.TestSuite((
         doctest.DocFileSuite('README.txt',
-            setUp=setUp, tearDown=tearDown,
+            setUp=testing.setUp, tearDown=testing.tearDown,
             optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS,
             ),
+        docTest,
         ))
 
 

Modified: z3c.contents/trunk/src/z3c/contents/value.py
===================================================================
--- z3c.contents/trunk/src/z3c/contents/value.py	2008-04-12 23:14:02 UTC (rev 85299)
+++ z3c.contents/trunk/src/z3c/contents/value.py	2008-04-13 00:05:15 UTC (rev 85300)
@@ -29,26 +29,25 @@
 from z3c.contents import browser
 
 
-def _search_helper(id, object, container, id_filters, object_filters, result):
+def _search_helper(id, obj, container, id_filters, object_filters, result):
     # check id filters if we get a match then return immediately
     for id_filter in id_filters:
         if id_filter.matches(id):
-            result.append(object)
+            result.append(obj)
             return
 
     # now check all object filters
     for object_filter in object_filters:
-        if object_filter.matches(object):
-            result.append(object)
+        if object_filter.matches(obj):
+            result.append(obj)
             return
 
     # do we need to check sub containers?
-    if not IReadContainer.providedBy(object):
+    if not IReadContainer.providedBy(obj):
         return
 
-    container = object
-    for id, object in container.items():
-        _search_helper(id, object, container, id_filters, object_filters, result)
+    for key, value in obj.items():
+        _search_helper(key, value, obj, id_filters, object_filters, result)
 
 
 class SearchableTextFindFilter(object):



More information about the Checkins mailing list