/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 breezy/tests/blackbox/test_remove.py

  • Committer: Breezy landing bot
  • Author(s): Colin Watson
  • Date: 2020-11-16 21:47:08 UTC
  • mfrom: (7521.1.1 remove-lp-workaround)
  • Revision ID: breezy.the.bot@gmail.com-20201116214708-jos209mgxi41oy15
Remove breezy.git workaround for bazaar.launchpad.net.

Merged from https://code.launchpad.net/~cjwatson/brz/remove-lp-workaround/+merge/393710

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
import os
19
19
import sys
20
20
 
21
 
from bzrlib.tests import (
 
21
from breezy.tests import (
22
22
    script,
23
23
    features,
24
24
    TestCaseWithTransport,
25
25
    TestSkipped,
 
26
    TestNotApplicable,
26
27
    )
27
 
from bzrlib.workingtree import WorkingTree
28
 
from bzrlib import osutils
 
28
from breezy.workingtree import WorkingTree
 
29
from breezy import osutils
29
30
 
30
 
_id='-id'
31
 
a='a'
32
 
b='b/'
33
 
c='b/c'
34
 
d='d/'
35
 
files=(a, b, c, d)
 
31
_id = b'-id'
 
32
a = 'a'
 
33
b = 'b/'
 
34
c = 'b/c'
 
35
d = 'd/'
 
36
files = (a, b, c, d)
36
37
 
37
38
 
38
39
class TestRemove(TestCaseWithTransport):
39
40
 
40
41
    def _make_tree_and_add(self, paths):
41
42
        tree = self.make_branch_and_tree('.')
42
 
        tree.lock_write()
43
 
        try:
 
43
        with tree.lock_write():
44
44
            self.build_tree(paths)
45
45
            for path in paths:
46
 
                file_id=str(path).replace('/', '_') + _id
 
46
                file_id = path.replace('/', '_').encode('utf-8') + _id
47
47
                tree.add(path, file_id)
48
 
        finally:
49
 
            tree.unlock()
50
48
        return tree
51
49
 
52
50
    def assertFilesDeleted(self, files):
53
51
        for f in files:
54
 
            id=f+_id
 
52
            id = f.encode('utf-8') + _id
55
53
            self.assertNotInWorkingTree(f)
56
54
            self.assertPathDoesNotExist(f)
57
55
 
61
59
            self.assertPathExists(f)
62
60
 
63
61
    def changeFile(self, file_name):
64
 
        f = file(file_name, 'ab')
65
 
        f.write("\nsome other new content!")
66
 
        f.close()
 
62
        with open(file_name, 'ab') as f:
 
63
            f.write(b"\nsome other new content!")
67
64
 
68
65
    def run_bzr_remove_changed_files(self, files_to_remove, working_dir=None):
69
66
        self.run_bzr(['remove'] + list(files_to_remove),
70
 
           working_dir=working_dir)
 
67
                     working_dir=working_dir)
71
68
 
72
69
    def test_remove_new_no_files_specified(self):
73
70
        tree = self.make_branch_and_tree('.')
74
 
        self.run_bzr_error(["bzr: ERROR: No matching files."], 'remove --new')
75
 
        self.run_bzr_error(["bzr: ERROR: No matching files."], 'remove --new .')
 
71
        self.run_bzr_error(["brz: ERROR: No matching files."], 'remove --new')
 
72
        self.run_bzr_error(
 
73
            ["brz: ERROR: No matching files."], 'remove --new .')
76
74
 
77
75
    def test_remove_no_files_specified(self):
78
76
        tree = self._make_tree_and_add(['foo'])
106
104
        tree.commit('save foo and bar')
107
105
        os.unlink('bar')
108
106
        self.run_bzr(['rm'])
109
 
        self.assertEqual(None, tree.path2id('bar'))
 
107
        self.assertFalse(tree.is_versioned('bar'))
110
108
        # Running rm with a deleted file does not error.
111
109
        out, err = self.run_bzr(['rm'])
112
110
        self.assertEqual('', out)
208
206
        self.build_tree(files)
209
207
        tree = self.make_branch_and_tree('.')
210
208
        script.ScriptRunner().run_script(self, '''
211
 
        $ bzr remove --no-backup a b/ b/c d/
 
209
        $ brz remove --no-backup a b/ b/c d/
212
210
        2>deleted d
213
211
        2>removed b/c (but kept a copy: b/c.~1~)
214
212
        2>deleted b
219
217
    def test_remove_deleted_files(self):
220
218
        tree = self._make_tree_and_add(files)
221
219
        self.run_bzr("commit -m 'added files'")
222
 
        my_files=[f for f in files]
 
220
        my_files = [f for f in files]
223
221
        my_files.sort(reverse=True)
224
222
        for f in my_files:
225
223
            osutils.delete_any(f)
242
240
        self.run_bzr("commit -m 'added files'")
243
241
        self.run_bzr('remove a b b/c d',
244
242
                     error_regexes=["deleted a", "deleted b", "deleted b/c",
245
 
                     "deleted d"])
 
243
                                    "deleted d"])
246
244
        self.assertFilesDeleted(files)
247
245
 
248
246
    def test_remove_keep_files(self):
250
248
        self.run_bzr("commit -m 'added files'")
251
249
        self.run_bzr('remove --keep a b b/c d',
252
250
                     error_regexes=["removed a", "removed b", "removed b/c",
253
 
                     "removed d"])
 
251
                                    "removed d"])
254
252
        self.assertFilesUnversioned(files)
255
253
 
256
254
    def test_remove_with_new(self):
265
263
                     error_regexes=["removed b", "removed b/c"])
266
264
        tree = WorkingTree.open('.')
267
265
        self.assertInWorkingTree(a)
268
 
        self.assertEqual(tree.path2id(a), a + _id)
269
 
        self.assertFilesUnversioned([b,c])
 
266
        self.assertEqual(tree.path2id(a), a.encode('utf-8') + _id)
 
267
        self.assertFilesUnversioned([b, c])
270
268
 
271
269
    def test_remove_with_new_in_dir2(self):
272
270
        tree = self._make_tree_and_add(files)
274
272
                     error_regexes=["removed a", "removed b", "removed b/c"])
275
273
        tree = WorkingTree.open('.')
276
274
        self.assertFilesUnversioned(files)
 
275
 
 
276
    def test_remove_backslash(self):
 
277
        # pad.lv/176263
 
278
        if os.path.sep == '\\':
 
279
            raise TestNotApplicable(
 
280
                'unable to add filenames with backslashes where '
 
281
                ' it is the path separator')
 
282
        tree = self.make_branch_and_tree('.')
 
283
        self.build_tree(['\\'])
 
284
        self.assertEqual('adding \\\n', self.run_bzr('add \\\\')[0])
 
285
        self.assertEqual('\\\n', self.run_bzr('ls --versioned')[0])
 
286
        self.assertEqual('', self.run_bzr('rm \\\\')[0])
 
287
        self.assertEqual('', self.run_bzr('ls --versioned')[0])