42
42
self.assertInWorkingTree(f)
45
def assertFilesDeleted(self,files):
45
def assertFilesDeleted(self, files):
48
48
self.assertNotInWorkingTree(f)
49
49
self.failIfExists(f)
51
def assertFilesUnversioned(self,files):
51
def assertFilesUnversioned(self, files):
53
53
self.assertNotInWorkingTree(f)
54
54
self.failUnlessExists(f)
56
def run_bzr_remove_changed_files(self, error_regexes, cmd):
56
def changeFile(self, file_name):
57
f = file(file_name, 'ab')
58
f.write("\nsome other new content!")
61
def run_bzr_remove_changed_files(self, error_regexes, files_to_remove):
57
62
error_regexes.extend(["Can't remove changed or unknown files:",
58
63
'Use --keep to not delete them,'
59
64
' or --force to delete them regardless.'
61
self.run_bzr_error(error_regexes, cmd)
66
self.run_bzr_error(error_regexes,
67
'remove ' + ' '.join(files_to_remove))
68
#see if we can force it now
69
self.run_bzr('remove --force ' + ' '.join(files_to_remove))
63
71
def test_remove_no_files_specified(self):
64
72
tree = self._make_add_and_assert_tree([])
70
78
self.run_bzr_error(["bzr: ERROR: No matching files."],
81
def test_rm_one_file(self):
82
tree = self._make_add_and_assert_tree([a])
83
self.run_bzr("commit -m 'added a'")
84
self.run_bzr('rm a', error_regexes=["deleted a"])
85
self.assertFilesDeleted([a])
87
def test_remove_one_file(self):
88
tree = self._make_add_and_assert_tree([a])
89
self.run_bzr("commit -m 'added a'")
90
self.run_bzr('remove a', error_regexes=["deleted a"])
91
self.assertFilesDeleted([a])
93
def test_remove_keep_one_file(self):
94
tree = self._make_add_and_assert_tree([a])
95
self.run_bzr('remove --keep a', error_regexes=["removed a"])
96
self.assertFilesUnversioned([a])
98
def test_remove_one_deleted_file(self):
99
tree = self._make_add_and_assert_tree([a])
100
self.run_bzr("commit -m 'added a'")
102
self.assertInWorkingTree(a)
103
self.run_bzr('remove a')
104
self.assertNotInWorkingTree(a)
73
106
def test_remove_invalid_files(self):
107
self.build_tree(files)
75
108
tree = self.make_branch_and_tree('.')
76
self.run_bzr('remove .')
109
self.run_bzr_remove_changed_files(['unknown:[.\s]*xyz[.\s]*abc/def'],
110
['.', 'xyz', 'abc/def'])
78
112
def test_remove_unversioned_files(self):
113
self.build_tree(files)
80
114
tree = self.make_branch_and_tree('.')
81
self.run_bzr_remove_changed_files(['unknown:[.\s]*a'], 'remove a')
115
self.run_bzr_remove_changed_files(
116
['unknown:[.\s]*d/[.\s]*b/c[.\s]*b/[.\s]*a'], files)
118
def test_remove_changed_files(self):
119
tree = self._make_add_and_assert_tree(files)
120
self.run_bzr("commit -m 'added files'")
123
self.run_bzr_remove_changed_files(['modified:[.\s]*a[.\s]*b/c'], files)
125
def test_remove_changed_files_from_child_dir(self):
126
tree = self._make_add_and_assert_tree(files)
127
self.run_bzr("commit -m 'added files'")
131
self.run_bzr_remove_changed_files(['modified:[.\s]*a[.\s]*b/c'],
132
['../a', 'c', '.', '../d'])
134
self.assertNotInWorkingTree(files)
135
self.failIfExists(files)
83
137
def test_remove_keep_unversioned_files(self):
138
self.build_tree(files)
85
139
tree = self.make_branch_and_tree('.')
86
140
self.run_bzr('remove --keep a', error_regexes=["a is not versioned."])
141
self.assertFilesUnversioned(files)
88
143
def test_remove_force_unversioned_files(self):
144
self.build_tree(files)
90
145
tree = self.make_branch_and_tree('.')
91
self.run_bzr('remove --force a', error_regexes=["deleted a"])
92
self.assertFilesDeleted([a])
146
self.run_bzr('remove --force ' + ' '.join(files),
147
error_regexes=["deleted a", "deleted b",
148
"deleted b/c", "deleted d"])
149
self.assertFilesDeleted(files)
151
def test_remove_deleted_files(self):
152
tree = self._make_add_and_assert_tree(files)
153
self.run_bzr("commit -m 'added files'")
154
my_files=[f for f in files]
155
my_files.sort(reverse=True)
157
osutils.delete_any(f)
158
self.assertInWorkingTree(files)
159
self.failIfExists(files)
160
self.run_bzr('remove ' + ' '.join(files))
161
self.assertNotInWorkingTree(a)
162
self.failIfExists(files)
94
164
def test_remove_non_existing_files(self):
95
165
tree = self._make_add_and_assert_tree([])
96
self.run_bzr_remove_changed_files(['unknown:[.\s]*b'], 'remove b')
166
self.run_bzr_remove_changed_files(['unknown:[.\s]*b'], ['b'])
98
168
def test_remove_keep_non_existing_files(self):
99
169
tree = self._make_add_and_assert_tree([])
100
170
self.run_bzr('remove --keep b', error_regexes=["b is not versioned."])
102
def test_rm_one_file(self):
103
tree = self._make_add_and_assert_tree([a])
104
self.run_bzr("commit -m 'added a'")
105
self.run_bzr('rm a', error_regexes=["deleted a"])
106
self.assertFilesDeleted([a])
108
def test_remove_one_file(self):
109
tree = self._make_add_and_assert_tree([a])
110
self.run_bzr("commit -m 'added a'")
111
self.run_bzr('remove a', error_regexes=["deleted a"])
112
self.assertFilesDeleted([a])
114
def test_remove_keep_one_file(self):
115
tree = self._make_add_and_assert_tree([a])
116
self.run_bzr('remove --keep a', error_regexes=["removed a"])
117
self.assertFilesUnversioned([a])
119
172
def test_remove_files(self):
120
173
tree = self._make_add_and_assert_tree(files)
121
174
self.run_bzr("commit -m 'added files'")