/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
2052.3.2 by John Arbash Meinel
Change Copyright .. by Canonical to Copyright ... Canonical
1
# Copyright (C) 2006 Canonical Ltd
1846.1.1 by Wouter van Heyst
Don't fail on 'bzr mv', extract move tests from OldTests.
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
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
17
"""Test for 'bzr mv'"""
18
19
import os
20
2091.3.6 by Aaron Bentley
Add symlink test guards
21
from bzrlib import (
22
    osutils,
23
    workingtree,
2158.2.1 by v.ladeuil+lp at free
Windows tests cleanup.
24
    )
2220.1.14 by Aaron Bentley
Cleanup formatting and error handling
25
2158.2.1 by v.ladeuil+lp at free
Windows tests cleanup.
26
from bzrlib.tests import (
27
    TestCaseWithTransport,
28
    TestSkipped,
29
    )
2220.1.14 by Aaron Bentley
Cleanup formatting and error handling
30
1846.1.1 by Wouter van Heyst
Don't fail on 'bzr mv', extract move tests from OldTests.
31
32
class TestMove(TestCaseWithTransport):
33
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
34
    def assertInWorkingTree(self,path):
35
        tree = workingtree.WorkingTree.open('.')
2220.1.13 by Marius Kruger
Remove assertNone
36
        self.assertIsNot(tree.path2id(path), None,
37
            path+' not in working tree.')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
38
39
    def assertNotInWorkingTree(self,path):
40
        tree = workingtree.WorkingTree.open('.')
2220.1.13 by Marius Kruger
Remove assertNone
41
        self.assertIs(tree.path2id(path), None, path+' in working tree.')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
42
43
    def assertMoved(self,from_path,to_path):
44
        """Assert that to_path is existing and versioned but from_path not. """
45
        self.failIfExists(from_path)
46
        self.assertNotInWorkingTree(from_path)
47
48
        self.failUnlessExists(to_path)
49
        self.assertInWorkingTree(to_path)
50
1846.1.1 by Wouter van Heyst
Don't fail on 'bzr mv', extract move tests from OldTests.
51
    def test_mv_modes(self):
52
        """Test two modes of operation for mv"""
53
        tree = self.make_branch_and_tree('.')
54
        files = self.build_tree(['a', 'c', 'subdir/'])
55
        tree.add(['a', 'c', 'subdir'])
56
57
        self.run_bzr('mv', 'a', 'b')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
58
        self.assertMoved('a','b')
1846.1.2 by Wouter van Heyst
test mv more rigorously
59
1846.1.1 by Wouter van Heyst
Don't fail on 'bzr mv', extract move tests from OldTests.
60
        self.run_bzr('mv', 'b', 'subdir')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
61
        self.assertMoved('b','subdir/b')
1846.1.2 by Wouter van Heyst
test mv more rigorously
62
1846.1.1 by Wouter van Heyst
Don't fail on 'bzr mv', extract move tests from OldTests.
63
        self.run_bzr('mv', 'subdir/b', 'a')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
64
        self.assertMoved('subdir/b','a')
1846.1.2 by Wouter van Heyst
test mv more rigorously
65
1846.1.1 by Wouter van Heyst
Don't fail on 'bzr mv', extract move tests from OldTests.
66
        self.run_bzr('mv', 'a', 'c', 'subdir')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
67
        self.assertMoved('a','subdir/a')
68
        self.assertMoved('c','subdir/c')
1846.1.2 by Wouter van Heyst
test mv more rigorously
69
1846.1.1 by Wouter van Heyst
Don't fail on 'bzr mv', extract move tests from OldTests.
70
        self.run_bzr('mv', 'subdir/a', 'subdir/newa')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
71
        self.assertMoved('subdir/a','subdir/newa')
1846.1.1 by Wouter van Heyst
Don't fail on 'bzr mv', extract move tests from OldTests.
72
73
    def test_mv_unversioned(self):
74
        self.build_tree(['unversioned.txt'])
75
        self.run_bzr_error(
2206.1.8 by Marius Kruger
Converted move/rename error messages to show source => target.
76
            ["^bzr: ERROR: Could not rename unversioned.txt => elsewhere."
77
             " .*unversioned.txt is not versioned$"],
1846.1.1 by Wouter van Heyst
Don't fail on 'bzr mv', extract move tests from OldTests.
78
            'mv', 'unversioned.txt', 'elsewhere')
79
80
    def test_mv_nonexisting(self):
81
        self.run_bzr_error(
2206.1.8 by Marius Kruger
Converted move/rename error messages to show source => target.
82
            ["^bzr: ERROR: Could not rename doesnotexist => somewhereelse."
83
             " .*doesnotexist is not versioned$"],
1846.1.1 by Wouter van Heyst
Don't fail on 'bzr mv', extract move tests from OldTests.
84
            'mv', 'doesnotexist', 'somewhereelse')
85
86
    def test_mv_unqualified(self):
87
        self.run_bzr_error(['^bzr: ERROR: missing file argument$'], 'mv')
2220.1.14 by Aaron Bentley
Cleanup formatting and error handling
88
        
1846.1.1 by Wouter van Heyst
Don't fail on 'bzr mv', extract move tests from OldTests.
89
    def test_mv_invalid(self):
90
        tree = self.make_branch_and_tree('.')
91
        self.build_tree(['test.txt', 'sub1/'])
92
        tree.add(['test.txt'])
93
94
        self.run_bzr_error(
2206.1.9 by Marius Kruger
* Change move/rename errors yet again
95
            ["^bzr: ERROR: Could not move to sub1: sub1 is not versioned$"],
1846.1.2 by Wouter van Heyst
test mv more rigorously
96
            'mv', 'test.txt', 'sub1')
2206.1.7 by Marius Kruger
* errors
97
1846.1.1 by Wouter van Heyst
Don't fail on 'bzr mv', extract move tests from OldTests.
98
        self.run_bzr_error(
2206.1.9 by Marius Kruger
* Change move/rename errors yet again
99
            ["^bzr: ERROR: Could not move test.txt => .*hello.txt: "
100
             "sub1 is not versioned$"],
1846.1.2 by Wouter van Heyst
test mv more rigorously
101
            'mv', 'test.txt', 'sub1/hello.txt')
2220.1.14 by Aaron Bentley
Cleanup formatting and error handling
102
        
1846.1.1 by Wouter van Heyst
Don't fail on 'bzr mv', extract move tests from OldTests.
103
    def test_mv_dirs(self):
104
        tree = self.make_branch_and_tree('.')
105
        self.build_tree(['hello.txt', 'sub1/'])
106
        tree.add(['hello.txt', 'sub1'])
107
1846.1.2 by Wouter van Heyst
test mv more rigorously
108
        self.run_bzr('mv', 'sub1', 'sub2')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
109
        self.assertMoved('sub1','sub2')
110
1846.1.2 by Wouter van Heyst
test mv more rigorously
111
        self.run_bzr('mv', 'hello.txt', 'sub2')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
112
        self.assertMoved('hello.txt','sub2/hello.txt')
1846.1.1 by Wouter van Heyst
Don't fail on 'bzr mv', extract move tests from OldTests.
113
114
        self.build_tree(['sub1/'])
115
        tree.add(['sub1'])
1846.1.2 by Wouter van Heyst
test mv more rigorously
116
        self.run_bzr('mv', 'sub2/hello.txt', 'sub1')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
117
        self.assertMoved('sub2/hello.txt','sub1/hello.txt')
118
1846.1.2 by Wouter van Heyst
test mv more rigorously
119
        self.run_bzr('mv', 'sub2', 'sub1')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
120
        self.assertMoved('sub2','sub1/sub2')
1846.1.1 by Wouter van Heyst
Don't fail on 'bzr mv', extract move tests from OldTests.
121
1846.1.2 by Wouter van Heyst
test mv more rigorously
122
    def test_mv_relative(self):
1846.1.1 by Wouter van Heyst
Don't fail on 'bzr mv', extract move tests from OldTests.
123
        self.build_tree(['sub1/', 'sub1/sub2/', 'sub1/hello.txt'])
124
        tree = self.make_branch_and_tree('.')
125
        tree.add(['sub1', 'sub1/sub2', 'sub1/hello.txt'])
126
127
        os.chdir('sub1/sub2')
1846.1.2 by Wouter van Heyst
test mv more rigorously
128
        self.run_bzr('mv', '../hello.txt', '.')
1846.1.1 by Wouter van Heyst
Don't fail on 'bzr mv', extract move tests from OldTests.
129
        self.failUnlessExists('./hello.txt')
130
131
        os.chdir('..')
1846.1.2 by Wouter van Heyst
test mv more rigorously
132
        self.run_bzr('mv', 'sub2/hello.txt', '.')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
133
        os.chdir('..')
134
        self.assertMoved('sub1/sub2/hello.txt','sub1/hello.txt')
1846.1.2 by Wouter van Heyst
test mv more rigorously
135
136
    def test_mv_smoke_aliases(self):
137
        # just test that aliases for mv exist, if their behaviour is changed in
138
        # the future, then extend the tests.
139
        self.build_tree(['a'])
140
        tree = self.make_branch_and_tree('.')
141
        tree.add(['a'])
142
143
        self.run_bzr('move', 'a', 'b')
144
        self.run_bzr('rename', 'b', 'a')
2091.3.2 by Aaron Bentley
Traverse non-terminal symlinks for mv et al
145
146
    def test_mv_through_symlinks(self):
2091.3.6 by Aaron Bentley
Add symlink test guards
147
        if not osutils.has_symlinks():
148
            raise TestSkipped('Symlinks are not supported on this platform')
2091.3.2 by Aaron Bentley
Traverse non-terminal symlinks for mv et al
149
        tree = self.make_branch_and_tree('.')
150
        self.build_tree(['a/', 'a/b'])
151
        os.symlink('a', 'c')
152
        os.symlink('.', 'd')
153
        tree.add(['a', 'a/b', 'c'], ['a-id', 'b-id', 'c-id'])
154
        self.run_bzr('mv', 'c/b', 'b')
155
        tree = workingtree.WorkingTree.open('.')
156
        self.assertEqual('b-id', tree.path2id('b'))
2123.3.4 by Steffen Eichenberg
a few new blackbox test for mv
157
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
158
    def test_mv_already_moved_file(self):
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
159
        """Test bzr mv original_file to moved_file.
160
161
        Tests if a file which has allready been moved by an external tool,
162
        is handled correctly by bzr mv.
163
        Setup: a is in the working tree, b does not exist.
164
        User does: mv a b; bzr mv a b
165
        """
166
        self.build_tree(['a'])
2123.3.4 by Steffen Eichenberg
a few new blackbox test for mv
167
        tree = self.make_branch_and_tree('.')
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
168
        tree.add(['a'])
2123.3.4 by Steffen Eichenberg
a few new blackbox test for mv
169
170
        os.rename('a', 'b')
171
        self.run_bzr('mv', 'a', 'b')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
172
        self.assertMoved('a','b')
2123.3.4 by Steffen Eichenberg
a few new blackbox test for mv
173
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
174
    def test_mv_already_moved_file_to_versioned_target(self):
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
175
        """Test bzr mv existing_file to versioned_file.
176
177
        Tests if an attempt to move an existing versioned file
178
        to another versiond file will fail.
179
        Setup: a and b are in the working tree.
180
        User does: rm b; mv a b; bzr mv a b
181
        """
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
182
        self.build_tree(['a', 'b'])
183
        tree = self.make_branch_and_tree('.')
184
        tree.add(['a', 'b'])
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
185
186
        os.remove('b')
187
        os.rename('a', 'b')
2123.3.4 by Steffen Eichenberg
a few new blackbox test for mv
188
        self.run_bzr_error(
2206.1.8 by Marius Kruger
Converted move/rename error messages to show source => target.
189
            ["^bzr: ERROR: Could not move a => b. b is already versioned$"],
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
190
            'mv', 'a', 'b')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
191
        #check that nothing changed
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
192
        self.failIfExists('a')
193
        self.failUnlessExists('b')
194
195
    def test_mv_already_moved_file_into_subdir(self):
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
196
        """Test bzr mv original_file to versioned_directory/file.
197
198
        Tests if a file which has already been moved into a versioned
199
        directory by an external tool, is handled correctly by bzr mv.
200
        Setup: a and sub/ are in the working tree.
201
        User does: mv a sub/a; bzr mv a sub/a
202
        """
203
        self.build_tree(['a', 'sub/'])
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
204
        tree = self.make_branch_and_tree('.')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
205
        tree.add(['a', 'sub'])
206
207
        os.rename('a', 'sub/a')
208
        self.run_bzr('mv', 'a', 'sub/a')
209
        self.assertMoved('a','sub/a')
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
210
211
    def test_mv_already_moved_file_into_unversioned_subdir(self):
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
212
        """Test bzr mv original_file to unversioned_directory/file.
213
214
        Tests if an attempt to move an existing versioned file
215
        into an unversioned directory will fail.
216
        Setup: a is in the working tree, sub/ is not.
217
        User does: mv a sub/a; bzr mv a sub/a
218
        """
219
        self.build_tree(['a', 'sub/'])
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
220
        tree = self.make_branch_and_tree('.')
221
        tree.add(['a'])
222
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
223
        os.rename('a', 'sub/a')
2123.3.4 by Steffen Eichenberg
a few new blackbox test for mv
224
        self.run_bzr_error(
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
225
            ["^bzr: ERROR: Could not move a => a: sub is not versioned$"],
226
            'mv', 'a', 'sub/a')
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
227
        self.failIfExists('a')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
228
        self.failUnlessExists('sub/a')
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
229
230
    def test_mv_already_moved_files_into_subdir(self):
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
231
        """Test bzr mv original_files to versioned_directory.
232
233
        Tests if files which has already been moved into a versioned
234
        directory by an external tool, is handled correctly by bzr mv.
235
        Setup: a1, a2, sub are in the working tree.
236
        User does: mv a1 sub/.; bzr mv a1 a2 sub
237
        """
238
        self.build_tree(['a1', 'a2', 'sub/'])
2123.3.4 by Steffen Eichenberg
a few new blackbox test for mv
239
        tree = self.make_branch_and_tree('.')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
240
        tree.add(['a1', 'a2', 'sub'])
241
242
        os.rename('a1', 'sub/a1')
243
        self.run_bzr('mv', 'a1', 'a2', 'sub')
244
        self.assertMoved('a1','sub/a1')
245
        self.assertMoved('a2','sub/a2')
246
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
247
    def test_mv_already_moved_files_into_unversioned_subdir(self):
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
248
        """Test bzr mv original_file to unversioned_directory.
249
250
        Tests if an attempt to move existing versioned file
251
        into an unversioned directory will fail.
252
        Setup: a1, a2 are in the working tree, sub is not.
253
        User does: mv a1 sub/.; bzr mv a1 a2 sub
254
        """
255
        self.build_tree(['a1', 'a2', 'sub/'])
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
256
        tree = self.make_branch_and_tree('.')
257
        tree.add(['a1', 'a2'])
258
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
259
        os.rename('a1', 'sub/a1')
2206.1.8 by Marius Kruger
Converted move/rename error messages to show source => target.
260
        self.run_bzr_error(
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
261
            ["^bzr: ERROR: Could not move to sub. sub is not versioned$"],
262
            'mv', 'a1', 'a2', 'sub')
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
263
        self.failIfExists('a1')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
264
        self.failUnlessExists('sub/a1')
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
265
        self.failUnlessExists('a2')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
266
        self.failIfExists('sub/a2')
2123.3.4 by Steffen Eichenberg
a few new blackbox test for mv
267
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
268
    def test_mv_already_moved_file_forcing_after(self):
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
269
        """Test bzr mv versioned_file to unversioned_file.
270
271
        Tests if an attempt to move an existing versioned file to an existing
272
        unversioned file will fail, informing the user to use the --after
273
        option to force this.
274
        Setup: a is in the working tree, b not versioned.
275
        User does: mv a b; touch a; bzr mv a b
276
        """
2123.3.4 by Steffen Eichenberg
a few new blackbox test for mv
277
        self.build_tree(['a', 'b'])
278
        tree = self.make_branch_and_tree('.')
279
        tree.add(['a'])
280
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
281
        os.rename('a', 'b')
282
        self.build_tree(['a']) #touch a
2123.3.4 by Steffen Eichenberg
a few new blackbox test for mv
283
        self.run_bzr_error(
2220.1.12 by Marius Kruger
* Fix errors.py import order
284
            ["^bzr: ERROR: Could not rename a => b because both files exist."
2220.1.6 by Marius Kruger
* change error message telling user about --after option sightly
285
             " \(Use --after to update the Bazaar id\)$"],
2123.3.4 by Steffen Eichenberg
a few new blackbox test for mv
286
            'mv', 'a', 'b')
287
        self.failUnlessExists('a')
288
        self.failUnlessExists('b')
289
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
290
    def test_mv_already_moved_file_using_after(self):
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
291
        """Test bzr mv --after versioned_file to unversioned_file.
292
293
        Tests if an existing versioned file can be forced to move to an
294
        existing unversioned file using the --after option. With the result
295
        that bazaar considers the unversioned_file to be moved from
296
        versioned_file and versioned_file will become unversioned.
297
        Setup: a is in the working tree and b exists.
298
        User does: mv a b; touch a; bzr mv a b --after
299
        Resulting in a => b and a is unknown.
300
        """
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
301
        self.build_tree(['a', 'b'])
302
        tree = self.make_branch_and_tree('.')
303
        tree.add(['a'])
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
304
        os.rename('a', 'b')
305
        self.build_tree(['a']) #touch a
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
306
2123.3.4 by Steffen Eichenberg
a few new blackbox test for mv
307
        self.run_bzr('mv', 'a', 'b', '--after')
308
        self.failUnlessExists('a')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
309
        self.assertNotInWorkingTree('a')#a should be unknown now.
2123.3.4 by Steffen Eichenberg
a few new blackbox test for mv
310
        self.failUnlessExists('b')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
311
        self.assertInWorkingTree('b')
2123.3.4 by Steffen Eichenberg
a few new blackbox test for mv
312
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
313
    def test_mv_already_moved_files_forcing_after(self):
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
314
        """Test bzr mv versioned_files to directory/unversioned_file.
315
316
        Tests if an attempt to move an existing versioned file to an existing
317
        unversioned file in some other directory will fail, informing the user
318
        to use the --after option to force this.
319
320
        Setup: a1, a2, sub are versioned and in the working tree,
321
               sub/a1, sub/a2 are in working tree.
322
        User does: mv a* sub; touch a1; touch a2; bzr mv a1 a2 sub
323
        """
324
        self.build_tree(['a1', 'a2', 'sub/', 'sub/a1', 'sub/a2'])
2123.3.4 by Steffen Eichenberg
a few new blackbox test for mv
325
        tree = self.make_branch_and_tree('.')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
326
        tree.add(['a1', 'a2', 'sub'])
327
        os.rename('a1', 'sub/a1')
328
        os.rename('a2', 'sub/a2')
329
        self.build_tree(['a1']) #touch a1
330
        self.build_tree(['a2']) #touch a2
2123.3.4 by Steffen Eichenberg
a few new blackbox test for mv
331
332
        self.run_bzr_error(
2220.1.12 by Marius Kruger
* Fix errors.py import order
333
            ["^bzr: ERROR: Could not rename a1 => sub/a1 because both files exist."
2220.1.6 by Marius Kruger
* change error message telling user about --after option sightly
334
             " \(Use --after to update the Bazaar id\)$"],
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
335
            'mv', 'a1', 'a2', 'sub')
2123.3.4 by Steffen Eichenberg
a few new blackbox test for mv
336
        self.failUnlessExists('a1')
337
        self.failUnlessExists('a2')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
338
        self.failUnlessExists('sub/a1')
339
        self.failUnlessExists('sub/a2')
340
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
341
    def test_mv_already_moved_files_using_after(self):
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
342
        """Test bzr mv --after versioned_file to directory/unversioned_file.
343
344
        Tests if an existing versioned file can be forced to move to an
345
        existing unversioned file in some other directory using the --after
346
        option. With the result that bazaar considers
347
        directory/unversioned_file to be moved from versioned_file and
348
        versioned_file will become unversioned.
349
350
        Setup: a1, a2, sub are versioned and in the working tree,
351
               sub/a1, sub/a2 are in working tree.
352
        User does: mv a* sub; touch a1; touch a2; bzr mv a1 a2 sub --after
353
        """
354
        self.build_tree(['a1', 'a2', 'sub/', 'sub/a1', 'sub/a2'])
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
355
        tree = self.make_branch_and_tree('.')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
356
        tree.add(['a1', 'a2', 'sub'])
357
        os.rename('a1', 'sub/a1')
358
        os.rename('a2', 'sub/a2')
359
        self.build_tree(['a1']) #touch a1
360
        self.build_tree(['a2']) #touch a2
2123.3.7 by Steffen Eichenberg
split tests so that each new method contains one test only
361
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
362
        self.run_bzr('mv', 'a1', 'a2', 'sub', '--after')
2123.3.4 by Steffen Eichenberg
a few new blackbox test for mv
363
        self.failUnlessExists('a1')
364
        self.failUnlessExists('a2')
2220.1.5 by Marius Kruger
* bzrlib/tests/blackbox/test_mv.py
365
        self.failUnlessExists('sub/a1')
366
        self.failUnlessExists('sub/a2')
367
        self.assertInWorkingTree('sub/a1')
2220.1.14 by Aaron Bentley
Cleanup formatting and error handling
368
        self.assertInWorkingTree('sub/a2')