~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_checkout.py

(jelmer) Support upgrading between the 2a and development-colo formats.
 (Jelmer Vernooij)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006 Canonical Ltd
 
1
# Copyright (C) 2006, 2007, 2009, 2010 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
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
17
"""Tests for the 'checkout' CLI command."""
18
18
 
28
28
    errors,
29
29
    workingtree,
30
30
    )
31
 
from bzrlib.tests.blackbox import ExternalBase
32
 
from bzrlib.tests import HardlinkFeature
33
 
 
34
 
 
35
 
class TestCheckout(ExternalBase):
36
 
    
 
31
from bzrlib.tests import (
 
32
    TestCaseWithTransport,
 
33
    )
 
34
from bzrlib.tests import (
 
35
    KnownFailure,
 
36
    )
 
37
from bzrlib.tests.features import (
 
38
    HardlinkFeature,
 
39
    )
 
40
 
 
41
 
 
42
class TestCheckout(TestCaseWithTransport):
 
43
 
37
44
    def setUp(self):
38
45
        super(TestCheckout, self).setUp()
39
46
        tree = bzrdir.BzrDir.create_standalone_workingtree('branch')
59
66
                         result.open_branch().bzrdir.root_transport.base)
60
67
 
61
68
    def test_checkout_dash_r(self):
62
 
        self.run_bzr('checkout -r -2 branch checkout')
 
69
        out, err = self.run_bzr(['checkout', '-r', '-2', 'branch', 'checkout'])
63
70
        # the working tree should now be at revision '1' with the content
64
71
        # from 1.
65
72
        result = bzrdir.BzrDir.open('checkout')
66
73
        self.assertEqual(['1'], result.open_workingtree().get_parent_ids())
67
 
        self.failIfExists('checkout/added_in_2')
 
74
        self.assertPathDoesNotExist('checkout/added_in_2')
68
75
 
69
76
    def test_checkout_light_dash_r(self):
70
 
        self.run_bzr('checkout --lightweight -r -2 branch checkout')
 
77
        out, err = self.run_bzr(['checkout','--lightweight', '-r', '-2',
 
78
            'branch', 'checkout'])
71
79
        # the working tree should now be at revision '1' with the content
72
80
        # from 1.
73
81
        result = bzrdir.BzrDir.open('checkout')
74
82
        self.assertEqual(['1'], result.open_workingtree().get_parent_ids())
75
 
        self.failIfExists('checkout/added_in_2')
 
83
        self.assertPathDoesNotExist('checkout/added_in_2')
76
84
 
77
85
    def test_checkout_reconstitutes_working_trees(self):
78
86
        # doing a 'bzr checkout' in the directory of a branch with no tree
118
126
            cmd.append('--lightweight')
119
127
        self.run_bzr('checkout source target')
120
128
        # files with unique content should be moved
121
 
        self.failUnlessExists('target/file2.moved')
 
129
        self.assertPathExists('target/file2.moved')
122
130
        # files with content matching tree should not be moved
123
 
        self.failIfExists('target/file1.moved')
 
131
        self.assertPathDoesNotExist('target/file1.moved')
124
132
 
125
133
    def test_checkout_existing_dir_heavy(self):
126
134
        self._test_checkout_existing_dir(False)
150
158
        self.build_tree(['source/file1'])
151
159
        source.add('file1')
152
160
        source.commit('added file')
153
 
        self.run_bzr(['checkout', 'source', 'target', '--files-from', 'source',
154
 
                      '--hardlink'])
 
161
        out, err = self.run_bzr('checkout source target --hardlink')
155
162
        source_stat = os.stat('source/file1')
156
163
        target_stat = os.stat('target/file1')
157
164
        self.assertEqual(source_stat, target_stat)
 
165
 
 
166
    def test_checkout_hardlink_files_from(self):
 
167
        self.requireFeature(HardlinkFeature)
 
168
        source = self.make_branch_and_tree('source')
 
169
        self.build_tree(['source/file1'])
 
170
        source.add('file1')
 
171
        source.commit('added file')
 
172
        source.bzrdir.sprout('second')
 
173
        out, err = self.run_bzr('checkout source target --hardlink'
 
174
                                ' --files-from second')
 
175
        second_stat = os.stat('second/file1')
 
176
        target_stat = os.stat('target/file1')
 
177
        self.assertEqual(second_stat, target_stat)