run-tests: initial support for running tests with unittest
The unittest package in Python's standard library provides an almost
universal mechanism for defining and running tests. This patch starts
the process of making run-tests.py talk to it.
The main benefit of speaking unittest is that this will enable
Mercurial's tests to be more easily consumed by other testing tools,
like nose. This is useful for 3rd party extensions having their own
test infrastructure, for example.
Running tests in unittest mode will not result in completely sane
behavior until the unittest mode is made the default execution mode.
Expect things like double printing of output until support stabilizes.
#if test-repo pyflakes
$ cd "`dirname "$TESTDIR"`"
run pyflakes on all tracked files ending in .py or without a file ending
(skipping binary file random-seed)
$ hg locate 'set:**.py or grep("^!#.*python")' 2>/dev/null \
> | xargs pyflakes 2>/dev/null | "$TESTDIR/filterpyflakes.py"
contrib/win32/hgwebdir_wsgi.py:*: 'win32traceutil' imported but unused (glob)
setup.py:*: 'sha' imported but unused (glob)
setup.py:*: 'zlib' imported but unused (glob)
setup.py:*: 'bz2' imported but unused (glob)
setup.py:*: 'py2exe' imported but unused (glob)
tests/hghave.py:*: '_lsprof' imported but unused (glob)
tests/hghave.py:*: 'publish_cmdline' imported but unused (glob)
tests/hghave.py:*: 'pygments' imported but unused (glob)
tests/hghave.py:*: 'ssl' imported but unused (glob)
contrib/win32/hgwebdir_wsgi.py:93: 'from isapi.install import *' used; unable to detect undefined names (glob)
tests/filterpyflakes.py:58: undefined name 'undefinedname'
#endif