34
40
from bzrlib.tests import (
38
43
TestScenarioApplier,
45
from bzrlib.tests.bzrdir_implementations.test_bzrdir import TestCaseWithBzrDir
46
from bzrlib.transport import get_transport
43
49
class InterRepositoryTestProviderAdapter(TestScenarioApplier):
65
71
for interrepo_class, repository_format, repository_format_to in formats:
66
scenario = (interrepo_class.__name__,
72
id = '%s,%s,%s' % (interrepo_class.__name__,
73
repository_format.__class__.__name__,
74
repository_format_to.__class__.__name__)
67
76
{"transport_server":self._transport_server,
68
77
"transport_readonly_server":self._transport_readonly_server,
69
78
"repository_format":repository_format,
128
class TestCaseWithInterRepository(TestCaseWithBzrDir):
131
super(TestCaseWithInterRepository, self).setUp()
133
def make_branch(self, relpath, format=None):
134
repo = self.make_repository(relpath, format=format)
135
return repo.bzrdir.create_branch()
137
def make_bzrdir(self, relpath, format=None):
139
url = self.get_url(relpath)
140
segments = url.split('/')
141
if segments and segments[-1] not in ('', '.'):
142
parent = '/'.join(segments[:-1])
143
t = get_transport(parent)
145
t.mkdir(segments[-1])
149
format = self.repository_format._matchingbzrdir
150
return format.initialize(url)
151
except UninitializableFormat:
152
raise TestSkipped("Format %s is not initializable." % format)
154
def make_repository(self, relpath, format=None):
155
made_control = self.make_bzrdir(relpath, format=format)
156
return self.repository_format.initialize(made_control)
158
def make_to_repository(self, relpath):
159
made_control = self.make_bzrdir(relpath,
160
self.repository_format_to._matchingbzrdir)
161
return self.repository_format_to.initialize(made_control)
164
def load_tests(basic_tests, module, loader):
165
result = loader.suiteClass()
166
# add the tests for this module
167
result.addTests(basic_tests)
121
169
test_interrepository_implementations = [
170
'bzrlib.tests.interrepository_implementations.test_fetch',
122
171
'bzrlib.tests.interrepository_implementations.test_interrepository',
124
173
adapter = InterRepositoryTestProviderAdapter(
129
178
InterRepositoryTestProviderAdapter.default_test_list()
131
loader = TestLoader()
180
# add the tests for the sub modules
132
181
adapt_modules(test_interrepository_implementations, adapter, loader, result)