50
48
self._transport_server = transport_server
51
49
self._transport_readonly_server = transport_readonly_server
52
50
self.scenarios = self.formats_to_scenarios(formats)
54
52
def formats_to_scenarios(self, formats):
55
53
"""Transform the input formats to a list of scenarios.
57
55
:param formats: A list of (workingtree_format, bzrdir_format).
61
59
for workingtree_format, bzrdir_format in formats:
62
scenario = (workingtree_format.__class__.__name__, {
63
"transport_server":self._transport_server,
64
"transport_readonly_server":self._transport_readonly_server,
65
"bzrdir_format":bzrdir_format,
66
"workingtree_format":workingtree_format,
68
result.append(scenario)
60
result.append(self.create_scenario(workingtree_format,
64
def create_scenario(self, workingtree_format, bzrdir_format):
65
"""Create a scenario for the specified converter
67
:param workingtree_format: The particular workingtree format to test.
68
:param bzrdir_format: The bzrdir format to test.
69
:return: a (name, options) tuple, where options is a dict of values
70
to be used as members of the TestCase.
73
"transport_server": self._transport_server,
74
"transport_readonly_server": self._transport_readonly_server,
75
"bzrdir_format": bzrdir_format,
76
"workingtree_format": workingtree_format,
78
return workingtree_format.__class__.__name__, scenario_options
72
81
class TestCaseWithWorkingTree(TestCaseWithBzrDir):
78
87
return self.workingtree_format.initialize(made_control)
90
def load_tests(basic_tests, module, loader):
91
result = loader.suiteClass()
92
# add the tests for this module
93
result.addTests(basic_tests)
83
95
test_workingtree_implementations = [
84
96
'bzrlib.tests.workingtree_implementations.test_add_reference',
85
97
'bzrlib.tests.workingtree_implementations.test_add',
116
128
'bzrlib.tests.workingtree_implementations.test_walkdirs',
117
129
'bzrlib.tests.workingtree_implementations.test_workingtree',
119
132
adapter = WorkingTreeTestProviderAdapter(
120
133
default_transport,
121
134
# None here will cause a readonly decorator to be created
122
135
# by the TestCaseWithTransport.get_readonly_transport method.
124
[(format, format._matchingbzrdir) for format in
137
[(format, format._matchingbzrdir) for format in
125
138
WorkingTreeFormat._formats.values() + _legacy_formats])
126
loader = TestLoader()
140
# add the tests for the sub modules
127
141
adapt_modules(test_workingtree_implementations, adapter, loader, result)