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