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'])
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)
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"))
506
519
class TestTestCaseWithMemoryTransport(TestCaseWithMemoryTransport):
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)
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)
1362
def _restore_selftest_debug_flags(self, flags):
1363
tests.selftest_debug_flags = flags
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.
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)
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.
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):
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)
1392
def make_test_result(self):
1393
return bzrlib.tests.TextTestResult(
1394
self._log_file, descriptions=0, verbosity=1)
1341
1396
def inner_test(self):
1342
1397
# the inner child test
1343
1398
note("inner_test")