48
46
def __init__(self, vfs_factory, transport_server, transport_readonly_server,
47
formats, name_suffix=''):
50
48
"""Create an object to adapt tests.
52
50
:param vfs_server: A factory to create a Transport Server which has
55
53
self._vfs_factory = vfs_factory
56
54
self._transport_server = transport_server
57
55
self._transport_readonly_server = transport_readonly_server
56
self._name_suffix = name_suffix
58
57
self.scenarios = self.formats_to_scenarios(formats)
60
59
def formats_to_scenarios(self, formats):
66
65
for format in formats:
67
scenario = (format.__class__.__name__, {
66
scenario_name = format.__class__.__name__
67
scenario_name += self._name_suffix
68
scenario = (scenario_name, {
68
69
"vfs_transport_factory":self._vfs_factory,
69
70
"transport_server":self._transport_server,
70
71
"transport_readonly_server":self._transport_readonly_server,
88
89
def make_bzrdir(self, relpath, format=None):
91
format = self.bzrdir_format
89
92
return super(TestCaseWithBzrDir, self).make_bzrdir(
90
relpath, format=self.bzrdir_format)
93
relpath, format=format)
96
def load_tests(basic_tests, module, loader):
97
result = loader.suiteClass()
98
# add the tests for this module
99
result.addTests(basic_tests)
95
101
test_bzrdir_implementations = [
96
102
'bzrlib.tests.bzrdir_implementations.test_bzrdir',
103
109
# by the TestCaseWithTransport.get_readonly_transport method.
106
loader = TestLoader()
112
# add the tests for the sub modules
107
113
adapt_modules(test_bzrdir_implementations, adapter, loader, result)
109
115
# This will always add the tests for smart server transport, regardless of
110
116
# the --transport option the user specified to 'bzr selftest'.
111
from bzrlib.smart.server import SmartTCPServer_for_testing, ReadonlySmartTCPServer_for_testing
117
from bzrlib.smart.server import (
118
ReadonlySmartTCPServer_for_testing,
119
ReadonlySmartTCPServer_for_testing_v2_only,
120
SmartTCPServer_for_testing,
121
SmartTCPServer_for_testing_v2_only,
112
123
from bzrlib.remote import RemoteBzrDirFormat
114
125
# test the remote server behaviour using a MemoryTransport
115
smart_server_suite = TestSuite()
126
smart_server_suite = loader.suiteClass()
116
127
adapt_to_smart_server = BzrDirTestProviderAdapter(
118
129
SmartTCPServer_for_testing,
119
130
ReadonlySmartTCPServer_for_testing,
120
[(RemoteBzrDirFormat())])
121
adapt_modules(test_bzrdir_implementations,
122
adapt_to_smart_server,
131
[(RemoteBzrDirFormat())],
132
name_suffix='-default')
133
adapt_modules(test_bzrdir_implementations,
134
adapt_to_smart_server,
137
adapt_to_smart_server = BzrDirTestProviderAdapter(
139
SmartTCPServer_for_testing_v2_only,
140
ReadonlySmartTCPServer_for_testing_v2_only,
141
[(RemoteBzrDirFormat())],
143
adapt_modules(test_bzrdir_implementations,
144
adapt_to_smart_server,
124
146
smart_server_suite)
125
147
result.addTests(smart_server_suite)