~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/commands/test_pull.py

  • Committer: Vincent Ladeuil
  • Date: 2007-06-06 13:52:02 UTC
  • mto: (2485.8.44 bzr.connection.sharing)
  • mto: This revision was merged to the branch mainline in revision 2646.
  • Revision ID: v.ladeuil+lp@free.fr-20070606135202-mqhxcv6z57uce434
Fix merge multiple connections. Test suite *not* passing (sftp
refactoring pending but unrelated to merge).

* bzrlib/builtins.py:
(cmd_merge.run): Fix the multiple connections bug by reusing the
tramsport used to check for a bundle and keep all other used
transports in possible_transports.
(_merge_helper): Add a possible_transports parameter for
reuse.

* bzrlib/transport/__init__.py:
(Transport._reuse_for): By default, Transports are not reusable.
(ConnectedTransport._reuse_for): ConnectedTransports are reusable
under certain conditions.
(_urlRE): Fix misleading group name.
(_try_transport_factories): Moved after get_transport (another use
case for moved lines). The do_catching_redirections was
incorrectly inserted between get_transport and
_try_transport_factories.

* bzrlib/tests/test_transport.py:
(TestReusedTransports.test_reuse_same_transport)
(TestReusedTransports.test_don_t_reuse_different_transport): Add
more tests.

* bzrlib/merge.py:
(_get_tree, Merger.set_other): Add a possible_transports parameter
for reuse.

* bzrlib/bzrdir.py:
(BzrDir.open_containing): Add a possible_transports parameter for
reuse.

* bzrlib/branch.py:
(Branch.open_containing): Add a possible_transports parameter for
reuse.

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
17
 
18
 
from bzrlib import (
19
 
    branch,
20
 
    builtins,
21
 
    tests,
22
 
    )
23
 
from bzrlib.tests import transport_util
24
 
 
25
 
 
26
 
class TestPull(transport_util.TestCaseWithConnectionHookedTransport):
 
18
from bzrlib.builtins import cmd_pull
 
19
from bzrlib.tests import StringIOWrapper
 
20
from bzrlib.tests.TransportUtil import TestCaseWithConnectionHookedTransport
 
21
 
 
22
class TestPull(TestCaseWithConnectionHookedTransport):
27
23
 
28
24
    def test_pull(self):
29
25
        wt1 = self.make_branch_and_tree('branch1')
30
26
        tip = wt1.commit('empty commit')
31
27
        wt2 = self.make_branch_and_tree('branch2')
32
28
 
33
 
        self.start_logging_connections()
34
 
 
35
 
        cmd = builtins.cmd_pull()
36
 
        # We don't care about the ouput but 'outf' should be defined
37
 
        cmd.outf = tests.StringIOWrapper()
38
 
        cmd.run(self.get_url('branch1'), directory='branch2')
39
 
        self.assertEquals(1, len(self.connections))
40
 
 
41
 
    def test_pull_with_bound_branch(self):
42
 
 
43
 
        master_wt = self.make_branch_and_tree('master')
44
 
        local_wt = self.make_branch_and_tree('local')
45
 
        master_branch = branch.Branch.open(self.get_url('master'))
46
 
        local_wt.branch.bind(master_branch)
47
 
 
48
 
        remote_wt = self.make_branch_and_tree('remote')
49
 
        remote_wt.commit('empty commit')
50
 
 
51
 
        self.start_logging_connections()
52
 
 
53
 
        pull = builtins.cmd_pull()
54
 
        # We don't care about the ouput but 'outf' should be defined
55
 
        pull.outf = tests.StringIOWrapper()
56
 
        pull.run(self.get_url('remote'), directory='local')
 
29
        self.install_hooks()
 
30
        self.addCleanup(self.reset_hooks)
 
31
 
 
32
        cmd = cmd_pull()
 
33
        # We don't care about the ouput but 'outf' should be defined
 
34
        cmd.outf = StringIOWrapper()
 
35
        cmd.run(self.get_url() + '/branch1', directory='branch2')
57
36
        self.assertEquals(1, len(self.connections))
58
37