Rev 4001: Add library level support for different test runners to bzrlib. in http://people.ubuntu.com/~robertc/baz2.0/test-result-registry
Robert Collins
robertc at robertcollins.net
Wed Feb 11 21:48:05 GMT 2009
At http://people.ubuntu.com/~robertc/baz2.0/test-result-registry
------------------------------------------------------------
revno: 4001
revision-id: robertc at robertcollins.net-20090211214755-pltzfmev8komxryt
parent: pqm at pqm.ubuntu.com-20090211011240-gv0zdxmwomt3ndtn
committer: Robert Collins <robertc at robertcollins.net>
branch nick: test-result-registry
timestamp: Thu 2009-02-12 08:47:55 +1100
message:
Add library level support for different test runners to bzrlib.
=== modified file 'NEWS'
--- a/NEWS 2009-02-11 00:29:57 +0000
+++ b/NEWS 2009-02-11 21:47:55 +0000
@@ -37,6 +37,9 @@
INTERNALS:
+ * ``bzrlib.tests.run_suite`` accepts a runner_class parameter
+ supporting the use of different runners. (Robert Collins)
+
bzr 1.12rc1 "1234567890" 2009-02-10
-----------------------------------
=== modified file 'bzrlib/tests/__init__.py'
--- a/bzrlib/tests/__init__.py 2009-01-15 09:01:42 +0000
+++ b/bzrlib/tests/__init__.py 2009-02-11 21:47:55 +0000
@@ -2485,13 +2485,23 @@
list_only=False,
random_seed=None,
exclude_pattern=None,
- strict=False):
+ strict=False,
+ runner_class=None):
+ """Run a test suite for bzr selftest.
+
+ :param runner_class: The class of runner to use. Must support the
+ constructor arguments passed by run_suite which are more than standard
+ python uses.
+ :return: A boolean indicating success.
+ """
TestCase._gather_lsprof_in_benchmarks = lsprof_timed
if verbose:
verbosity = 2
else:
verbosity = 1
- runner = TextTestRunner(stream=sys.stdout,
+ if runner_class is None:
+ runner_class = TextTestRunner
+ runner = runner_class(stream=sys.stdout,
descriptions=0,
verbosity=verbosity,
bench_history=bench_history,
=== modified file 'bzrlib/tests/test_selftest.py'
--- a/bzrlib/tests/test_selftest.py 2009-01-08 16:57:10 +0000
+++ b/bzrlib/tests/test_selftest.py 2009-02-11 21:47:55 +0000
@@ -71,6 +71,7 @@
iter_suite_tests,
preserve_input,
randomize_suite,
+ run_suite,
split_suite_by_condition,
split_suite_by_re,
test_lsprof,
@@ -2268,3 +2269,21 @@
self.assertEquals('bzrlib.tests', tpr.resolve_alias('bt'))
self.assertEquals('bzrlib.tests.blackbox', tpr.resolve_alias('bb'))
self.assertEquals('bzrlib.plugins', tpr.resolve_alias('bp'))
+
+
+class TestRunSuite(TestCase):
+
+ def test_runner_class(self):
+ """run_suite accepts and uses a runner_class keyword argument."""
+ class Stub(TestCase):
+ def test_foo(self):
+ pass
+ suite = Stub("test_foo")
+ calls = []
+ class MyRunner(TextTestRunner):
+ def run(self, test):
+ calls.append(test)
+ return ExtendedTestResult(self.stream, self.descriptions,
+ self.verbosity)
+ run_suite(suite, runner_class=MyRunner)
+ self.assertEqual(calls, [suite])
More information about the bazaar-commits
mailing list