Rev 5555: Work in progress to show mgz. in file:///home/vila/src/bzr/bugs/683505-test-no-log/

Vincent Ladeuil v.ladeuil+lp at free.fr
Wed Dec 1 14:17:31 GMT 2010


At file:///home/vila/src/bzr/bugs/683505-test-no-log/

------------------------------------------------------------
revno: 5555
revision-id: v.ladeuil+lp at free.fr-20101201141731-dd84hq8l0x5zf1ok
parent: pqm at pqm.ubuntu.com-20101130054940-74uuru7wuvgla2oz
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: 683505-test-no-log
timestamp: Wed 2010-12-01 15:17:31 +0100
message:
  Work in progress to show mgz.
-------------- next part --------------
=== modified file 'bzrlib/tests/__init__.py'
--- a/bzrlib/tests/__init__.py	2010-11-19 23:03:19 +0000
+++ b/bzrlib/tests/__init__.py	2010-12-01 14:17:31 +0000
@@ -2984,7 +2984,7 @@
                             strict=strict,
                             result_decorators=result_decorators,
                             )
-    runner.stop_on_failure=stop_on_failure
+    runner.stop_on_failure = stop_on_failure
     # built in decorator factories:
     decorators = [
         random_order(random_seed, runner),

=== modified file 'bzrlib/tests/test_selftest.py'
--- a/bzrlib/tests/test_selftest.py	2010-11-19 23:03:19 +0000
+++ b/bzrlib/tests/test_selftest.py	2010-12-01 14:17:31 +0000
@@ -26,6 +26,7 @@
 import unittest
 import warnings
 
+import testtools
 from testtools import (
     ExtendedToOriginalDecorator,
     MultiTestResult,
@@ -2010,14 +2011,15 @@
 
 class SelfTestHelper(object):
 
-    def run_selftest(self, **kwargs):
+    def run_selftest(self, expected_retcode=True, **kwargs):
         """Run selftest returning its output."""
         output = StringIO()
         old_transport = bzrlib.tests.default_transport
         old_root = tests.TestCaseWithMemoryTransport.TEST_ROOT
         tests.TestCaseWithMemoryTransport.TEST_ROOT = None
         try:
-            self.assertEqual(True, tests.selftest(stream=output, **kwargs))
+            retcode = tests.selftest(stream=output, **kwargs)
+            self.assertEqual(expected_retcode, retcode)
         finally:
             bzrlib.tests.default_transport = old_transport
             tests.TestCaseWithMemoryTransport.TEST_ROOT = old_root
@@ -2169,12 +2171,13 @@
 
     _test_needs_features = [features.subunit]
 
-    def run_subunit_stream(self, test_name):
+    def run_subunit_stream(self, test_name, expected_retcode):
         from subunit import ProtocolTestCase
         def factory():
             return TestUtil.TestSuite([_get_test(test_name)])
-        stream = self.run_selftest(runner_class=tests.SubUnitBzrRunner,
-            test_suite_factory=factory)
+        stream = self.run_selftest(expected_retcode=expected_retcode,
+                                   runner_class=tests.SubUnitBzrRunner,
+                                   test_suite_factory=factory)
         test = ProtocolTestCase(stream)
         result = testtools.TestResult()
         test.run(result)
@@ -2182,18 +2185,25 @@
         return content, result
 
     def test_fail_has_log(self):
-        content, result = self.run_subunit_stream('test_fail')
+        content, result = self.run_subunit_stream('test_fail', False)
         self.assertEqual(1, len(result.failures))
         self.assertContainsRe(content, '(?m)^log$')
         self.assertContainsRe(content, 'this test will fail')
 
     def test_error_has_log(self):
-        content, result = self.run_subunit_stream('test_error')
+        import pdb; pdb.set_trace()
+        if testtools.__version__ >= (0, 9, 8):
+            # Starting with version 0.9.8, an error makes the overall run fails
+            expected_retcode = True
+        else:
+            expected_retcode = False
+        content, result = self.run_subunit_stream('test_error',
+                                                  expected_retcode)
         self.assertContainsRe(content, '(?m)^log$')
         self.assertContainsRe(content, 'this test errored')
 
     def test_skip_has_no_log(self):
-        content, result = self.run_subunit_stream('test_skip')
+        content, result = self.run_subunit_stream('test_skip', True)
         self.assertNotContainsRe(content, '(?m)^log$')
         self.assertNotContainsRe(content, 'this test will be skipped')
         self.assertEqual(['reason'], result.skip_reasons.keys())
@@ -2204,7 +2214,7 @@
         ## self.assertFalse('log' in test.getDetails())
 
     def test_missing_feature_has_no_log(self):
-        content, result = self.run_subunit_stream('test_missing_feature')
+        content, result = self.run_subunit_stream('test_missing_feature', True)
         self.assertNotContainsRe(content, '(?m)^log$')
         self.assertNotContainsRe(content, 'missing the feature')
         self.assertEqual(['_MissingFeature\n'], result.skip_reasons.keys())
@@ -2215,7 +2225,7 @@
         ## self.assertFalse('log' in test.getDetails())
 
     def test_xfail_has_no_log(self):
-        content, result = self.run_subunit_stream('test_xfail')
+        content, result = self.run_subunit_stream('test_xfail', True)
         self.assertNotContainsRe(content, '(?m)^log$')
         self.assertNotContainsRe(content, 'test with expected failure')
         self.assertEqual(1, len(result.expectedFailures))
@@ -2224,7 +2234,7 @@
         self.assertNotContainsRe(result_content, 'test with expected failure')
 
     def test_unexpected_success_has_log(self):
-        content, result = self.run_subunit_stream('test_unexpected_success')
+        content, result = self.run_subunit_stream('test_unexpected_success', False)
         self.assertContainsRe(content, '(?m)^log$')
         self.assertContainsRe(content, 'test with unexpected success')
         self.expectFailure('subunit treats "unexpectedSuccess"'
@@ -2236,7 +2246,7 @@
         ## self.assertTrue('log' in test.getDetails())
 
     def test_success_has_no_log(self):
-        content, result = self.run_subunit_stream('test_success')
+        content, result = self.run_subunit_stream('test_success', True)
         self.assertEqual(1, result.testsRun)
         self.assertNotContainsRe(content, '(?m)^log$')
         self.assertNotContainsRe(content, 'this test succeeds')



More information about the bazaar-commits mailing list