summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/test/3rdparty/discover-0.4.0/README.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/wiredtiger/test/3rdparty/discover-0.4.0/README.txt')
-rw-r--r--src/third_party/wiredtiger/test/3rdparty/discover-0.4.0/README.txt137
1 files changed, 137 insertions, 0 deletions
diff --git a/src/third_party/wiredtiger/test/3rdparty/discover-0.4.0/README.txt b/src/third_party/wiredtiger/test/3rdparty/discover-0.4.0/README.txt
new file mode 100644
index 00000000000..8e6b4e11803
--- /dev/null
+++ b/src/third_party/wiredtiger/test/3rdparty/discover-0.4.0/README.txt
@@ -0,0 +1,137 @@
+This is the test discovery mechanism and ``load_tests`` protocol for unittest
+backported from Python 2.7 to work with Python 2.4 or more recent (including
+Python 3).
+
+.. note::
+
+ Test discovery is just part of what is new in unittest in Python 2.7. All
+ of the new features have been backported to run on Python 2.4-2.6, including
+ test discovery. This is the
+ `unittest2 package <http://pypi.python.org/pypi/unittest2>`_.
+
+discover can be installed with pip or easy_install. After installing switch the
+current directory to the top level directory of your project and run::
+
+ python -m discover
+ python discover.py
+
+(If you have setuptools or `distribute <http://pypi.python.org/pypi/distribute>`_
+installed you will also have a ``discover`` script available.)
+
+This will discover all tests (with certain restrictions) from the current
+directory. The discover module has several options to control its behavior (full
+usage options are displayed with ``python -m discover -h``)::
+
+ Usage: discover.py [options]
+
+ Options:
+ -v, --verbose Verbose output
+ -s directory Directory to start discovery ('.' default)
+ -p pattern Pattern to match test files ('test*.py' default)
+ -t directory Top level directory of project (default to
+ start directory)
+
+ For test discovery all test modules must be importable from the top
+ level directory of the project.
+
+For example to use a different pattern for matching test modules run::
+
+ python -m discover -p '*test.py'
+
+(For UNIX-like shells like Bash you need to put quotes around the test pattern
+or the shell will attempt to expand the pattern instead of passing it through to
+discover. On Windows you must *not* put quotes around the pattern as the
+Windows shell will pass the quotes to discover as well.)
+
+Test discovery is implemented in ``discover.DiscoveringTestLoader.discover``. As
+well as using discover as a command line script you can import
+``DiscoveringTestLoader``, which is a subclass of ``unittest.TestLoader``, and
+use it in your test framework.
+
+This method finds and returns all test modules from the specified start
+directory, recursing into subdirectories to find them. Only test files that
+match *pattern* will be loaded. (Using shell style pattern matching.)
+
+All test modules must be importable from the top level of the project. If
+the start directory is not the top level directory then the top level
+directory must be specified separately.
+
+The ``load_tests`` protocol allows test modules and packages to customize how
+they are loaded. This is implemented in
+``discover.DiscoveringTestLoader.loadTestsFromModule``. If a test module defines
+a ``load_tests`` function then tests are loaded from the module by calling
+``load_tests`` with three arguments: `loader`, `standard_tests`, `None`.
+
+If a test package name (directory with `__init__.py`) matches the
+pattern then the package will be checked for a ``load_tests``
+function. If this exists then it will be called with *loader*, *tests*,
+*pattern*.
+
+.. note::
+
+ The default pattern for matching tests is ``test*.py``. The '.py' means
+ that it will match test files and *not* match package names. You can
+ change this by changing the pattern using a command line option like
+ ``-p 'test*'``.
+
+If ``load_tests`` exists then discovery does *not* recurse into the package,
+``load_tests`` is responsible for loading all tests in the package.
+
+The pattern is deliberately not stored as a loader attribute so that
+packages can continue discovery themselves. *top_level_dir* is stored so
+``load_tests`` does not need to pass this argument in to
+``loader.discover()``.
+
+discover.py is maintained in a google code project (where bugs and feature
+requests should be posted): http://code.google.com/p/unittest-ext/
+
+The latest development version of discover.py can be found at:
+http://code.google.com/p/unittest-ext/source/browse/trunk/discover.py
+
+
+CHANGELOG
+=========
+
+
+2010/06/11 0.4.0
+----------------
+
+* Addition of a setuptools compatible test collector. Set
+ "test_suite = 'discover.collector'" in setup.py. "setup.py test" will start
+ test discovery with default parameters from the same directory as the setup.py.
+* Allow test discovery using dotted module names instead of a path.
+* Addition of a setuptools compatible entrypoint for the discover script.
+* A faulty load_tests function will not halt test discovery. A failing test
+ is created to report the error.
+* If test discovery imports a module from the wrong location (usually because
+ the module is globally installed and the user is expecting to run tests
+ against a development version in a different location) then discovery halts
+ with an ImportError and the problem is reported.
+* Matching files during test discovery is done in
+ ``DiscoveringTestLoader._match_path``. This method can be overriden in
+ subclasses to, for example, match on the full file path or use regular
+ expressions for matching.
+* Tests for discovery ported from unittest2. (The tests require unittest2 to
+ run.)
+
+Feature parity with the ``TestLoader`` in Python 2.7 RC 1.
+
+
+2010/02/07 0.3.2
+----------------
+
+* If ``load_tests`` exists it is passed the standard tests as a ``TestSuite``
+ rather than a list of tests.
+
+2009/09/13 0.3.1
+----------------
+
+* Fixed a problem when a package directory matches the discovery pattern.
+
+2009/08/20 0.3.0
+----------------
+
+* Failing to import a file (e.g. due to a syntax error) no longer halts
+ discovery but is reported as a failure.
+* Discovery will not attempt to import test files whose names are not valid Python
+ identifiers, even if they match the pattern. \ No newline at end of file