~bzr-pqm/bzr/bzr.dev

2485.8.6 by Vincent Ladeuil
Fix the 'FtpServer' so that it can handle full bzr commands.
1
# Copyright (C) 2007 Canonical Ltd
2
#
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; either version 2 of the License, or
6
# (at your option) any later version.
7
#
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
# GNU General Public License for more details.
12
#
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
4183.7.1 by Sabin Iacob
update FSF mailing address
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
2485.8.6 by Vincent Ladeuil
Fix the 'FtpServer' so that it can handle full bzr commands.
16
17
3221.19.1 by Ian Clatworthy
refactor cmd_push to use a helper function
18
from bzrlib import tests
2485.8.6 by Vincent Ladeuil
Fix the 'FtpServer' so that it can handle full bzr commands.
19
from bzrlib.builtins import cmd_push
2485.8.59 by Vincent Ladeuil
Update from review comments.
20
from bzrlib.tests.transport_util import TestCaseWithConnectionHookedTransport
21
2485.8.6 by Vincent Ladeuil
Fix the 'FtpServer' so that it can handle full bzr commands.
22
23
class TestPush(TestCaseWithConnectionHookedTransport):
24
25
    def test_push(self):
26
        self.make_branch_and_tree('branch')
2485.8.36 by Vincent Ladeuil
Fix test suite to provide a better debugging experience.
27
2814.11.1 by Vincent Ladeuil
Renamed install_hooks to start_logging_connections (as per Martin suggestion).
28
        self.start_logging_connections()
2485.8.36 by Vincent Ladeuil
Fix test suite to provide a better debugging experience.
29
2485.8.6 by Vincent Ladeuil
Fix the 'FtpServer' so that it can handle full bzr commands.
30
        cmd = cmd_push()
3221.19.1 by Ian Clatworthy
refactor cmd_push to use a helper function
31
        # We don't care about the ouput but 'outf' should be defined
32
        cmd.outf = tests.StringIOWrapper()
2485.8.59 by Vincent Ladeuil
Update from review comments.
33
        cmd.run(self.get_url('remote'), directory='branch')
2485.8.6 by Vincent Ladeuil
Fix the 'FtpServer' so that it can handle full bzr commands.
34
        self.assertEquals(1, len(self.connections))
3928.3.2 by John Arbash Meinel
Track down the other cause of us connecting multiple times.
35
36
    def test_push_onto_stacked(self):
37
        self.make_branch_and_tree('base', format='1.9')
38
        self.make_branch_and_tree('source', format='1.9')
39
40
        self.start_logging_connections()
41
42
        cmd = cmd_push()
43
        cmd.outf = tests.StringIOWrapper()
44
        cmd.run(self.get_url('remote'), directory='source',
45
                stacked_on=self.get_url('base'))
46
        self.assertEqual(1, len(self.connections))