~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Danny van Heumen
  • Date: 2010-03-09 21:42:11 UTC
  • mto: (4634.139.5 2.0)
  • mto: This revision was merged to the branch mainline in revision 5160.
  • Revision ID: danny@dannyvanheumen.nl-20100309214211-iqh42x6qcikgd9p3
Reverted now-useless TODO list.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006-2010 Canonical Ltd
 
1
# Copyright (C) 2005, 2006 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
19
19
import sys
20
20
 
21
21
from bzrlib.tests import SymlinkFeature, TestSkipped
22
 
from bzrlib.tests import TestCaseWithTransport
 
22
from bzrlib.tests.blackbox import ExternalBase
23
23
from bzrlib.workingtree import WorkingTree
24
24
from bzrlib import osutils
25
25
 
31
31
files=(a, b, c, d)
32
32
 
33
33
 
34
 
class TestRemove(TestCaseWithTransport):
 
34
class TestRemove(ExternalBase):
35
35
 
36
36
    def _make_tree_and_add(self, paths):
37
37
        tree = self.make_branch_and_tree('.')
61
61
        f.write("\nsome other new content!")
62
62
        f.close()
63
63
 
64
 
    def run_bzr_remove_changed_files(self, files_to_remove, working_dir=None):
65
 
        self.run_bzr(['remove'] + list(files_to_remove),
66
 
           working_dir=working_dir)
 
64
    def run_bzr_remove_changed_files(self, error_regexes, files_to_remove):
 
65
        error_regexes.extend(["Can't safely remove modified or unknown files:",
 
66
            'Use --keep to not delete them,'
 
67
            ' or --force to delete them regardless.'
 
68
            ])
 
69
        self.run_bzr_error(error_regexes,
 
70
            ['remove'] + list(files_to_remove))
 
71
        #see if we can force it now
 
72
        self.run_bzr(['remove', '--force'] + list(files_to_remove))
67
73
 
68
74
    def test_remove_new_no_files_specified(self):
69
75
        tree = self.make_branch_and_tree('.')
168
174
    def test_remove_unversioned_files(self):
169
175
        self.build_tree(files)
170
176
        tree = self.make_branch_and_tree('.')
171
 
        self.run_bzr_remove_changed_files(files)
 
177
        self.run_bzr_remove_changed_files(
 
178
            ['unknown:[.\s]*d/[.\s]*b/c[.\s]*b/[.\s]*a'], files)
172
179
 
173
180
    def test_remove_changed_files(self):
174
181
        tree = self._make_tree_and_add(files)
175
182
        self.run_bzr("commit -m 'added files'")
176
183
        self.changeFile(a)
177
184
        self.changeFile(c)
178
 
        self.run_bzr_remove_changed_files(files)
 
185
        self.run_bzr_remove_changed_files(['modified:[.\s]*a[.\s]*b/c'], files)
179
186
 
180
187
    def test_remove_changed_ignored_files(self):
181
188
        tree = self._make_tree_and_add(['a'])
182
189
        self.run_bzr(['ignore', 'a'])
183
 
        self.run_bzr_remove_changed_files(['a'])
 
190
        self.run_bzr_remove_changed_files(['added:[.\s]*a'], ['a'])
184
191
 
185
192
    def test_remove_changed_files_from_child_dir(self):
186
193
        if sys.platform == 'win32':
189
196
        self.run_bzr("commit -m 'added files'")
190
197
        self.changeFile(a)
191
198
        self.changeFile(c)
192
 
        self.run_bzr_remove_changed_files(
193
 
            ['../a', 'c', '.', '../d'], working_dir='b')
 
199
        os.chdir('b')
 
200
        self.run_bzr_remove_changed_files(['modified:[.\s]*a[.\s]*b/c'],
 
201
            ['../a', 'c', '.', '../d'])
 
202
        os.chdir('..')
194
203
        self.assertNotInWorkingTree(files)
195
204
        self.failIfExists(files)
196
205
 
205
214
        tree = self.make_branch_and_tree('.')
206
215
        self.run_bzr(['remove', '--force'] + list(files),
207
216
                     error_regexes=["deleted a", "deleted b",
208
 
                                    "removed b/c", "deleted d"])
 
217
                                    "deleted b/c", "deleted d"])
209
218
        self.assertFilesDeleted(files)
210
219
 
211
220
    def test_remove_deleted_files(self):