/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

  • Committer: Andrew Bennetts
  • Date: 2008-10-27 06:14:45 UTC
  • mfrom: (3793 +trunk)
  • mto: This revision was merged to the branch mainline in revision 3795.
  • Revision ID: andrew.bennetts@canonical.com-20081027061445-eqt9lz6uw1mbvq4g
Merge from bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
472
472
        server2 = "b"
473
473
        format1 = WorkingTreeFormat2()
474
474
        format2 = WorkingTreeFormat3()
475
 
        formats = [(str, format1, format2, "converter1"),
476
 
            (int, format2, format1, "converter2")]
 
475
        formats = [("1", str, format1, format2, "converter1"),
 
476
            ("2", int, format2, format1, "converter2")]
477
477
        adapter = InterTreeTestProviderAdapter(server1, server2, formats)
478
478
        suite = adapter.adapt(input_test)
479
479
        tests = list(iter(suite))
480
480
        self.assertEqual(2, len(tests))
481
 
        self.assertEqual(tests[0].intertree_class, formats[0][0])
482
 
        self.assertEqual(tests[0].workingtree_format, formats[0][1])
483
 
        self.assertEqual(tests[0].workingtree_format_to, formats[0][2])
484
 
        self.assertEqual(tests[0].mutable_trees_to_test_trees, formats[0][3])
 
481
        self.assertEqual(tests[0].intertree_class, formats[0][1])
 
482
        self.assertEqual(tests[0].workingtree_format, formats[0][2])
 
483
        self.assertEqual(tests[0].workingtree_format_to, formats[0][3])
 
484
        self.assertEqual(tests[0].mutable_trees_to_test_trees, formats[0][4])
485
485
        self.assertEqual(tests[0]._workingtree_to_test_tree, return_parameter)
486
486
        self.assertEqual(tests[0].transport_server, server1)
487
487
        self.assertEqual(tests[0].transport_readonly_server, server2)
488
 
        self.assertEqual(tests[1].intertree_class, formats[1][0])
489
 
        self.assertEqual(tests[1].workingtree_format, formats[1][1])
490
 
        self.assertEqual(tests[1].workingtree_format_to, formats[1][2])
491
 
        self.assertEqual(tests[1].mutable_trees_to_test_trees, formats[1][3])
 
488
        self.assertEqual(tests[1].intertree_class, formats[1][1])
 
489
        self.assertEqual(tests[1].workingtree_format, formats[1][2])
 
490
        self.assertEqual(tests[1].workingtree_format_to, formats[1][3])
 
491
        self.assertEqual(tests[1].mutable_trees_to_test_trees, formats[1][4])
492
492
        self.assertEqual(tests[1]._workingtree_to_test_tree, return_parameter)
493
493
        self.assertEqual(tests[1].transport_server, server1)
494
494
        self.assertEqual(tests[1].transport_readonly_server, server2)
502
502
        self.assertIsSameRealPath(self.test_dir, cwd)
503
503
        self.assertIsSameRealPath(self.test_home_dir, os.environ['HOME'])
504
504
 
 
505
    def test_assertEqualStat_equal(self):
 
506
        from bzrlib.tests.test_dirstate import _FakeStat
 
507
        self.build_tree(["foo"])
 
508
        real = os.lstat("foo")
 
509
        fake = _FakeStat(real.st_size, real.st_mtime, real.st_ctime,
 
510
            real.st_dev, real.st_ino, real.st_mode)
 
511
        self.assertEqualStat(real, fake)
 
512
 
 
513
    def test_assertEqualStat_notequal(self):
 
514
        self.build_tree(["foo", "bar"])
 
515
        self.assertRaises(AssertionError, self.assertEqualStat,
 
516
            os.lstat("foo"), os.lstat("bar"))
 
517
 
505
518
 
506
519
class TestTestCaseWithMemoryTransport(TestCaseWithMemoryTransport):
507
520
 
1333
1346
 
1334
1347
    def test_debug_flags_sanitised(self):
1335
1348
        """The bzrlib debug flags should be sanitised by setUp."""
 
1349
        if 'allow_debug' in tests.selftest_debug_flags:
 
1350
            raise TestNotApplicable(
 
1351
                '-Eallow_debug option prevents debug flag sanitisation')
1336
1352
        # we could set something and run a test that will check
1337
1353
        # it gets santised, but this is probably sufficient for now:
1338
1354
        # if someone runs the test with -Dsomething it will error.
1339
1355
        self.assertEqual(set(), bzrlib.debug.debug_flags)
1340
1356
 
 
1357
    def change_selftest_debug_flags(self, new_flags):
 
1358
        orig_selftest_flags = tests.selftest_debug_flags
 
1359
        self.addCleanup(self._restore_selftest_debug_flags, orig_selftest_flags)
 
1360
        tests.selftest_debug_flags = set(new_flags)
 
1361
        
 
1362
    def _restore_selftest_debug_flags(self, flags):
 
1363
        tests.selftest_debug_flags = flags
 
1364
 
 
1365
    def test_allow_debug_flag(self):
 
1366
        """The -Eallow_debug flag prevents bzrlib.debug.debug_flags from being
 
1367
        sanitised (i.e. cleared) before running a test.
 
1368
        """
 
1369
        self.change_selftest_debug_flags(set(['allow_debug']))
 
1370
        bzrlib.debug.debug_flags = set(['a-flag'])
 
1371
        class TestThatRecordsFlags(TestCase):
 
1372
            def test_foo(nested_self):
 
1373
                self.flags = set(bzrlib.debug.debug_flags)
 
1374
        test = TestThatRecordsFlags('test_foo')
 
1375
        test.run(self.make_test_result())
 
1376
        self.assertEqual(set(['a-flag']), self.flags)
 
1377
 
 
1378
    def test_debug_flags_restored(self):
 
1379
        """The bzrlib debug flags should be restored to their original state
 
1380
        after the test was run, even if allow_debug is set.
 
1381
        """
 
1382
        self.change_selftest_debug_flags(set(['allow_debug']))
 
1383
        # Now run a test that modifies debug.debug_flags.
 
1384
        bzrlib.debug.debug_flags = set(['original-state'])
 
1385
        class TestThatModifiesFlags(TestCase):
 
1386
            def test_foo(self):
 
1387
                bzrlib.debug.debug_flags = set(['modified'])
 
1388
        test = TestThatModifiesFlags('test_foo')
 
1389
        test.run(self.make_test_result())
 
1390
        self.assertEqual(set(['original-state']), bzrlib.debug.debug_flags)
 
1391
 
 
1392
    def make_test_result(self):
 
1393
        return bzrlib.tests.TextTestResult(
 
1394
            self._log_file, descriptions=0, verbosity=1)
 
1395
 
1341
1396
    def inner_test(self):
1342
1397
        # the inner child test
1343
1398
        note("inner_test")
1346
1401
        # the outer child test
1347
1402
        note("outer_start")
1348
1403
        self.inner_test = TestTestCase("inner_child")
1349
 
        result = bzrlib.tests.TextTestResult(self._log_file,
1350
 
                                        descriptions=0,
1351
 
                                        verbosity=1)
 
1404
        result = self.make_test_result()
1352
1405
        self.inner_test.run(result)
1353
1406
        note("outer finish")
1354
1407
 
1366
1419
        # the outer child test
1367
1420
        original_trace = bzrlib.trace._trace_file
1368
1421
        outer_test = TestTestCase("outer_child")
1369
 
        result = bzrlib.tests.TextTestResult(self._log_file,
1370
 
                                        descriptions=0,
1371
 
                                        verbosity=1)
 
1422
        result = self.make_test_result()
1372
1423
        outer_test.run(result)
1373
1424
        self.assertEqual(original_trace, bzrlib.trace._trace_file)
1374
1425