474
474
self.assertFinished(client)
477
class TestBzrDirOpen(TestRemote):
479
def make_fake_client_and_transport(self, path='quack'):
480
transport = MemoryTransport()
481
transport.mkdir(path)
482
transport = transport.clone(path)
483
client = FakeClient(transport.base)
484
return client, transport
486
def test_absent(self):
487
client, transport = self.make_fake_client_and_transport()
488
client.add_expected_call(
489
'BzrDir.open_2.1', ('quack/',), 'success', ('no',))
490
self.assertRaises(errors.NotBranchError, RemoteBzrDir, transport,
491
remote.RemoteBzrDirFormat(), _client=client, _force_probe=True)
492
self.assertFinished(client)
494
def test_present_without_workingtree(self):
495
client, transport = self.make_fake_client_and_transport()
496
client.add_expected_call(
497
'BzrDir.open_2.1', ('quack/',), 'success', ('yes', 'no'))
498
bd = RemoteBzrDir(transport, remote.RemoteBzrDirFormat(),
499
_client=client, _force_probe=True)
500
self.assertIsInstance(bd, RemoteBzrDir)
501
self.assertFalse(bd.has_workingtree())
502
self.assertRaises(errors.NoWorkingTree, bd.open_workingtree)
503
self.assertFinished(client)
505
def test_present_with_workingtree(self):
506
client, transport = self.make_fake_client_and_transport()
507
client.add_expected_call(
508
'BzrDir.open_2.1', ('quack/',), 'success', ('yes', 'yes'))
509
bd = RemoteBzrDir(transport, remote.RemoteBzrDirFormat(),
510
_client=client, _force_probe=True)
511
self.assertIsInstance(bd, RemoteBzrDir)
512
self.assertTrue(bd.has_workingtree())
513
self.assertRaises(errors.NotLocalUrl, bd.open_workingtree)
514
self.assertFinished(client)
516
def test_backwards_compat(self):
517
client, transport = self.make_fake_client_and_transport()
518
client.add_expected_call(
519
'BzrDir.open_2.1', ('quack/',), 'unknown', ('BzrDir.open_2.1',))
520
client.add_expected_call(
521
'BzrDir.open', ('quack/',), 'success', ('yes',))
522
bd = RemoteBzrDir(transport, remote.RemoteBzrDirFormat(),
523
_client=client, _force_probe=True)
524
self.assertIsInstance(bd, RemoteBzrDir)
525
self.assertFinished(client)
477
528
class TestBzrDirOpenBranch(TestRemote):
479
530
def test_backwards_compat(self):
689
740
# fallback all the way to the first version.
690
741
reference_format = self.get_repo_format()
691
742
network_name = reference_format.network_name()
692
client = FakeClient('bzr://example.com/')
743
server_url = 'bzr://example.com/'
744
self.permit_url(server_url)
745
client = FakeClient(server_url)
693
746
client.add_unknown_method_response('BzrDir.find_repositoryV3')
694
747
client.add_unknown_method_response('BzrDir.find_repositoryV2')
695
748
client.add_success_response('ok', '', 'no', 'no')
701
754
reference_format.get_format_string(), 'ok')
702
755
# PackRepository wants to do a stat
703
756
client.add_success_response('stat', '0', '65535')
704
remote_transport = RemoteTransport('bzr://example.com/quack/', medium=False,
757
remote_transport = RemoteTransport(server_url + 'quack/', medium=False,
706
759
bzrdir = RemoteBzrDir(remote_transport, remote.RemoteBzrDirFormat(),
721
774
# fallback to find_repositoryV2
722
775
reference_format = self.get_repo_format()
723
776
network_name = reference_format.network_name()
724
client = FakeClient('bzr://example.com/')
777
server_url = 'bzr://example.com/'
778
self.permit_url(server_url)
779
client = FakeClient(server_url)
725
780
client.add_unknown_method_response('BzrDir.find_repositoryV3')
726
781
client.add_success_response('ok', '', 'no', 'no', 'no')
727
782
# A real repository instance will be created to determine the network
732
787
reference_format.get_format_string(), 'ok')
733
788
# PackRepository wants to do a stat
734
789
client.add_success_response('stat', '0', '65535')
735
remote_transport = RemoteTransport('bzr://example.com/quack/', medium=False,
790
remote_transport = RemoteTransport(server_url + 'quack/', medium=False,
737
792
bzrdir = RemoteBzrDir(remote_transport, remote.RemoteBzrDirFormat(),