/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/per_workingtree/test_remove.py

  • Committer: Jelmer Vernooij
  • Date: 2018-03-25 00:39:16 UTC
  • mfrom: (6926 work)
  • mto: This revision was merged to the branch mainline in revision 6928.
  • Revision ID: jelmer@jelmer.uk-20180325003916-mqa5uj4uq55hrjq9
merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
        tree = self.get_tree(files)
37
37
        tree.add(files)
38
38
        tree.commit(message)
39
 
        self.assertInWorkingTree(files)
 
39
        if not tree.has_versioned_directories():
 
40
            self.assertInWorkingTree(
 
41
                [f for f in files if not f.endswith("/")])
 
42
            self.assertPathExists(files)
 
43
        else:
 
44
            self.assertInWorkingTree(files)
40
45
        return tree
41
46
 
42
47
    def assertRemovedAndDeleted(self, files):
51
56
        """Check that files and directories are unversioned but not deleted."""
52
57
        tree = self.get_tree(TestRemove.files)
53
58
        tree.add(TestRemove.files)
54
 
        self.assertInWorkingTree(TestRemove.files)
55
59
 
56
60
        tree.remove(TestRemove.files)
57
61
        self.assertRemovedAndNotDeleted(TestRemove.files)
76
80
        """Removal of newly added files must back them up."""
77
81
        tree = self.get_tree(TestRemove.files)
78
82
        tree.add(TestRemove.files)
79
 
        self.assertInWorkingTree(TestRemove.files)
80
83
        tree.remove(TestRemove.files, keep_files=False)
81
84
        self.assertNotInWorkingTree(TestRemove.files)
82
85
        self.assertPathExists(TestRemove.backup_files)
97
100
        tree = self.get_committed_tree(TestRemove.files)
98
101
        for f in TestRemove.rfiles:
99
102
            osutils.delete_any(f)
100
 
        self.assertInWorkingTree(TestRemove.files)
101
103
        self.assertPathDoesNotExist(TestRemove.files)
102
104
        tree.remove(TestRemove.files, keep_files=False)
103
105
        self.assertRemovedAndDeleted(TestRemove.files)
110
112
        for f in TestRemove.rfiles:
111
113
            tree.rename_one(f, f+'x')
112
114
        rfilesx = ['bx/cx', 'bx', 'ax', 'dx']
113
 
        self.assertInWorkingTree(rfilesx)
114
115
        self.assertPathExists(rfilesx)
115
116
 
116
117
        tree.remove(rfilesx, keep_files=False)
126
127
        rfilesx = ['bx/cx', 'bx', 'ax', 'dx']
127
128
        self.build_tree_contents([('ax', b'changed and renamed!'),
128
129
                                  ('bx/cx', b'changed and renamed!')])
129
 
        self.assertInWorkingTree(rfilesx)
130
130
        self.assertPathExists(rfilesx)
131
131
 
132
132
        tree.remove(rfilesx, keep_files=False)
133
133
        self.assertNotInWorkingTree(rfilesx)
134
134
        self.assertPathExists(['bx.~1~/cx.~1~', 'bx.~1~', 'ax.~1~'])
135
 
        self.assertPathDoesNotExist('dx.~1~') # unchanged file
 
135
        if tree.supports_rename_tracking():
 
136
            self.assertPathDoesNotExist('dx.~1~') # unchanged file
 
137
        else:
 
138
            self.assertPathExists('dx.~1~') # renamed, so appears changed
136
139
        tree._validate()
137
140
 
138
141
    def test_force_remove_changed_files(self):
139
142
        """Check that changed files are removed and deleted when forced."""
140
143
        tree = self.get_tree(TestRemove.files)
141
144
        tree.add(TestRemove.files)
142
 
        self.assertInWorkingTree(TestRemove.files)
143
145
 
144
146
        tree.remove(TestRemove.files, keep_files=False, force=True)
145
147
        self.assertRemovedAndDeleted(TestRemove.files)
201
203
        tree = self.get_tree(files)
202
204
        tree.add(files)
203
205
        ignores.add_runtime_ignores(["*ignored*"])
204
 
        self.assertInWorkingTree(files)
205
206
        self.assertNotEqual(None, tree.is_ignored(files[0]))
206
207
 
207
208
        tree.remove(files, keep_files=False)
211
212
 
212
213
    def test_dont_remove_directory_with_unknowns(self):
213
214
        """Directories with unknowns should be backed up."""
214
 
        directories = ['a/', 'b/', 'c/', 'c/c/']
 
215
        directories = ['a/', 'b/', 'c/', 'c/c/', 'c/blah']
215
216
        tree = self.get_committed_tree(directories)
216
217
 
217
218
        self.build_tree(['a/unknown_file'])
288
289
    def test_remove_directory_with_renames(self):
289
290
        """Delete directory with renames in or out."""
290
291
 
291
 
        files = ['a/', 'a/file', 'a/directory/', 'b/']
 
292
        files = ['a/', 'a/file', 'a/directory/', 'a/directory/stuff', 'b/']
292
293
        files_to_move = ['a/file', 'a/directory/']
293
294
 
294
295
        tree = self.get_committed_tree(files)