~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_remote.py

  • Committer: Robert Collins
  • Date: 2009-02-26 04:25:00 UTC
  • mto: This revision was merged to the branch mainline in revision 4060.
  • Revision ID: robertc@robertcollins.net-20090226042500-xl9urv7zcbvkfjvs
New version of the BzrDir.find_repository verb supporting _network_name to support removing more _ensure_real calls.

Show diffs side-by-side

added added

removed removed

Lines of Context:
532
532
        self.assertEqual(network_name, format.network_name())
533
533
 
534
534
 
535
 
class TestBzrDirOpenRepository(tests.TestCase):
536
 
 
537
 
    def test_backwards_compat_1_2(self):
538
 
        transport = MemoryTransport()
539
 
        transport.mkdir('quack')
540
 
        transport = transport.clone('quack')
541
 
        client = FakeClient(transport.base)
 
535
class TestBzrDirOpenRepository(TestRemote):
 
536
 
 
537
    def get_repo_format(self):
 
538
        reference_bzrdir_format = bzrdir.format_registry.get('default')()
 
539
        return reference_bzrdir_format.repository_format
 
540
 
 
541
    def test_backwards_compat_1_2_3(self):
 
542
        # fallback all the way to the first version.
 
543
        reference_format = self.get_repo_format()
 
544
        network_name = reference_format.network_name()
 
545
        client = FakeClient('bzr://example.com/')
 
546
        client.add_unknown_method_response('BzrDir.find_repositoryV3')
542
547
        client.add_unknown_method_response('BzrDir.find_repositoryV2')
543
548
        client.add_success_response('ok', '', 'no', 'no')
 
549
        # A real repository instance will be created to determine the network
 
550
        # name.
 
551
        client.add_success_response_with_body(
 
552
            "Bazaar-NG meta directory, format 1\n", 'ok')
 
553
        client.add_success_response_with_body(
 
554
            reference_format.get_format_string(), 'ok')
 
555
        # PackRepository wants to do a stat
 
556
        client.add_success_response('stat', '0', '65535')
 
557
        remote_transport = RemoteTransport('bzr://example.com/quack/', medium=False,
 
558
            _client=client)
 
559
        bzrdir = RemoteBzrDir(remote_transport, remote.RemoteBzrDirFormat(),
 
560
            _client=client)
 
561
        repo = bzrdir.open_repository()
 
562
        self.assertEqual(
 
563
            [('call', 'BzrDir.find_repositoryV3', ('quack/',)),
 
564
             ('call', 'BzrDir.find_repositoryV2', ('quack/',)),
 
565
             ('call', 'BzrDir.find_repository', ('quack/',)),
 
566
             ('call_expecting_body', 'get', ('/quack/.bzr/branch-format',)),
 
567
             ('call_expecting_body', 'get', ('/quack/.bzr/repository/format',)),
 
568
             ('call', 'stat', ('/quack/.bzr/repository',)),
 
569
             ],
 
570
            client._calls)
 
571
        self.assertEqual(network_name, repo._format.network_name())
 
572
 
 
573
    def test_backwards_compat_2(self):
 
574
        # fallback to find_repositoryV2
 
575
        reference_format = self.get_repo_format()
 
576
        network_name = reference_format.network_name()
 
577
        client = FakeClient('bzr://example.com/')
 
578
        client.add_unknown_method_response('BzrDir.find_repositoryV3')
 
579
        client.add_success_response('ok', '', 'no', 'no', 'no')
 
580
        # A real repository instance will be created to determine the network
 
581
        # name.
 
582
        client.add_success_response_with_body(
 
583
            "Bazaar-NG meta directory, format 1\n", 'ok')
 
584
        client.add_success_response_with_body(
 
585
            reference_format.get_format_string(), 'ok')
 
586
        # PackRepository wants to do a stat
 
587
        client.add_success_response('stat', '0', '65535')
 
588
        remote_transport = RemoteTransport('bzr://example.com/quack/', medium=False,
 
589
            _client=client)
 
590
        bzrdir = RemoteBzrDir(remote_transport, remote.RemoteBzrDirFormat(),
 
591
            _client=client)
 
592
        repo = bzrdir.open_repository()
 
593
        self.assertEqual(
 
594
            [('call', 'BzrDir.find_repositoryV3', ('quack/',)),
 
595
             ('call', 'BzrDir.find_repositoryV2', ('quack/',)),
 
596
             ('call_expecting_body', 'get', ('/quack/.bzr/branch-format',)),
 
597
             ('call_expecting_body', 'get', ('/quack/.bzr/repository/format',)),
 
598
             ('call', 'stat', ('/quack/.bzr/repository',)),
 
599
             ],
 
600
            client._calls)
 
601
        self.assertEqual(network_name, repo._format.network_name())
 
602
 
 
603
    def test_current_server(self):
 
604
        reference_format = self.get_repo_format()
 
605
        network_name = reference_format.network_name()
 
606
        transport = MemoryTransport()
 
607
        transport.mkdir('quack')
 
608
        transport = transport.clone('quack')
 
609
        client = FakeClient(transport.base)
 
610
        client.add_success_response('ok', '', 'no', 'no', 'no', network_name)
544
611
        bzrdir = RemoteBzrDir(transport, remote.RemoteBzrDirFormat(),
545
612
            _client=client)
546
613
        repo = bzrdir.open_repository()
547
614
        self.assertEqual(
548
 
            [('call', 'BzrDir.find_repositoryV2', ('quack/',)),
549
 
             ('call', 'BzrDir.find_repository', ('quack/',))],
 
615
            [('call', 'BzrDir.find_repositoryV3', ('quack/',))],
550
616
            client._calls)
 
617
        self.assertEqual(network_name, repo._format.network_name())
551
618
 
552
619
 
553
620
class OldSmartClient(object):