544
545
format_applier.scenarios = (disk_format_adapter.scenarios +
545
546
remote_repo_adapter.scenarios)
547
# broken_scenario_applier adapts tests by BrokenRepoScenario; it's intended
548
# to be used on top of format_applier.
548
# broken_scenario_applier adapts tests by BrokenRepoScenario by repository
549
# format; i.e. by the cartesian product of format scenarios and broken
550
# repository scenarios.
551
broken_scenarios = [(s.__name__, {'scenario_class': s})
552
for s in all_scenarios]
553
broken_scenarios_for_all_formats = [
554
('%s,%s' % (f_scenario_name, b_scenario_name),
555
dict(f_scenario_dict.items() + b_scenario_dict.items()))
556
for f_scenario_name, f_scenario_dict in format_applier.scenarios
557
for b_scenario_name, b_scenario_dict in broken_scenarios]
549
558
broken_scenario_applier = TestScenarioApplier()
550
broken_scenario_applier.scenarios = [(s.__name__, {'scenario_class': s})
551
for s in all_scenarios]
559
broken_scenario_applier.scenarios = broken_scenarios_for_all_formats
553
561
prefix = 'bzrlib.tests.repository_implementations.'
554
# A list of tests: (module_name, [adapters]).
555
562
test_repository_implementations = [
556
('test_break_lock', [format_applier]),
557
('test_check_reconcile', [format_applier, broken_scenario_applier]),
558
('test_check', [format_applier]),
559
('test_commit_builder', [format_applier]),
560
('test_fetch', [format_applier]),
561
('test_fileid_involved', [format_applier]),
562
('test_has_same_location', [format_applier]),
563
('test_iter_reverse_revision_history', [format_applier]),
564
('test_pack', [format_applier]),
565
('test_reconcile', [format_applier]),
566
('test_repository', [format_applier]),
567
('test_revision', [format_applier]),
568
('test_statistics', [format_applier]),
569
('test_write_group', [format_applier]),
565
'test_commit_builder',
567
'test_fileid_involved',
568
'test_has_same_location',
569
'test_iter_reverse_revision_history',
572
578
result = TestSuite()
573
579
loader = TestLoader()
580
module_name_list = [prefix + module_name
581
for module_name in test_repository_implementations]
582
adapt_modules(module_name_list, format_applier, loader, result)
584
[prefix + 'test_check_reconcile'],
585
broken_scenario_applier, loader, result)
575
for module_name, appliers in test_repository_implementations:
576
tests = loader.loadTestsFromModuleNames([prefix + module_name])
578
suite.addTests(tests)
579
for applier in appliers:
580
new_suite = TestSuite()
581
for test in iter_suite_tests(suite):
582
new_suite.addTests(applier.adapt(test))
584
result.addTests(suite)