[Checkins] SVN: zope.testing/branches/wosc-doctest-finder/s snapshot that was lying around in my workingcopy for far too long... I'll probably need to start over anyway when I get a Round Tuit(tm).

Wolfgang Schnerring wosc at wosc.de
Wed Sep 22 11:30:39 EDT 2010


Log message for revision 116731:
  snapshot that was lying around in my workingcopy for far too long... I'll probably need to start over anyway when I get a Round Tuit(tm).
  

Changed:
  U   zope.testing/branches/wosc-doctest-finder/setup.py
  U   zope.testing/branches/wosc-doctest-finder/src/zope/testing/testrunner/doctest.py
  U   zope.testing/branches/wosc-doctest-finder/src/zope/testing/testrunner/runner.py
  U   zope.testing/branches/wosc-doctest-finder/src/zope/testing/testrunner/testrunner-doctestfinder.txt
  A   zope.testing/branches/wosc-doctest-finder/src/zope/testing/testrunner/testrunner-ex/doctest.txt

-=-
Modified: zope.testing/branches/wosc-doctest-finder/setup.py
===================================================================
--- zope.testing/branches/wosc-doctest-finder/setup.py	2010-09-22 14:34:36 UTC (rev 116730)
+++ zope.testing/branches/wosc-doctest-finder/setup.py	2010-09-22 15:30:39 UTC (rev 116731)
@@ -28,6 +28,7 @@
     extra = dict(
         namespace_packages=['zope',],
         install_requires = ['setuptools',
+                            'zope.dottedname',
                             'zope.exceptions',
                             'zope.interface'],
         entry_points = {'console_scripts': ['zope-testrunner = zope.testing.testrunner:run',]},

Modified: zope.testing/branches/wosc-doctest-finder/src/zope/testing/testrunner/doctest.py
===================================================================
--- zope.testing/branches/wosc-doctest-finder/src/zope/testing/testrunner/doctest.py	2010-09-22 14:34:36 UTC (rev 116730)
+++ zope.testing/branches/wosc-doctest-finder/src/zope/testing/testrunner/doctest.py	2010-09-22 15:30:39 UTC (rev 116731)
@@ -17,8 +17,13 @@
 """
 
 from zope.testing import doctest
+from zope.testing.testrunner.find import (
+    name_from_layer, test_dirs, walk_with_symlinks)
+import os.path
 import re
+import zope.dottedname.resolve
 import zope.testing.testrunner.feature
+import zope.testing.testrunner.layer
 
 
 class DocTest(zope.testing.testrunner.feature.Feature):
@@ -59,13 +64,36 @@
     active = True
 
     def global_setup(self):
-        tests = self._find_doctest_files()
-        #self.runner.register_tests(tests)
+        unittest_layer = name_from_layer(
+            zope.testing.testrunner.layer.UnitTests)
+        tests = {}
+        for (package, testfile, factory) in self._find_doctest_files():
+            test = factory(testfile, package=package)
+            layer = getattr(test, 'layer', unittest_layer)
+            tests[layer] = test
+        self.runner.register_tests(tests)
 
     def _find_doctest_files(self):
-        pass
+        options = self.runner.options
 
+        for (path, given_package) in test_dirs(options, {}):
+            for dirname, dirs, files in walk_with_symlinks(options, path):
+                if given_package:
+                    package = given_package
+                else:
+                    package = dirname.replace(path + os.path.sep, '')
+                    package = package.replace(os.path.sep, '.')
 
+                for f in files:
+                    if options.doctests_pattern(f):
+                        f = os.path.join(dirname, f)
+                        factory = parse_directive_from_file('testcase', f)
+                        if not factory:
+                            continue
+                        factory = zope.dottedname.resolve.resolve(factory)
+                        yield (package, f, factory)
+
+
 def parse_directive_from_string(directive, text):
     """Looks for a reST directive in a string.
 

Modified: zope.testing/branches/wosc-doctest-finder/src/zope/testing/testrunner/runner.py
===================================================================
--- zope.testing/branches/wosc-doctest-finder/src/zope/testing/testrunner/runner.py	2010-09-22 14:34:36 UTC (rev 116730)
+++ zope.testing/branches/wosc-doctest-finder/src/zope/testing/testrunner/runner.py	2010-09-22 15:30:39 UTC (rev 116731)
@@ -189,6 +189,7 @@
                 zope.testing.testrunner.garbagecollection.Debug(self))
 
         self.features.append(zope.testing.testrunner.find.Find(self))
+        self.features.append(zope.testing.testrunner.doctest.DocFileFind(self))
         self.features.append(zope.testing.testrunner.process.SubProcess(self))
         self.features.append(zope.testing.testrunner.filter.Filter(self))
         self.features.append(zope.testing.testrunner.listing.Listing(self))

Modified: zope.testing/branches/wosc-doctest-finder/src/zope/testing/testrunner/testrunner-doctestfinder.txt
===================================================================
--- zope.testing/branches/wosc-doctest-finder/src/zope/testing/testrunner/testrunner-doctestfinder.txt	2010-09-22 14:34:36 UTC (rev 116730)
+++ zope.testing/branches/wosc-doctest-finder/src/zope/testing/testrunner/testrunner-doctestfinder.txt	2010-09-22 15:30:39 UTC (rev 116731)
@@ -69,10 +69,14 @@
     >>> directory_with_tests = os.path.join(this_directory, 'testrunner-ex')
     >>> defaults = [
     ...     '--path', directory_with_tests,
-    ...     '--tests-pattern', '^sampletestsf?$',
+    ...     '--tests-pattern', '^nothing$',
     ...     '--doctests-pattern', '\.txt$',
+    ...     '--list-tests'
     ...     ]
 
     >>> sys.argv = 'test -u'.split()
     >>> from zope.testing import testrunner
     >>> testrunner.run_internal(defaults)
+    Listing zope.testing.testrunner.layer.UnitTests tests:
+      /home/wosc/gocept/zope/zope.testing/src/zope/testing/doctest.txt
+    False

Added: zope.testing/branches/wosc-doctest-finder/src/zope/testing/testrunner/testrunner-ex/doctest.txt
===================================================================
--- zope.testing/branches/wosc-doctest-finder/src/zope/testing/testrunner/testrunner-ex/doctest.txt	                        (rev 0)
+++ zope.testing/branches/wosc-doctest-finder/src/zope/testing/testrunner/testrunner-ex/doctest.txt	2010-09-22 15:30:39 UTC (rev 116731)
@@ -0,0 +1,10 @@
+.. testcase:: zope.testing.doctest.DocFileSuite
+
+=================
+ Doctest example
+=================
+
+This file should be picked up automatically by the DocFileFind feature.
+
+>>> 1 + 1
+2



More information about the checkins mailing list