[Checkins] SVN: Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/ Refactor BasicTestSetup. Rename doctest setup classes.

Uli Fouquet uli at gnufix.de
Sat Feb 2 07:07:35 EST 2008


Log message for revision 83417:
  Refactor BasicTestSetup. Rename doctest setup classes.

Changed:
  U   Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/__init__.py
  U   Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/testing.py
  U   Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/basicsetup.py
  U   Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/cave/samplesetup1.py
  U   Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/functionalsetup.py
  U   Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/testrunner.txt
  U   Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/unittestsetup.py

-=-
Modified: Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/__init__.py
===================================================================
--- Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/__init__.py	2008-02-02 11:51:59 UTC (rev 83416)
+++ Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/__init__.py	2008-02-02 12:07:34 UTC (rev 83417)
@@ -1,3 +1,3 @@
-from z3c.testsetup.testing import (BasicTestSetup, UnitTestSetup,
-                                   FunctionalTestSetup, register_doctests)
-
+from z3c.testsetup.testing import (UnitDocTestSetup, FunctionalDocTestSetup,
+                                   register_doctests)
+from z3c.testsetup.base import BasicTestSetup

Modified: Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/testing.py
===================================================================
--- Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/testing.py	2008-02-02 11:51:59 UTC (rev 83416)
+++ Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/testing.py	2008-02-02 12:07:34 UTC (rev 83417)
@@ -11,106 +11,18 @@
 # FOR A PARTICULAR PURPOSE.
 #
 ##############################################################################
-"""Test setup helpers
+"""Test setup helpers for doctests.
 """
 import unittest
-from os import listdir
 import os.path
-import re
 from zope.testing import doctest, cleanup
 from zope.app.testing.functional import (
-    HTTPCaller, getRootFolder, sync, ZCMLLayer, FunctionalDocFileSuite,)
-
-from zope.app.testing.functional import (
-    FunctionalTestSetup as FunctionalTestSetup_)
+    HTTPCaller, getRootFolder, sync, ZCMLLayer, FunctionalDocFileSuite,
+    FunctionalTestSetup)
+from z3c.testsetup.base import BasicTestSetup
 from z3c.testsetup.util import get_package
 
-
-class BasicTestSetup(object):
-    """A basic test setup for a package.
-
-    A basic test setup is a aggregation of methods and attributes to
-    search for appropriate doctest files in a package. Its purpose is
-    to collect all basic functionality, that is needed by derived
-    classes, that do real test registration.
-    """
-
-    extensions = ['.rst', '.txt']
-
-    regexp_list = []
-
-    additional_options = {}
-
-    def __init__(self, package, filter_func=None, extensions=None, **kw):
-        self.package = package
-        self.filter_func = filter_func or self.isTestFile
-        self.extensions = extensions or self.extensions
-        self.additional_options = kw
-        return
-
-    def setUp(self, test):
-        pass
-
-    def tearDown(self, test):
-        pass
-
-    def fileContains(self, filename, regexp_list):
-        """Does a file contain lines matching every of the regular
-        expressions?
-        """
-        found_list = []
-        try:
-            for line in open(filename):
-                for regexp in regexp_list:
-                    if re.compile(regexp).match(line) and (
-                        regexp not in found_list):
-                        found_list.append(regexp)
-                if len(regexp_list) == len(found_list):
-                    break
-        except IOError:
-            # be gentle
-            pass
-        return len(regexp_list) == len(found_list)
-
-    def isTestFile(self, filepath):
-        """Return ``True`` if a file matches our expectations for a
-        doctest file.
-        """
-        if os.path.splitext(filepath)[1].lower() not in self.extensions:
-            return False
-        if not self.fileContains(filepath, self.regexp_list):
-            return False
-        return True
-
-    def isTestDirectory(self, dirpath):
-        """Check whether a given directory should be searched for tests.
-        """
-        if os.path.basename(dirpath).startswith('.'):
-            # We don't search hidden directories like '.svn'
-            return False
-        return True
-
-    def getDocTestFiles(self, dirpath=None, **kw):
-        """Find all doctest files filtered by filter_func.
-        """
-        if dirpath is None:
-            dirpath = os.path.dirname(self.package.__file__)
-        dirlist = []
-        for filename in listdir(dirpath):
-            abs_path = os.path.join(dirpath, filename)
-            if not os.path.isdir(abs_path):
-                if self.filter_func(abs_path):
-                    dirlist.append(abs_path)
-                continue
-            # Search subdirectories...
-            if not self.isTestDirectory(abs_path):
-                continue
-            subdir_files = self.getDocTestFiles(dirpath=abs_path, **kw)
-            dirlist.extend(subdir_files)
-        return dirlist
-
-
-class UnitTestSetup(BasicTestSetup):
+class UnitDocTestSetup(BasicTestSetup):
     """A unit test setup for packages.
 
     A collection of methods to search for appropriate doctest files in
@@ -159,7 +71,7 @@
         return suite
 
 
-class FunctionalTestSetup(BasicTestSetup):
+class FunctionalDocTestSetup(BasicTestSetup):
     """A functional test setup for packages.
 
     A collection of methods to search for appropriate doctest files in
@@ -190,10 +102,10 @@
         ]
 
     def setUp(self, test):
-        FunctionalTestSetup_().setUp()
+        FunctionalTestSetup().setUp()
 
     def tearDown(self, test):
-        FunctionalTestSetup_().tearDown()
+        FunctionalTestSetup().tearDown()
 
     def suiteFromFile(self, name):
         suite = unittest.TestSuite()
@@ -236,9 +148,9 @@
     def tmpfunc():
         suite = unittest.TestSuite()
         suite.addTest(
-            UnitTestSetup(pkg).getTestSuite())
+            UnitDocTestSetup(pkg).getTestSuite())
         suite.addTest(
-            FunctionalTestSetup(pkg).getTestSuite())
+            FunctionalDocTestSetup(pkg).getTestSuite())
         return suite
     return tmpfunc
     

Modified: Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/basicsetup.py
===================================================================
--- Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/basicsetup.py	2008-02-02 11:51:59 UTC (rev 83416)
+++ Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/basicsetup.py	2008-02-02 12:07:34 UTC (rev 83417)
@@ -31,10 +31,10 @@
 All we need to setup a testsuite, is the package to search::
 
    >>> from z3c.testsetup.tests import cave
-   >>> from z3c.testsetup import BasicTestSetup
+   >>> from z3c.testsetup.base import BasicTestSetup
    >>> basic_setup = BasicTestSetup(cave)
    >>> basic_setup
-   <z3c.testsetup.testing.BasicTestSetup object at 0x...>
+   <z3c.testsetup.base.BasicTestSetup object at 0x...>
 
 The package is stored as an instance-attribute::
 

Modified: Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/cave/samplesetup1.py
===================================================================
--- Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/cave/samplesetup1.py	2008-02-02 11:51:59 UTC (rev 83416)
+++ Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/cave/samplesetup1.py	2008-02-02 12:07:34 UTC (rev 83417)
@@ -5,9 +5,9 @@
 def test_suite():
     suite = unittest.TestSuite()
     suite.addTest( # Add all unittests from `cave`
-        z3c.testsetup.UnitTestSetup(cave).getTestSuite())
+        z3c.testsetup.UnitDocTestSetup(cave).getTestSuite())
     suite.addTest( # Add all functional tests from `cave`
-        z3c.testsetup.FunctionalTestSetup(cave).getTestSuite())
+        z3c.testsetup.FunctionalDocTestSetup(cave).getTestSuite())
     return suite
 
 if __name__ == '__main__':

Modified: Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/functionalsetup.py
===================================================================
--- Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/functionalsetup.py	2008-02-02 11:51:59 UTC (rev 83416)
+++ Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/functionalsetup.py	2008-02-02 12:07:34 UTC (rev 83417)
@@ -44,12 +44,12 @@
 
    >>> from z3c.testsetup.tests import cave
 
-Using the ``FunctionalTestSetup`` then is easy::
+Using the ``FunctionalDocTestSetup`` then is easy::
 
-   >>> from z3c.testsetup import FunctionalTestSetup
-   >>> setup = FunctionalTestSetup(cave)
+   >>> from z3c.testsetup import FunctionalDocTestSetup
+   >>> setup = FunctionalDocTestSetup(cave)
    >>> setup
-   <z3c.testsetup.testing.FunctionalTestSetup object at 0x...>   
+   <z3c.testsetup.testing.FunctionalDocTestSetup object at 0x...>   
 
 This setup is ready for use::
 
@@ -64,7 +64,7 @@
    import grok
    import cave
    def test_suite():
-       setup = grok.testing.FunctionalTestSetup(cave)
+       setup = grok.testing.FunctionalDocTestSetup(cave)
        return setup.getTestSuite()
    if __name__ == '__main__':
        unittest.main(default='test_suite')
@@ -123,8 +123,8 @@
   function.
   
      >>> setup.setUp
-     <bound method FunctionalTestSetup.setUp of
-      <z3c.testsetup.testing.FunctionalTestSetup object at 0x...>>
+     <bound method FunctionalDocTestSetup.setUp of
+      <z3c.testsetup.testing.FunctionalDocTestSetup object at 0x...>>
 
 * The setup-instance's `globs` attribute is passed as the `globs`
   parameter. By default `globs` is a dictionary of functions, that
@@ -256,8 +256,8 @@
 do not appear in the attributes, is passing these keywords (and the
 values) to the constructor::
 
-    >>> encoded_setup = FunctionalTestSetup(cave,
-    ...                                     encoding='utf-8')
+    >>> encoded_setup = FunctionalDocTestSetup(cave,
+    ...                                        encoding='utf-8')
 
 This will read all doctests 'utf-8' encoded, which allow umlauts and
 similar chars in tests. Note, however, that you can archieve this very

Modified: Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/testrunner.txt
===================================================================
--- Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/testrunner.txt	2008-02-02 11:51:59 UTC (rev 83416)
+++ Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/testrunner.txt	2008-02-02 12:07:34 UTC (rev 83417)
@@ -56,9 +56,9 @@
     def test_suite():
         suite = unittest.TestSuite()
         suite.addTest( # Add all unittests from `cave`
-            z3c.testsetup.UnitTestSetup(cave).getTestSuite())
+            z3c.testsetup.UnitDocTestSetup(cave).getTestSuite())
         suite.addTest( # Add all functional tests from `cave`
-            z3c.testsetup.FunctionalTestSetup(cave).getTestSuite())
+            z3c.testsetup.FunctionalDocTestSetup(cave).getTestSuite())
         return suite
     <BLANKLINE>
     if __name__ == '__main__':

Modified: Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/unittestsetup.py
===================================================================
--- Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/unittestsetup.py	2008-02-02 11:51:59 UTC (rev 83416)
+++ Sandbox/ulif/z3c-testsetup/trunk/src/z3c/testsetup/tests/unittestsetup.py	2008-02-02 12:07:34 UTC (rev 83417)
@@ -46,10 +46,10 @@
 
 Using the ``UnitTestSetup`` then is easy::
 
-   >>> from z3c.testsetup import UnitTestSetup
-   >>> setup = UnitTestSetup(cave)
+   >>> from z3c.testsetup import UnitDocTestSetup
+   >>> setup = UnitDocTestSetup(cave)
    >>> setup
-   <z3c.testsetup.testing.UnitTestSetup object at 0x...>   
+   <z3c.testsetup.testing.UnitDocTestSetup object at 0x...>   
 
 This setup is ready for use::
 
@@ -123,8 +123,8 @@
   function.
   
      >>> setup.setUp
-     <bound method UnitTestSetup.setUp of
-      <z3c.testsetup.testing.UnitTestSetup object at 0x...>>
+     <bound method UnitDocTestSetup.setUp of
+      <z3c.testsetup.testing.UnitDocTestSetup object at 0x...>>
 
 * The setup-instance's `optionsflags` attribute is passed. It
   includes by default the following doctest constants:
@@ -228,8 +228,8 @@
 do not appear in the attributes, is passing these keywords (and the
 values) to the constructor::
 
-    >>> encoded_setup = UnitTestSetup(cave,
-    ...                               encoding='utf-8')
+    >>> encoded_setup = UnitDocTestSetup(cave,
+    ...                                  encoding='utf-8')
 
 This will read all doctests 'utf-8' encoded, which allow umlauts and
 similar chars in tests. Note, however, that you can archieve this very



More information about the Checkins mailing list