[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