/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

  • Committer: Vincent Ladeuil
  • Date: 2010-01-25 15:55:48 UTC
  • mto: (4985.1.4 add-attr-cleanup)
  • mto: This revision was merged to the branch mainline in revision 4988.
  • Revision ID: v.ladeuil+lp@free.fr-20100125155548-0l352pujvt5bzl5e
Deploy addAttrCleanup on the whole test suite.

Several use case worth mentioning:

- setting a module or any other object attribute is the majority
by far. In some cases the setting itself is deferred but most of
the time we want to set at the same time we add the cleanup.

- there multiple occurrences of protecting hooks or ui factory
which are now useless (the test framework takes care of that now),

- there was some lambda uses that can now be avoided.

That first cleanup already simplifies things a lot.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006-2010 Canonical Ltd
 
1
# Copyright (C) 2006, 2007, 2008, 2009 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
54
54
    )
55
55
from bzrlib.repofmt import groupcompress_repo, pack_repo
56
56
from bzrlib.revision import NULL_REVISION
57
 
from bzrlib.smart import medium
 
57
from bzrlib.smart import server, medium
58
58
from bzrlib.smart.client import _SmartClient
59
59
from bzrlib.smart.repository import SmartServerRepositoryGetParentMap
60
60
from bzrlib.tests import (
61
61
    condition_isinstance,
62
62
    split_suite_by_condition,
63
63
    multiply_tests,
64
 
    test_server,
65
64
    )
66
65
from bzrlib.transport import get_transport
67
66
from bzrlib.transport.memory import MemoryTransport
76
75
        standard_tests, condition_isinstance(BasicRemoteObjectTests))
77
76
    smart_server_version_scenarios = [
78
77
        ('HPSS-v2',
79
 
         {'transport_server': test_server.SmartTCPServer_for_testing_v2_only}),
 
78
            {'transport_server': server.SmartTCPServer_for_testing_v2_only}),
80
79
        ('HPSS-v3',
81
 
         {'transport_server': test_server.SmartTCPServer_for_testing})]
 
80
            {'transport_server': server.SmartTCPServer_for_testing})]
82
81
    return multiply_tests(to_adapt, smart_server_version_scenarios, result)
83
82
 
84
83
 
418
417
        # Calling _remember_remote_is_before again with a lower value works.
419
418
        client_medium._remember_remote_is_before((1, 5))
420
419
        self.assertTrue(client_medium._is_remote_before((1, 5)))
421
 
        # If you call _remember_remote_is_before with a higher value it logs a
422
 
        # warning, and continues to remember the lower value.
423
 
        self.assertNotContainsRe(self.get_log(), '_remember_remote_is_before')
424
 
        client_medium._remember_remote_is_before((1, 9))
425
 
        self.assertContainsRe(self.get_log(), '_remember_remote_is_before')
426
 
        self.assertTrue(client_medium._is_remote_before((1, 5)))
 
420
        # You cannot call _remember_remote_is_before with a larger value.
 
421
        self.assertRaises(
 
422
            AssertionError, client_medium._remember_remote_is_before, (1, 9))
427
423
 
428
424
 
429
425
class TestBzrDirCloningMetaDir(TestRemote):
531
527
        self.assertIsInstance(bd, RemoteBzrDir)
532
528
        self.assertFinished(client)
533
529
 
534
 
    def test_backwards_compat_hpss_v2(self):
535
 
        client, transport = self.make_fake_client_and_transport()
536
 
        # Monkey-patch fake client to simulate real-world behaviour with v2
537
 
        # server: upon first RPC call detect the protocol version, and because
538
 
        # the version is 2 also do _remember_remote_is_before((1, 6)) before
539
 
        # continuing with the RPC.
540
 
        orig_check_call = client._check_call
541
 
        def check_call(method, args):
542
 
            client._medium._protocol_version = 2
543
 
            client._medium._remember_remote_is_before((1, 6))
544
 
            client._check_call = orig_check_call
545
 
            client._check_call(method, args)
546
 
        client._check_call = check_call
547
 
        client.add_expected_call(
548
 
            'BzrDir.open_2.1', ('quack/',), 'unknown', ('BzrDir.open_2.1',))
549
 
        client.add_expected_call(
550
 
            'BzrDir.open', ('quack/',), 'success', ('yes',))
551
 
        bd = RemoteBzrDir(transport, remote.RemoteBzrDirFormat(),
552
 
            _client=client, _force_probe=True)
553
 
        self.assertIsInstance(bd, RemoteBzrDir)
554
 
        self.assertFinished(client)
555
 
 
556
530
 
557
531
class TestBzrDirOpenBranch(TestRemote):
558
532
 
1248
1222
            len(branch.repository._real_repository._fallback_repositories))
1249
1223
 
1250
1224
    def test_get_stacked_on_real_branch(self):
1251
 
        base_branch = self.make_branch('base')
1252
 
        stacked_branch = self.make_branch('stacked')
 
1225
        base_branch = self.make_branch('base', format='1.6')
 
1226
        stacked_branch = self.make_branch('stacked', format='1.6')
1253
1227
        stacked_branch.set_stacked_on_url('../base')
1254
1228
        reference_format = self.get_repo_format()
1255
1229
        network_name = reference_format.network_name()
1260
1234
            'success', ('branch', branch_network_name))
1261
1235
        client.add_expected_call(
1262
1236
            'BzrDir.find_repositoryV3', ('stacked/',),
1263
 
            'success', ('ok', '', 'yes', 'no', 'yes', network_name))
 
1237
            'success', ('ok', '', 'no', 'no', 'yes', network_name))
1264
1238
        # called twice, once from constructor and then again by us
1265
1239
        client.add_expected_call(
1266
1240
            'Branch.get_stacked_on_url', ('stacked/',),
2034
2008
        self.assertLength(1, self.hpss_calls)
2035
2009
 
2036
2010
    def disableExtraResults(self):
2037
 
        self.overrideAttr(SmartServerRepositoryGetParentMap,
2038
 
                          'no_extra_results', True)
 
2011
        self.addAttrCleanup(SmartServerRepositoryGetParentMap,
 
2012
                            'no_extra_results')
 
2013
        SmartServerRepositoryGetParentMap.no_extra_results = True
2039
2014
 
2040
2015
    def test_null_cached_missing_and_stop_key(self):
2041
2016
        self.setup_smart_server_with_call_log()
2100
2075
 
2101
2076
    def test_allows_new_revisions(self):
2102
2077
        """get_parent_map's results can be updated by commit."""
2103
 
        smart_server = test_server.SmartTCPServer_for_testing()
 
2078
        smart_server = server.SmartTCPServer_for_testing()
2104
2079
        self.start_server(smart_server)
2105
2080
        self.make_branch('branch')
2106
2081
        branch = Branch.open(smart_server.get_url() + '/branch')
2216
2191
        """
2217
2192
        # Make a repo with a fallback repo, both using a FakeClient.
2218
2193
        format = remote.response_tuple_to_repo_format(
2219
 
            ('yes', 'no', 'yes', self.get_repo_format().network_name()))
 
2194
            ('yes', 'no', 'yes', 'fake-network-name'))
2220
2195
        repo, client = self.setup_fake_client_and_repository('quack')
2221
2196
        repo._format = format
2222
2197
        fallback_repo, ignored = self.setup_fake_client_and_repository(
2223
2198
            'fallback')
2224
2199
        fallback_repo._client = client
2225
 
        fallback_repo._format = format
2226
2200
        repo.add_fallback_repository(fallback_repo)
2227
2201
        # First the client should ask the primary repo
2228
2202
        client.add_expected_call(
2649
2623
    """RemoteRepository.copy_content_into optimizations"""
2650
2624
 
2651
2625
    def test_copy_content_remote_to_local(self):
2652
 
        self.transport_server = test_server.SmartTCPServer_for_testing
 
2626
        self.transport_server = server.SmartTCPServer_for_testing
2653
2627
        src_repo = self.make_repository('repo1')
2654
2628
        src_repo = repository.Repository.open(self.get_url('repo1'))
2655
2629
        # At the moment the tarball-based copy_content_into can't write back
2968
2942
        stacked_branch = self.make_branch('stacked', format='1.9')
2969
2943
        stacked_branch.set_stacked_on_url('../base')
2970
2944
        # start a server looking at this
2971
 
        smart_server = test_server.SmartTCPServer_for_testing()
 
2945
        smart_server = server.SmartTCPServer_for_testing()
2972
2946
        self.start_server(smart_server)
2973
2947
        remote_bzrdir = BzrDir.open(smart_server.get_url() + '/stacked')
2974
2948
        # can get its branch and repository
3130
3104
        super(TestRemoteBranchEffort, self).setUp()
3131
3105
        # Create a smart server that publishes whatever the backing VFS server
3132
3106
        # does.
3133
 
        self.smart_server = test_server.SmartTCPServer_for_testing()
 
3107
        self.smart_server = server.SmartTCPServer_for_testing()
3134
3108
        self.start_server(self.smart_server, self.get_server())
3135
3109
        # Log all HPSS calls into self.hpss_calls.
3136
3110
        _SmartClient.hooks.install_named_hook(