138
177
input_test = TestTransportProviderAdapter(
139
178
"test_adapter_sets_transport_class")
140
179
suite = TransportTestProviderAdapter().adapt(input_test)
180
# tests are generated in collation order.
181
# XXX: but i'm not sure the order should really be part of the
182
# contract of the adapter, should it -- mbp 20060201
141
183
test_iter = iter(suite)
142
184
http_test = test_iter.next()
143
185
local_relpath_test = test_iter.next()
144
186
local_abspath_test = test_iter.next()
145
187
local_urlpath_test = test_iter.next()
146
188
memory_test = test_iter.next()
147
sftp_abs_test = test_iter.next()
148
sftp_homedir_test = test_iter.next()
149
sftp_sibling_abs_test = test_iter.next()
189
readonly_test = test_iter.next()
191
sftp_abs_test = test_iter.next()
192
sftp_homedir_test = test_iter.next()
193
sftp_sibling_abs_test = test_iter.next()
150
194
# ftp_test = test_iter.next()
195
# should now be at the end of the test
151
196
self.assertRaises(StopIteration, test_iter.next)
152
197
self.assertEqual(LocalTransport, local_relpath_test.transport_class)
153
198
self.assertEqual(LocalRelpathServer, local_relpath_test.transport_server)
158
203
self.assertEqual(LocalTransport, local_urlpath_test.transport_class)
159
204
self.assertEqual(LocalURLServer, local_urlpath_test.transport_server)
161
self.assertEqual(SFTPTransport, sftp_abs_test.transport_class)
162
self.assertEqual(SFTPAbsoluteServer, sftp_abs_test.transport_server)
163
self.assertEqual(SFTPTransport, sftp_homedir_test.transport_class)
164
self.assertEqual(SFTPHomeDirServer, sftp_homedir_test.transport_server)
165
self.assertEqual(SFTPTransport, sftp_sibling_abs_test.transport_class)
166
self.assertEqual(SFTPSiblingAbsoluteServer,
167
sftp_sibling_abs_test.transport_server)
207
self.assertEqual(SFTPTransport, sftp_abs_test.transport_class)
208
self.assertEqual(SFTPAbsoluteServer, sftp_abs_test.transport_server)
209
self.assertEqual(SFTPTransport, sftp_homedir_test.transport_class)
210
self.assertEqual(SFTPHomeDirServer, sftp_homedir_test.transport_server)
211
self.assertEqual(SFTPTransport, sftp_sibling_abs_test.transport_class)
212
self.assertEqual(SFTPSiblingAbsoluteServer,
213
sftp_sibling_abs_test.transport_server)
169
215
self.assertEqual(HttpTransport, http_test.transport_class)
170
216
self.assertEqual(HttpServer, http_test.transport_server)
182
228
"TestTransportProviderAdapter."
183
229
"test_adapter_sets_transport_class(LocalRelpathServer)",
184
230
local_relpath_test.id())
233
class TestBranchProviderAdapter(TestCase):
234
"""A group of tests that test the branch implementation test adapter."""
236
def test_adapted_tests(self):
237
# check that constructor parameters are passed through to the adapted
239
from bzrlib.branch import BranchTestProviderAdapter
240
input_test = TestBranchProviderAdapter(
241
"test_adapted_tests")
244
formats = [("c", "C"), ("d", "D")]
245
adapter = BranchTestProviderAdapter(server1, server2, formats)
246
suite = adapter.adapt(input_test)
247
tests = list(iter(suite))
248
self.assertEqual(2, len(tests))
249
self.assertEqual(tests[0].branch_format, formats[0][0])
250
self.assertEqual(tests[0].bzrdir_format, formats[0][1])
251
self.assertEqual(tests[0].transport_server, server1)
252
self.assertEqual(tests[0].transport_readonly_server, server2)
253
self.assertEqual(tests[1].branch_format, formats[1][0])
254
self.assertEqual(tests[1].bzrdir_format, formats[1][1])
255
self.assertEqual(tests[1].transport_server, server1)
256
self.assertEqual(tests[1].transport_readonly_server, server2)
259
class TestBzrDirProviderAdapter(TestCase):
260
"""A group of tests that test the bzr dir implementation test adapter."""
262
def test_adapted_tests(self):
263
# check that constructor parameters are passed through to the adapted
265
from bzrlib.bzrdir import BzrDirTestProviderAdapter
266
input_test = TestBzrDirProviderAdapter(
267
"test_adapted_tests")
271
adapter = BzrDirTestProviderAdapter(server1, server2, formats)
272
suite = adapter.adapt(input_test)
273
tests = list(iter(suite))
274
self.assertEqual(2, len(tests))
275
self.assertEqual(tests[0].bzrdir_format, formats[0])
276
self.assertEqual(tests[0].transport_server, server1)
277
self.assertEqual(tests[0].transport_readonly_server, server2)
278
self.assertEqual(tests[1].bzrdir_format, formats[1])
279
self.assertEqual(tests[1].transport_server, server1)
280
self.assertEqual(tests[1].transport_readonly_server, server2)
283
class TestRepositoryProviderAdapter(TestCase):
284
"""A group of tests that test the repository implementation test adapter."""
286
def test_adapted_tests(self):
287
# check that constructor parameters are passed through to the adapted
289
from bzrlib.repository import RepositoryTestProviderAdapter
290
input_test = TestRepositoryProviderAdapter(
291
"test_adapted_tests")
294
formats = [("c", "C"), ("d", "D")]
295
adapter = RepositoryTestProviderAdapter(server1, server2, formats)
296
suite = adapter.adapt(input_test)
297
tests = list(iter(suite))
298
self.assertEqual(2, len(tests))
299
self.assertEqual(tests[0].bzrdir_format, formats[0][1])
300
self.assertEqual(tests[0].repository_format, formats[0][0])
301
self.assertEqual(tests[0].transport_server, server1)
302
self.assertEqual(tests[0].transport_readonly_server, server2)
303
self.assertEqual(tests[1].bzrdir_format, formats[1][1])
304
self.assertEqual(tests[1].repository_format, formats[1][0])
305
self.assertEqual(tests[1].transport_server, server1)
306
self.assertEqual(tests[1].transport_readonly_server, server2)
309
class TestWorkingTreeProviderAdapter(TestCase):
310
"""A group of tests that test the workingtree implementation test adapter."""
312
def test_adapted_tests(self):
313
# check that constructor parameters are passed through to the adapted
315
from bzrlib.workingtree import WorkingTreeTestProviderAdapter
316
input_test = TestWorkingTreeProviderAdapter(
317
"test_adapted_tests")
320
formats = [("c", "C"), ("d", "D")]
321
adapter = WorkingTreeTestProviderAdapter(server1, server2, formats)
322
suite = adapter.adapt(input_test)
323
tests = list(iter(suite))
324
self.assertEqual(2, len(tests))
325
self.assertEqual(tests[0].workingtree_format, formats[0][0])
326
self.assertEqual(tests[0].bzrdir_format, formats[0][1])
327
self.assertEqual(tests[0].transport_server, server1)
328
self.assertEqual(tests[0].transport_readonly_server, server2)
329
self.assertEqual(tests[1].workingtree_format, formats[1][0])
330
self.assertEqual(tests[1].bzrdir_format, formats[1][1])
331
self.assertEqual(tests[1].transport_server, server1)
332
self.assertEqual(tests[1].transport_readonly_server, server2)
335
class TestTestCaseWithTransport(TestCaseWithTransport):
336
"""Tests for the convenience functions TestCaseWithTransport introduces."""
338
def test_get_readonly_url_none(self):
339
from bzrlib.transport import get_transport
340
from bzrlib.transport.memory import MemoryServer
341
from bzrlib.transport.readonly import ReadonlyTransportDecorator
342
self.transport_server = MemoryServer
343
self.transport_readonly_server = None
344
# calling get_readonly_transport() constructs a decorator on the url
346
url = self.get_readonly_url()
347
url2 = self.get_readonly_url('foo/bar')
348
t = get_transport(url)
349
t2 = get_transport(url2)
350
self.failUnless(isinstance(t, ReadonlyTransportDecorator))
351
self.failUnless(isinstance(t2, ReadonlyTransportDecorator))
352
self.assertEqual(t2.base[:-1], t.abspath('foo/bar'))
354
def test_get_readonly_url_http(self):
355
from bzrlib.transport import get_transport
356
from bzrlib.transport.local import LocalRelpathServer
357
from bzrlib.transport.http import HttpServer, HttpTransport
358
self.transport_server = LocalRelpathServer
359
self.transport_readonly_server = HttpServer
360
# calling get_readonly_transport() gives us a HTTP server instance.
361
url = self.get_readonly_url()
362
url2 = self.get_readonly_url('foo/bar')
363
t = get_transport(url)
364
t2 = get_transport(url2)
365
self.failUnless(isinstance(t, HttpTransport))
366
self.failUnless(isinstance(t2, HttpTransport))
367
self.assertEqual(t2.base[:-1], t.abspath('foo/bar'))
370
class TestChrootedTest(ChrootedTestCase):
372
def test_root_is_root(self):
373
from bzrlib.transport import get_transport
374
t = get_transport(self.get_readonly_url())
376
self.assertEqual(url, t.clone('..').base)