[Checkins] SVN: grok/trunk/src/grok/ added functional testing infrastructure

Wolfgang Schnerring wosc at wosc.de
Mon Oct 16 11:43:18 EDT 2006


Log message for revision 70700:
  added functional testing infrastructure

Changed:
  A   grok/trunk/src/grok/ftests/
  A   grok/trunk/src/grok/ftests/__init__.py
  A   grok/trunk/src/grok/ftests/test_grok_functional.py
  A   grok/trunk/src/grok/ftests/view/
  A   grok/trunk/src/grok/ftests/view/__init__.py
  U   grok/trunk/src/grok/tests/test_grok.py

-=-
Added: grok/trunk/src/grok/ftests/__init__.py
===================================================================
--- grok/trunk/src/grok/ftests/__init__.py	2006-10-16 15:34:09 UTC (rev 70699)
+++ grok/trunk/src/grok/ftests/__init__.py	2006-10-16 15:43:17 UTC (rev 70700)
@@ -0,0 +1 @@
+# this is a package

Added: grok/trunk/src/grok/ftests/test_grok_functional.py
===================================================================
--- grok/trunk/src/grok/ftests/test_grok_functional.py	2006-10-16 15:34:09 UTC (rev 70699)
+++ grok/trunk/src/grok/ftests/test_grok_functional.py	2006-10-16 15:43:17 UTC (rev 70700)
@@ -0,0 +1,64 @@
+import unittest
+from pkg_resources import resource_listdir
+from zope.testing import doctest, cleanup
+from zope.app.testing.functional import HTTPCaller, getRootFolder, FunctionalTestSetup, sync, Functional
+
+# XXX bastardized from zope.app.testing.functional.FunctionalDocFileSuite :-(
+def FunctionalDocTestSuite(*paths, **kw):
+    globs = kw.setdefault('globs', {})
+    globs['http'] = HTTPCaller()
+    globs['getRootFolder'] = getRootFolder
+    globs['sync'] = sync
+
+    #kw['package'] = doctest._normalize_module(kw.get('package'))
+
+    kwsetUp = kw.get('setUp')
+    def setUp(test):
+        FunctionalTestSetup().setUp()
+
+        if kwsetUp is not None:
+            kwsetUp(test)
+    kw['setUp'] = setUp
+
+    kwtearDown = kw.get('tearDown')
+    def tearDown(test):
+        if kwtearDown is not None:
+            kwtearDown(test)
+        FunctionalTestSetup().tearDown()
+    kw['tearDown'] = tearDown
+
+    if 'optionflags' not in kw:
+        old = doctest.set_unittest_reportflags(0)
+        doctest.set_unittest_reportflags(old)
+        kw['optionflags'] = (old
+                             | doctest.ELLIPSIS
+                             | doctest.REPORT_NDIFF
+                             | doctest.NORMALIZE_WHITESPACE)
+
+    suite = doctest.DocTestSuite(*paths, **kw)
+    suite.layer = Functional
+    return suite
+
+def suiteFromPackage(name):
+    files = resource_listdir(__name__, name)
+    suite = unittest.TestSuite()
+    for filename in files:
+        if not filename.endswith('.py'):
+            continue
+        if filename == '__init__.py':
+            continue
+
+        dottedname = 'grok.ftests.%s.%s' % (name, filename[:-3])
+        test = FunctionalDocTestSuite(dottedname)
+
+        suite.addTest(test)
+    return suite
+
+def test_suite():
+    suite = unittest.TestSuite()
+    for name in ['view']:
+        suite.addTest(suiteFromPackage(name))
+    return suite
+
+if __name__ == '__main__':
+    unittest.main(defaultTest='test_suite')

Added: grok/trunk/src/grok/ftests/view/__init__.py
===================================================================
--- grok/trunk/src/grok/ftests/view/__init__.py	2006-10-16 15:34:09 UTC (rev 70699)
+++ grok/trunk/src/grok/ftests/view/__init__.py	2006-10-16 15:43:17 UTC (rev 70700)
@@ -0,0 +1 @@
+# this is a package

Modified: grok/trunk/src/grok/tests/test_grok.py
===================================================================
--- grok/trunk/src/grok/tests/test_grok.py	2006-10-16 15:34:09 UTC (rev 70699)
+++ grok/trunk/src/grok/tests/test_grok.py	2006-10-16 15:43:17 UTC (rev 70700)
@@ -1,44 +1,7 @@
 import unittest
 from pkg_resources import resource_listdir
 from zope.testing import doctest, cleanup
-from zope.app.testing.functional import HTTPCaller, getRootFolder, FunctionalTestSetup, sync, Functional
 
-
-def FunctionalDocTestSuite(*paths, **kw):
-    globs = kw.setdefault('globs', {})
-    globs['http'] = HTTPCaller()
-    globs['getRootFolder'] = getRootFolder
-    globs['sync'] = sync
-
-    #kw['package'] = doctest._normalize_module(kw.get('package'))
-
-    kwsetUp = kw.get('setUp')
-    def setUp(test):
-        FunctionalTestSetup().setUp()
-
-        if kwsetUp is not None:
-            kwsetUp(test)
-    kw['setUp'] = setUp
-
-    kwtearDown = kw.get('tearDown')
-    def tearDown(test):
-        if kwtearDown is not None:
-            kwtearDown(test)
-        FunctionalTestSetup().tearDown()
-    kw['tearDown'] = tearDown
-
-    if 'optionflags' not in kw:
-        old = doctest.set_unittest_reportflags(0)
-        doctest.set_unittest_reportflags(old)
-        kw['optionflags'] = (old
-                             | doctest.ELLIPSIS
-                             | doctest.REPORT_NDIFF
-                             | doctest.NORMALIZE_WHITESPACE)
-
-    suite = doctest.DocTestSuite(*paths, **kw)
-    suite.layer = Functional
-    return suite
-
 def cleanUpZope(test):
     cleanup.cleanUp()
 
@@ -54,12 +17,9 @@
             continue
 
         dottedname = 'grok.tests.%s.%s' % (name, filename[:-3])
-        if filename.startswith("functional_"):
-            test = FunctionalDocTestSuite(dottedname)
-        else:
-            test = doctest.DocTestSuite(dottedname, tearDown=cleanUpZope,
-                                        optionflags=doctest.ELLIPSIS+
-                                        doctest.NORMALIZE_WHITESPACE)
+        test = doctest.DocTestSuite(dottedname, tearDown=cleanUpZope,
+                                    optionflags=doctest.ELLIPSIS+
+                                    doctest.NORMALIZE_WHITESPACE)
 
         suite.addTest(test)
     return suite



More information about the Checkins mailing list