/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_selftest.py

Merge bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
 
16
16
"""Tests for the test framework."""
17
17
 
 
18
import cStringIO
18
19
import os
19
20
from StringIO import StringIO
20
21
import sys
63
64
        """Test logs are captured when a test fails."""
64
65
        self.log('a test message')
65
66
        self._log_file.flush()
66
 
        self.assertContainsRe(self._get_log(), 'a test message\n')
 
67
        self.assertContainsRe(self._get_log(keep_log_file=True),
 
68
                              'a test message\n')
67
69
 
68
70
 
69
71
class TestTreeShape(TestCaseInTempDir):
781
783
            revision_id = workingtree.get_parent_ids()[0]
782
784
            self.assertEndsWith(output_string.rstrip(), revision_id)
783
785
 
 
786
    def test_success_log_deleted(self):
 
787
        """Successful tests have their log deleted"""
 
788
 
 
789
        class LogTester(TestCase):
 
790
 
 
791
            def test_success(self):
 
792
                self.log('this will be removed\n')
 
793
 
 
794
        sio = cStringIO.StringIO()
 
795
        runner = TextTestRunner(stream=sio)
 
796
        test = LogTester('test_success')
 
797
        result = self.run_test_runner(runner, test)
 
798
 
 
799
        log = test._get_log()
 
800
        self.assertEqual("DELETED log file to reduce memory footprint", log)
 
801
        self.assertEqual('', test._log_contents)
 
802
        self.assertIs(None, test._log_file_name)
 
803
 
 
804
    def test_fail_log_kept(self):
 
805
        """Failed tests have their log kept"""
 
806
 
 
807
        class LogTester(TestCase):
 
808
 
 
809
            def test_fail(self):
 
810
                self.log('this will be kept\n')
 
811
                self.fail('this test fails')
 
812
 
 
813
        sio = cStringIO.StringIO()
 
814
        runner = TextTestRunner(stream=sio)
 
815
        test = LogTester('test_fail')
 
816
        result = self.run_test_runner(runner, test)
 
817
 
 
818
        text = sio.getvalue()
 
819
        self.assertContainsRe(text, 'this will be kept')
 
820
        self.assertContainsRe(text, 'this test fails')
 
821
 
 
822
        log = test._get_log()
 
823
        self.assertContainsRe(log, 'this will be kept')
 
824
        self.assertEqual(log, test._log_contents)
 
825
 
 
826
    def test_error_log_kept(self):
 
827
        """Tests with errors have their log kept"""
 
828
 
 
829
        class LogTester(TestCase):
 
830
 
 
831
            def test_error(self):
 
832
                self.log('this will be kept\n')
 
833
                raise ValueError('random exception raised')
 
834
 
 
835
        sio = cStringIO.StringIO()
 
836
        runner = TextTestRunner(stream=sio)
 
837
        test = LogTester('test_error')
 
838
        result = self.run_test_runner(runner, test)
 
839
 
 
840
        text = sio.getvalue()
 
841
        self.assertContainsRe(text, 'this will be kept')
 
842
        self.assertContainsRe(text, 'random exception raised')
 
843
 
 
844
        log = test._get_log()
 
845
        self.assertContainsRe(log, 'this will be kept')
 
846
        self.assertEqual(log, test._log_contents)
 
847
 
784
848
 
785
849
class TestTestCase(TestCase):
786
850
    """Tests that test the core bzrlib TestCase."""