/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_remote.py

Merge bzr.dev 4032. Resolve the new streaming fetch.

XXX: We cheat a bit for CHK fetching. CHK serializers happen to still
have legacy 'read_inventory_from_string' and 'write_inventory_to_string'
functions that convert the paged representation to a single-string XML
representation.

So when converting between formats, we just go down to the
whole-inventory XML form.

At least it works for now. Even if it is grossly innefficient.

Show diffs side-by-side

added added

removed removed

Lines of Context:
34
34
    pack,
35
35
    remote,
36
36
    repository,
 
37
    smart,
37
38
    tests,
38
39
    urlutils,
39
40
    )
259
260
        self.assertTrue(result)
260
261
 
261
262
 
 
263
class TestRemote(tests.TestCaseWithMemoryTransport):
 
264
    
 
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)
 
270
        def restoreVerb():
 
271
            request_handlers.register(verb, orig_method)
 
272
        self.addCleanup(restoreVerb)
 
273
 
 
274
 
262
275
class Test_ClientMedium_remote_path_from_transport(tests.TestCase):
263
276
    """Tests for the behaviour of client_medium.remote_path_from_transport."""
264
277
 
446
459
            RemoteBzrDirFormat.probe_transport, OldServerTransport())
447
460
 
448
461
 
 
462
class TestBzrDirCreateRepository(TestRemote):
 
463
 
 
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)
 
473
 
 
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(),
 
487
            _client=client)
 
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())
 
497
 
 
498
 
449
499
class TestBzrDirOpenRepository(tests.TestCase):
450
500
 
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(),
459
509
            _client=client)
1080
1130
        self.assertEqual('bar', t._get_credentials()[0])
1081
1131
 
1082
1132
 
1083
 
class TestRemoteRepository(tests.TestCase):
 
1133
class TestRemoteRepository(TestRemote):
1084
1134
    """Base for testing RemoteRepository protocol usage.
1085
1135
    
1086
1136
    These tests contain frozen requests and responses.  We want any changes to 
1423
1473
            client._calls)
1424
1474
 
1425
1475
 
 
1476
class TestRepositorySetMakeWorkingTrees(TestRemoteRepository):
 
1477
 
 
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)
 
1488
 
 
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'),
 
1494
            'success', ('ok',))
 
1495
        client.add_expected_call(
 
1496
            'Repository.set_make_working_trees', ('quack/', 'False'),
 
1497
            'success', ('ok',))
 
1498
        repo.set_make_working_trees(True)
 
1499
        repo.set_make_working_trees(False)
 
1500
 
 
1501
 
1426
1502
class TestRepositoryUnlock(TestRemoteRepository):
1427
1503
 
1428
1504
    def test_unlock(self):