~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_selftest.py

  • Committer: John Arbash Meinel
  • Date: 2009-02-23 15:29:35 UTC
  • mfrom: (3943.7.7 bzr.code_style_cleanup)
  • mto: This revision was merged to the branch mainline in revision 4033.
  • Revision ID: john@arbash-meinel.com-20090223152935-oel9m92mwcc6nb4h
Merge the removal of all trailing whitespace, and resolve conflicts.

Show diffs side-by-side

added added

removed removed

Lines of Context:
132
132
class TestTransportProviderAdapter(TestCase):
133
133
    """A group of tests that test the transport implementation adaption core.
134
134
 
135
 
    This is a meta test that the tests are applied to all available 
 
135
    This is a meta test that the tests are applied to all available
136
136
    transports.
137
137
 
138
 
    This will be generalised in the future which is why it is in this 
 
138
    This will be generalised in the future which is why it is in this
139
139
    test file even though it is specific to transport tests at the moment.
140
140
    """
141
141
 
164
164
        permutation_count = 0
165
165
        for module in modules:
166
166
            try:
167
 
                permutation_count += len(reduce(getattr, 
 
167
                permutation_count += len(reduce(getattr,
168
168
                    (module + ".get_test_permutations").split('.')[1:],
169
169
                     __import__(module))())
170
170
            except errors.DependencyNotPresent:
322
322
            ("new id 2", {"bzrdir_format":None}))
323
323
        # input_test should have been altered.
324
324
        self.assertRaises(AttributeError, getattr, input_test, "bzrdir_format")
325
 
        # the new tests are mutually incompatible, ensuring it has 
 
325
        # the new tests are mutually incompatible, ensuring it has
326
326
        # made new ones, and unspecified elements in the scenario
327
327
        # should not have been altered.
328
328
        self.assertEqual("bzr_format", adapted_test1.bzrdir_format)
523
523
        """The test_home_dir for TestCaseWithMemoryTransport is missing.
524
524
 
525
525
        This is because TestCaseWithMemoryTransport is for tests that do not
526
 
        need any disk resources: they should be hooked into bzrlib in such a 
527
 
        way that no global settings are being changed by the test (only a 
 
526
        need any disk resources: they should be hooked into bzrlib in such a
 
527
        way that no global settings are being changed by the test (only a
528
528
        few tests should need to do that), and having a missing dir as home is
529
529
        an effective way to ensure that this is the case.
530
530
        """
532
532
            self.TEST_ROOT + "/MemoryTransportMissingHomeDir",
533
533
            self.test_home_dir)
534
534
        self.assertIsSameRealPath(self.test_home_dir, os.environ['HOME'])
535
 
        
 
535
 
536
536
    def test_cwd_is_TEST_ROOT(self):
537
537
        self.assertIsSameRealPath(self.test_dir, self.TEST_ROOT)
538
538
        cwd = osutils.getcwd()
679
679
    def test_make_bzrdir_preserves_transport(self):
680
680
        t = self.get_transport()
681
681
        result_bzrdir = self.make_bzrdir('subdir')
682
 
        self.assertIsInstance(result_bzrdir.transport, 
 
682
        self.assertIsInstance(result_bzrdir.transport,
683
683
                              MemoryTransport)
684
684
        # should not be on disk, should only be in memory
685
685
        self.failIfExists('subdir')
747
747
                time.sleep(0.003)
748
748
        self.check_timing(ShortDelayTestCase('test_short_delay'),
749
749
                          r"^ +[0-9]+ms$")
750
 
        
 
750
 
751
751
    def test_assigned_benchmark_file_stores_date(self):
752
752
        output = StringIO()
753
753
        result = bzrlib.tests.TextTestResult(self._log_file,
780
780
        self.assertContainsRe(lines[1],
781
781
            " *[0-9]+ms bzrlib.tests.test_selftest.TestTestResult"
782
782
            "._time_hello_world_encoding")
783
 
 
 
783
 
784
784
    def _time_hello_world_encoding(self):
785
785
        """Profile two sleep calls
786
 
        
 
786
 
787
787
        This is used to exercise the test framework.
788
788
        """
789
789
        self.time(unicode, 'hello', errors='replace')
807
807
        # execute the test, which should succeed and record profiles
808
808
        example_test_case.run(result)
809
809
        # lsprofile_something()
810
 
        # if this worked we want 
 
810
        # if this worked we want
811
811
        # LSProf output for <built in function unicode> (['hello'], {'errors': 'replace'})
812
812
        #    CallCount    Recursive    Total(ms)   Inline(ms) module:lineno(function)
813
813
        # (the lsprof header)
814
814
        # ... an arbitrary number of lines
815
815
        # and the function call which is time.sleep.
816
 
        #           1        0            ???         ???       ???(sleep) 
 
816
        #           1        0            ???         ???       ???(sleep)
817
817
        # and then repeated but with 'world', rather than 'hello'.
818
818
        # this should appear in the output stream of our test result.
819
819
        output = result_stream.getvalue()
954
954
        output = result_stream.getvalue()[prefix:]
955
955
        lines = output.splitlines()
956
956
        self.assertEqual(lines, ['NODEP                   0ms', "    The feature 'Feature' is not available."])
957
 
    
 
957
 
958
958
    def test_text_report_unsupported(self):
959
959
        # text test output formatting
960
960
        pb = MockProgress()
983
983
            ('update', '[2 in 0s, 2 missing] passing_test', None, None),
984
984
            ],
985
985
            pb.calls[1:])
986
 
    
 
986
 
987
987
    def test_unavailable_exception(self):
988
988
        """An UnavailableFeature being raised should invoke addNotSupported."""
989
989
        class InstrumentedTestResult(ExtendedTestResult):
1012
1012
        result.addNotSupported(test, feature)
1013
1013
        self.assertFalse(result.wasStrictlySuccessful())
1014
1014
        self.assertEqual(None, result._extractBenchmarkTime(test))
1015
 
 
 
1015
 
1016
1016
    def test_strict_with_known_failure(self):
1017
1017
        result = bzrlib.tests.TextTestResult(self._log_file, descriptions=0,
1018
1018
                                             verbosity=1)
1050
1050
 
1051
1051
        This current saves and restores:
1052
1052
        TestCaseInTempDir.TEST_ROOT
1053
 
        
 
1053
 
1054
1054
        There should be no tests in this file that use bzrlib.tests.TextTestRunner
1055
1055
        without using this convenience method, because of our use of global state.
1056
1056
        """
1359
1359
        orig_selftest_flags = tests.selftest_debug_flags
1360
1360
        self.addCleanup(self._restore_selftest_debug_flags, orig_selftest_flags)
1361
1361
        tests.selftest_debug_flags = set(new_flags)
1362
 
        
 
1362
 
1363
1363
    def _restore_selftest_debug_flags(self, flags):
1364
1364
        tests.selftest_debug_flags = flags
1365
1365
 
1412
1412
        # should setup a new log, log content to it, setup a child case (B),
1413
1413
        # which should log independently, then case (A) should log a trailer
1414
1414
        # and return.
1415
 
        # we do two nested children so that we can verify the state of the 
 
1415
        # we do two nested children so that we can verify the state of the
1416
1416
        # logs after the outer child finishes is correct, which a bad clean
1417
1417
        # up routine in tearDown might trigger a fault in our test with only
1418
1418
        # one child, we should instead see the bad result inside our test with
1457
1457
 
1458
1458
    def test__gather_lsprof_in_benchmarks(self):
1459
1459
        """When _gather_lsprof_in_benchmarks is on, accumulate profile data.
1460
 
        
 
1460
 
1461
1461
        Each self.time() call is individually and separately profiled.
1462
1462
        """
1463
1463
        self.requireFeature(test_lsprof.LSProfFeature)
1464
 
        # overrides the class member with an instance member so no cleanup 
 
1464
        # overrides the class member with an instance member so no cleanup
1465
1465
        # needed.
1466
1466
        self._gather_lsprof_in_benchmarks = True
1467
1467
        self.time(time.sleep, 0.000)
1493
1493
    def test_run_no_parameters(self):
1494
1494
        test = SampleTestCase('_test_pass')
1495
1495
        test.run()
1496
 
    
 
1496
 
1497
1497
    def test_run_enabled_unittest_result(self):
1498
1498
        """Test we revert to regular behaviour when the test is enabled."""
1499
1499
        test = SampleTestCase('_test_pass')
1662
1662
        self.assertEqual(2, self.applyDeprecated(zero_eleven,
1663
1663
            sample_deprecated_function))
1664
1664
        # calling a nested deprecation with the wrong deprecation version
1665
 
        # fails even if a deeper nested function was deprecated with the 
 
1665
        # fails even if a deeper nested function was deprecated with the
1666
1666
        # supplied version.
1667
1667
        self.assertRaises(AssertionError, self.applyDeprecated,
1668
1668
            zero_eleven, sample_object.sample_nested_deprecation)
1674
1674
    def test_callDeprecated(self):
1675
1675
        def testfunc(be_deprecated, result=None):
1676
1676
            if be_deprecated is True:
1677
 
                symbol_versioning.warn('i am deprecated', DeprecationWarning, 
 
1677
                symbol_versioning.warn('i am deprecated', DeprecationWarning,
1678
1678
                                       stacklevel=1)
1679
1679
            return result
1680
1680
        result = self.callDeprecated(['i am deprecated'], testfunc, True)
1745
1745
            return TestSuite()
1746
1746
        out = StringIO()
1747
1747
        err = StringIO()
1748
 
        self.apply_redirected(out, err, None, bzrlib.tests.selftest, 
 
1748
        self.apply_redirected(out, err, None, bzrlib.tests.selftest,
1749
1749
            test_suite_factory=factory)
1750
1750
        self.assertEqual([True], factory_called)
1751
1751