~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_selftest.py

  • Committer: v.ladeuil+lp at free
  • Date: 2006-11-08 07:44:30 UTC
  • mfrom: (2123 +trunk)
  • mto: (2145.1.1 keepalive)
  • mto: This revision was merged to the branch mainline in revision 2146.
  • Revision ID: v.ladeuil+lp@free.fr-20061108074430-a9c08d4a475bd97f
Merge bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
63
63
                          _load_module_by_name,
64
64
                          'bzrlib.no-name-yet')
65
65
 
66
 
 
67
66
class MetaTestLog(TestCase):
68
67
 
69
68
    def test_logging(self):
576
575
 
577
576
class TestTestResult(TestCase):
578
577
 
579
 
    def test_progress_bar_style_quiet(self):
580
 
        # test using a progress bar.
581
 
        dummy_test = TestTestResult('test_progress_bar_style_quiet')
582
 
        dummy_error = (Exception, None, [])
583
 
        mypb = MockProgress()
584
 
        mypb.update('Running tests', 0, 4)
585
 
        last_calls = mypb.calls[:]
586
 
 
587
 
        result = bzrlib.tests._MyResult(self._log_file,
588
 
                                        descriptions=0,
589
 
                                        verbosity=1,
590
 
                                        pb=mypb)
591
 
        self.assertEqual(last_calls, mypb.calls)
592
 
 
593
 
        def shorten(s):
594
 
            """Shorten a string based on the terminal width"""
595
 
            return result._ellipsise_unimportant_words(s,
596
 
                                 osutils.terminal_width())
597
 
 
598
 
        # an error 
599
 
        result.startTest(dummy_test)
600
 
        # starting a test prints the test name
601
 
        last_calls += [('update', '...tyle_quiet', 0, None)]
602
 
        self.assertEqual(last_calls, mypb.calls)
603
 
        result.addError(dummy_test, dummy_error)
604
 
        last_calls += [('update', 'ERROR        ', 1, None),
605
 
                       ('note', shorten(dummy_test.id() + ': ERROR'), ())
606
 
                      ]
607
 
        self.assertEqual(last_calls, mypb.calls)
608
 
 
609
 
        # a failure
610
 
        result.startTest(dummy_test)
611
 
        last_calls += [('update', '...tyle_quiet', 1, None)]
612
 
        self.assertEqual(last_calls, mypb.calls)
613
 
        last_calls += [('update', 'FAIL         ', 2, None),
614
 
                       ('note', shorten(dummy_test.id() + ': FAIL'), ())
615
 
                      ]
616
 
        result.addFailure(dummy_test, dummy_error)
617
 
        self.assertEqual(last_calls, mypb.calls)
618
 
 
619
 
        # a success
620
 
        result.startTest(dummy_test)
621
 
        last_calls += [('update', '...tyle_quiet', 2, None)]
622
 
        self.assertEqual(last_calls, mypb.calls)
623
 
        result.addSuccess(dummy_test)
624
 
        last_calls += [('update', 'OK           ', 3, None)]
625
 
        self.assertEqual(last_calls, mypb.calls)
626
 
 
627
 
        # a skip
628
 
        result.startTest(dummy_test)
629
 
        last_calls += [('update', '...tyle_quiet', 3, None)]
630
 
        self.assertEqual(last_calls, mypb.calls)
631
 
        result.addSkipped(dummy_test, dummy_error)
632
 
        last_calls += [('update', 'SKIP         ', 4, None)]
633
 
        self.assertEqual(last_calls, mypb.calls)
634
 
 
635
578
    def test_elapsed_time_with_benchmarking(self):
636
 
        result = bzrlib.tests._MyResult(self._log_file,
 
579
        result = bzrlib.tests.TextTestResult(self._log_file,
637
580
                                        descriptions=0,
638
581
                                        verbosity=1,
639
582
                                        )
659
602
 
660
603
    def test_assigned_benchmark_file_stores_date(self):
661
604
        output = StringIO()
662
 
        result = bzrlib.tests._MyResult(self._log_file,
 
605
        result = bzrlib.tests.TextTestResult(self._log_file,
663
606
                                        descriptions=0,
664
607
                                        verbosity=1,
665
608
                                        bench_history=output
666
609
                                        )
667
610
        output_string = output.getvalue()
 
611
        
668
612
        # if you are wondering about the regexp please read the comment in
669
613
        # test_bench_history (bzrlib.tests.test_selftest.TestRunner)
670
614
        # XXX: what comment?  -- Andrew Bennetts
672
616
 
673
617
    def test_benchhistory_records_test_times(self):
674
618
        result_stream = StringIO()
675
 
        result = bzrlib.tests._MyResult(
 
619
        result = bzrlib.tests.TextTestResult(
676
620
            self._log_file,
677
621
            descriptions=0,
678
622
            verbosity=1,
705
649
        except ImportError:
706
650
            raise TestSkipped("lsprof not installed.")
707
651
        result_stream = StringIO()
708
 
        result = bzrlib.tests._MyResult(
 
652
        result = bzrlib.tests.VerboseTestResult(
709
653
            unittest._WritelnDecorator(result_stream),
710
654
            descriptions=0,
711
655
            verbosity=2,
760
704
        finally:
761
705
            TestCaseInTempDir.TEST_ROOT = old_root
762
706
 
763
 
    def test_accepts_and_uses_pb_parameter(self):
764
 
        test = TestRunner('dummy_test')
765
 
        mypb = MockProgress()
766
 
        self.assertEqual([], mypb.calls)
767
 
        runner = TextTestRunner(stream=self._log_file, pb=mypb)
768
 
        result = self.run_test_runner(runner, test)
769
 
        self.assertEqual(1, result.testsRun)
770
 
        self.assertEqual(('update', 'Running tests', 0, 1), mypb.calls[0])
771
 
        self.assertEqual(('update', '...dummy_test', 0, None), mypb.calls[1])
772
 
        self.assertEqual(('update', 'OK           ', 1, None), mypb.calls[2])
773
 
        self.assertEqual(('update', 'Cleaning up', 0, 1), mypb.calls[3])
774
 
        self.assertEqual(('clear',), mypb.calls[4])
775
 
        self.assertEqual(5, len(mypb.calls))
776
 
 
777
707
    def test_skipped_test(self):
778
708
        # run a test that is skipped, and check the suite as a whole still
779
709
        # succeeds.
874
804
        # the outer child test
875
805
        note("outer_start")
876
806
        self.inner_test = TestTestCase("inner_child")
877
 
        result = bzrlib.tests._MyResult(self._log_file,
 
807
        result = bzrlib.tests.TextTestResult(self._log_file,
878
808
                                        descriptions=0,
879
809
                                        verbosity=1)
880
810
        self.inner_test.run(result)
894
824
        # the outer child test
895
825
        original_trace = bzrlib.trace._trace_file
896
826
        outer_test = TestTestCase("outer_child")
897
 
        result = bzrlib.tests._MyResult(self._log_file,
 
827
        result = bzrlib.tests.TextTestResult(self._log_file,
898
828
                                        descriptions=0,
899
829
                                        verbosity=1)
900
830
        outer_test.run(result)
909
839
        """Test that the TestCase.time() method accumulates a benchmark time."""
910
840
        sample_test = TestTestCase("method_that_times_a_bit_twice")
911
841
        output_stream = StringIO()
912
 
        result = bzrlib.tests._MyResult(
 
842
        result = bzrlib.tests.VerboseTestResult(
913
843
            unittest._WritelnDecorator(output_stream),
914
844
            descriptions=0,
915
 
            verbosity=2)
 
845
            verbosity=2,
 
846
            num_tests=sample_test.countTestCases())
916
847
        sample_test.run(result)
917
848
        self.assertContainsRe(
918
849
            output_stream.getvalue(),
919
 
            "[1-9][0-9]ms/   [1-9][0-9]ms\n$")
 
850
            r"\d+ms/ +\d+ms\n$")
920
851
        
921
852
    def test__gather_lsprof_in_benchmarks(self):
922
853
        """When _gather_lsprof_in_benchmarks is on, accumulate profile data.