[Checkins] SVN: Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/ Add complete testrunner tests.

Uli Fouquet uli at gnufix.de
Sat Feb 2 04:18:33 EST 2008


Log message for revision 83400:
  Add complete testrunner tests.

Changed:
  A   Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/cave/samplesetup1.py
  U   Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/test_testsetup.py
  A   Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/testrunner.txt

-=-
Added: Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/cave/samplesetup1.py
===================================================================
--- Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/cave/samplesetup1.py	                        (rev 0)
+++ Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/cave/samplesetup1.py	2008-02-02 09:18:33 UTC (rev 83400)
@@ -0,0 +1,14 @@
+import unittest
+import z3c.testsetup
+from z3c.testsetup.tests import cave # The package that contains
+                                     # the doctest files
+def test_suite():
+    suite = unittest.TestSuite()
+    suite.addTest( # Add all unittests from `cave`
+        z3c.testsetup.UnitTestSetup(cave).getTestSuite())
+    suite.addTest( # Add all functional tests from `cave`
+        z3c.testsetup.FunctionalTestSetup(cave).getTestSuite())
+    return suite
+
+if __name__ == '__main__':
+    unittest.main(default='test_suite')

Modified: Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/test_testsetup.py
===================================================================
--- Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/test_testsetup.py	2008-02-02 09:11:51 UTC (rev 83399)
+++ Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/test_testsetup.py	2008-02-02 09:18:33 UTC (rev 83400)
@@ -1,3 +1,6 @@
+import os
+import sys
+import gc
 import re
 import unittest
 from zope.testing import doctest, cleanup, renormalizing
@@ -19,6 +22,34 @@
                 r'ConfigurationExecutionError: \1:'),
     ])
 
+def testrunner_suite():
+    def setUp(test):
+        test.globs['saved-sys-info'] = (
+            sys.path[:],
+            sys.argv[:],
+            sys.modules.copy(),
+            gc.get_threshold(),
+            )
+        test.globs['this_directory'] = os.path.split(__file__)[0]
+        test.globs['testrunner_script'] = __file__
+
+    def tearDown(test):
+        sys.path[:], sys.argv[:] = test.globs['saved-sys-info'][:2]
+        gc.set_threshold(*test.globs['saved-sys-info'][3])
+        sys.modules.clear()
+        sys.modules.update(test.globs['saved-sys-info'][2])
+    suites = [
+        doctest.DocFileSuite(
+        'testrunner.txt',
+        setUp=setUp, tearDown=tearDown,
+        optionflags=doctest.ELLIPSIS+doctest.NORMALIZE_WHITESPACE,
+        checker=checker),
+        ]
+
+    suite = unittest.TestSuite(suites)
+    return suite
+
+
 def suiteFromFile(filename):
     suite = unittest.TestSuite()
     dottedname = 'z3c.testsetup.tests.%s' % (filename[:-3],)
@@ -36,6 +67,7 @@
     suite = unittest.TestSuite()
     for name in TESTFILES:
         suite.addTest(suiteFromFile(name))
+    suite.addTest(testrunner_suite())
     return suite
 
 if __name__ == '__main__':

Added: Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/testrunner.txt
===================================================================
--- Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/testrunner.txt	                        (rev 0)
+++ Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/testrunner.txt	2008-02-02 09:18:33 UTC (rev 83400)
@@ -0,0 +1,60 @@
+=============================
+z3c.testsetup and testrunners
+=============================
+
+Here we discuss complete test setups for the `cave` package contained
+in this directory. We will run the `zope.testing.testrunner` and
+examine their output.
+
+Let's have a look at the test setup module `samplesetup1` in the
+`cave` package::
+
+    >>> import os
+    >>> cavepath = os.path.join(os.path.dirname(__file__), 'cave')
+    >>> setupfile = os.path.join(cavepath, 'samplesetup1.py')
+    >>> print open(setupfile).read()
+    import unittest
+    import z3c.testsetup
+    from z3c.testsetup.tests import cave # The package that contains
+                                         # the doctest files
+    def test_suite():
+        suite = unittest.TestSuite()
+        suite.addTest( # Add all unittests from `cave`
+            z3c.testsetup.UnitTestSetup(cave).getTestSuite())
+        suite.addTest( # Add all functional tests from `cave`
+            z3c.testsetup.FunctionalTestSetup(cave).getTestSuite())
+        return suite
+    <BLANKLINE>
+    if __name__ == '__main__':
+        unittest.main(default='test_suite')
+    <BLANKLINE>
+
+As we see, there is a unittest setup and a functional test setup
+initialized. Both collect one kind of tests and feed their collection
+in the same testsuite (where each kind of tests is setup differently,
+of course). 
+
+Now let's run a testrunner and see the result. The testrunner will be
+configured such, that all files named 'samplesetup1.py' will be asked
+to return a testsuite::
+
+    >>> import os.path, sys
+    >>> directory_with_tests = os.path.join(this_directory, 'cave')
+    >>> defaults = [
+    ...     '--path', directory_with_tests,
+    ...     '--tests-pattern', '^samplesetup1$',
+    ...     ]
+    >>> sys.argv = 'test '.split()
+    >>> from zope.testing import testrunner
+    >>> testrunner.run(defaults)
+    Running unit tests:
+      Ran 1 tests with 0 failures and 0 errors in ... seconds.
+    Running z3c.testsetup.testing.FunctionalLayer tests:
+      Set up z3c.testsetup.testing.FunctionalLayer in ... seconds.
+      Ran 2 tests with 0 failures and 0 errors in ... seconds.
+    Tearing down left over layers:
+      Tear down z3c.testsetup.testing.FunctionalLayer ... not supported
+    Total: 3 tests, 0 failures, 0 errors in ... seconds.
+    False
+
+We ran one unittest and two functional tests.



More information about the Checkins mailing list