259
260
self.assertTrue(result)
263
class TestRemote(tests.TestCaseWithMemoryTransport):
265
def disable_verb(self, verb):
266
"""Disable a verb for one test."""
267
request_handlers = smart.request.request_handlers
268
orig_method = request_handlers.get(verb)
269
request_handlers.remove(verb)
271
request_handlers.register(verb, orig_method)
272
self.addCleanup(restoreVerb)
262
275
class Test_ClientMedium_remote_path_from_transport(tests.TestCase):
263
276
"""Tests for the behaviour of client_medium.remote_path_from_transport."""
446
459
RemoteBzrDirFormat.probe_transport, OldServerTransport())
462
class TestBzrDirCreateRepository(TestRemote):
464
def test_backwards_compat(self):
465
self.setup_smart_server_with_call_log()
466
bzrdir = self.make_bzrdir('.')
467
self.reset_smart_call_log()
468
self.disable_verb('BzrDir.create_repository')
469
repo = bzrdir.create_repository()
470
create_repo_call_count = len([call for call in self.hpss_calls if
471
call[0].method == 'BzrDir.create_repository'])
472
self.assertEqual(1, create_repo_call_count)
474
def test_current_server(self):
475
transport = self.get_transport('.')
476
transport = transport.clone('quack')
477
self.make_bzrdir('quack')
478
client = FakeClient(transport.base)
479
reference_bzrdir_format = bzrdir.format_registry.get('default')()
480
reference_format = reference_bzrdir_format.repository_format
481
network_name = reference_format.network_name()
482
client.add_expected_call(
483
'BzrDir.create_repository', ('quack/',
484
'Bazaar pack repository format 1 (needs bzr 0.92)\n', 'False'),
485
'success', ('ok', 'no', 'no', 'no', network_name))
486
a_bzrdir = RemoteBzrDir(transport, remote.RemoteBzrDirFormat(),
488
repo = a_bzrdir.create_repository()
489
# We should have got a remote repository
490
self.assertIsInstance(repo, remote.RemoteRepository)
491
# its format should have the settings from the response
492
format = repo._format
493
self.assertFalse(format.rich_root_data)
494
self.assertFalse(format.supports_tree_reference)
495
self.assertFalse(format.supports_external_lookups)
496
self.assertEqual(network_name, format.network_name())
449
499
class TestBzrDirOpenRepository(tests.TestCase):
451
501
def test_backwards_compat_1_2(self):
453
503
transport.mkdir('quack')
454
504
transport = transport.clone('quack')
455
505
client = FakeClient(transport.base)
456
client.add_unknown_method_response('RemoteRepository.find_repositoryV2')
506
client.add_unknown_method_response('BzrDir.find_repositoryV2')
457
507
client.add_success_response('ok', '', 'no', 'no')
458
508
bzrdir = RemoteBzrDir(transport, remote.RemoteBzrDirFormat(),
1080
1130
self.assertEqual('bar', t._get_credentials()[0])
1083
class TestRemoteRepository(tests.TestCase):
1133
class TestRemoteRepository(TestRemote):
1084
1134
"""Base for testing RemoteRepository protocol usage.
1086
1136
These tests contain frozen requests and responses. We want any changes to
1476
class TestRepositorySetMakeWorkingTrees(TestRemoteRepository):
1478
def test_backwards_compat(self):
1479
self.setup_smart_server_with_call_log()
1480
repo = self.make_repository('.')
1481
self.reset_smart_call_log()
1482
verb = 'Repository.set_make_working_trees'
1483
self.disable_verb(verb)
1484
repo.set_make_working_trees(True)
1485
call_count = len([call for call in self.hpss_calls if
1486
call[0].method == verb])
1487
self.assertEqual(1, call_count)
1489
def test_current(self):
1490
transport_path = 'quack'
1491
repo, client = self.setup_fake_client_and_repository(transport_path)
1492
client.add_expected_call(
1493
'Repository.set_make_working_trees', ('quack/', 'True'),
1495
client.add_expected_call(
1496
'Repository.set_make_working_trees', ('quack/', 'False'),
1498
repo.set_make_working_trees(True)
1499
repo.set_make_working_trees(False)
1426
1502
class TestRepositoryUnlock(TestRemoteRepository):
1428
1504
def test_unlock(self):