Rev 4801: Remove references to _get_log from test_selftest. in http://bazaar.launchpad.net/~lifeless/bzr/subunit

Robert Collins robertc at robertcollins.net
Sat Dec 5 10:07:47 GMT 2009


At http://bazaar.launchpad.net/~lifeless/bzr/subunit

------------------------------------------------------------
revno: 4801
revision-id: robertc at robertcollins.net-20091205100734-xobmvk2j4yk8kuvw
parent: robertc at robertcollins.net-20091205093203-ag0ns6opjo27tvv0
committer: Robert Collins <robertc at robertcollins.net>
branch nick: subunit
timestamp: Sat 2009-12-05 21:07:34 +1100
message:
  Remove references to _get_log from test_selftest.
=== modified file 'bzrlib/tests/__init__.py'
--- a/bzrlib/tests/__init__.py	2009-12-05 09:32:03 +0000
+++ b/bzrlib/tests/__init__.py	2009-12-05 10:07:34 +0000
@@ -798,7 +798,7 @@
             (TestNotApplicable, self._do_not_applicable))
         self.exception_handlers.insert(0,
             (KnownFailure, self._do_known_failure))
-        self._log_contents = ''
+        self._log_contents = None
         self.addDetail("log", content.Content(content.ContentType("text",
             "plain", {"charset": "utf8"}),
             lambda:[self._get_log(keep_log_file=True)]))
@@ -1606,10 +1606,6 @@
         else:
             self._do_skip(result, reason)
 
-    def tearDown(self):
-        self._log_contents = ''
-        super(TestCase, self).tearDown()
-
     def time(self, callable, *args, **kwargs):
         """Run callable and accrue the time it takes to the benchmark time.
 
@@ -1644,14 +1640,12 @@
             self._log_contents.
         :return: A string containing the log.
         """
-        # flush the log file, to get all content
+        if self._log_contents is not None:
+            return self._log_contents
         import bzrlib.trace
         if bzrlib.trace._trace_file:
+            # flush the log file, to get all content
             bzrlib.trace._trace_file.flush()
-        if self._log_contents:
-            # XXX: this can hardly contain the content flushed above --vila
-            # 20080128
-            return self._log_contents
         if self._log_file_name is not None:
             logfile = open(self._log_file_name)
             try:
@@ -1659,6 +1653,7 @@
             finally:
                 logfile.close()
             if not keep_log_file:
+                # Permit multiple calls to get_log.
                 self._log_contents = log_contents
                 try:
                     os.remove(self._log_file_name)
@@ -1670,7 +1665,7 @@
                         raise
             return log_contents
         else:
-            return "DELETED log file to reduce memory footprint"
+            return "No log file content and no log file name."
 
     def requireFeature(self, feature):
         """This test requires a specific feature is available.

=== modified file 'bzrlib/tests/test_selftest.py'
--- a/bzrlib/tests/test_selftest.py	2009-12-05 09:32:03 +0000
+++ b/bzrlib/tests/test_selftest.py	2009-12-05 10:07:34 +0000
@@ -1214,111 +1214,6 @@
         self.assertContainsRe(output_string, "--date [0-9.]+")
         self.assertLength(1, self._get_source_tree_calls)
 
-    def assertLogDeleted(self, test):
-        log = test._get_log()
-        self.assertEqual("DELETED log file to reduce memory footprint", log)
-        self.assertEqual('', test._log_contents)
-        self.assertIs(None, test._log_file_name)
-
-    def test_success_log_deleted(self):
-        """Successful tests have their log deleted"""
-
-        class LogTester(tests.TestCase):
-
-            def test_success(self):
-                self.log('this will be removed\n')
-
-        sio = StringIO()
-        runner = tests.TextTestRunner(stream=sio)
-        test = LogTester('test_success')
-        result = self.run_test_runner(runner, test)
-
-        self.assertLogDeleted(test)
-
-    def test_skipped_log_deleted(self):
-        """Skipped tests have their log deleted"""
-
-        class LogTester(tests.TestCase):
-
-            def test_skipped(self):
-                self.log('this will be removed\n')
-                raise tests.TestSkipped()
-
-        sio = StringIO()
-        runner = tests.TextTestRunner(stream=sio)
-        test = LogTester('test_skipped')
-        result = self.run_test_runner(runner, test)
-
-        self.assertLogDeleted(test)
-
-    def test_not_aplicable_log_deleted(self):
-        """Not applicable tests have their log deleted"""
-
-        class LogTester(tests.TestCase):
-
-            def test_not_applicable(self):
-                self.log('this will be removed\n')
-                raise tests.TestNotApplicable()
-
-        sio = StringIO()
-        runner = tests.TextTestRunner(stream=sio)
-        test = LogTester('test_not_applicable')
-        result = self.run_test_runner(runner, test)
-
-        self.assertLogDeleted(test)
-
-    def test_known_failure_log_deleted(self):
-        """Know failure tests have their log deleted"""
-
-        class LogTester(tests.TestCase):
-
-            def test_known_failure(self):
-                self.log('this will be removed\n')
-                raise tests.KnownFailure()
-
-        sio = StringIO()
-        runner = tests.TextTestRunner(stream=sio)
-        test = LogTester('test_known_failure')
-        result = self.run_test_runner(runner, test)
-
-        self.assertLogDeleted(test)
-
-    def test_fail_log_shown(self):
-        """Failed tests have their log shown"""
-
-        class LogTester(tests.TestCase):
-
-            def test_fail(self):
-                self.log('this will be kept\n')
-                self.fail('this test fails')
-
-        sio = StringIO()
-        runner = tests.TextTestRunner(stream=sio)
-        test = LogTester('test_fail')
-        result = self.run_test_runner(runner, test)
-
-        text = sio.getvalue()
-        self.assertContainsRe(text, 'this will be kept')
-        self.assertContainsRe(text, 'this test fails')
-
-    def test_error_log_shown(self):
-        """Tests with errors have their log shown"""
-
-        class LogTester(tests.TestCase):
-
-            def test_error(self):
-                self.log('this will be kept\n')
-                raise ValueError('random exception raised')
-
-        sio = StringIO()
-        runner = tests.TextTestRunner(stream=sio)
-        test = LogTester('test_error')
-        result = self.run_test_runner(runner, test)
-
-        text = sio.getvalue()
-        self.assertContainsRe(text, 'this will be kept')
-        self.assertContainsRe(text, 'random exception raised')
-
     def test_startTestRun(self):
         """run should call result.startTestRun()"""
         calls = []
@@ -1488,6 +1383,7 @@
         self.assertEqual(set(['original-state']), bzrlib.debug.debug_flags)
 
     def make_test_result(self):
+        """Get a test result that writes to the test log file."""
         return tests.TextTestResult(self._log_file, descriptions=0, verbosity=1)
 
     def inner_test(self):
@@ -2681,8 +2577,8 @@
         # the test framework
         self.assertEquals('always fails', str(e))
         # check that there's no traceback in the test log
-        self.assertNotContainsRe(self._get_log(keep_log_file=True),
-            r'Traceback')
+        log = u"".join(self.getDetails()['log'].iter_text())
+        self.assertNotContainsRe(log, r'Traceback')
 
     def test_run_bzr_user_error_caught(self):
         # Running bzr in blackbox mode, normal/expected/user errors should be
@@ -2997,8 +2893,8 @@
         tpr.register('bar', 'bbb.aaa.rrr')
         tpr.register('bar', 'bBB.aAA.rRR')
         self.assertEquals('bbb.aaa.rrr', tpr.get('bar'))
-        self.assertContainsRe(self._get_log(keep_log_file=True),
-                              r'.*bar.*bbb.aaa.rrr.*bBB.aAA.rRR')
+        self.assertThat(u"".join(self.getDetails()['log'].iter_text()),
+            DocTestMatches("...bar...bbb.aaa.rrr...BB.aAA.rRR", ELLIPSIS))
 
     def test_get_unknown_prefix(self):
         tpr = self._get_registry()




More information about the bazaar-commits mailing list