20
20
from bzrlib.tests.blackbox import ExternalBase
21
21
from bzrlib.workingtree import WorkingTree
24
class TestRemove(ExternalBase):
26
def test_remove_deleted(self):
22
from bzrlib import osutils
31
class TestUnversion(ExternalBase):
33
def __init__(self, methodName='runTest'):
34
super(TestUnversion, self).__init__(methodName)
35
self.cmd = 'unversion'
38
def _make_tree(self,files):
39
tree = self.make_branch_and_tree('.')
40
self.build_tree(files)
44
self.assertEqual(tree.path2id(f), id)
45
self.failUnlessExists(f)
46
self.assertInWorkingTree(f)
49
def assertCommandPerformedOnFiles(self,files):
52
self.failUnlessExists(f)
53
self.assertNotInWorkingTree(f)
55
def test_command_no_files_specified(self):
57
tree = self.make_branch_and_tree('.')
59
(out,err) = self.runbzr(self.cmd, retcode=3)
60
self.assertEquals(err.strip(),
61
"bzr: ERROR: Specify one or more files to unversion, or use --new."
64
(out,err) = self.runbzr(self.cmd+' --new', retcode=3)
65
self.assertEquals(err.strip(),"bzr: ERROR: No matching files.")
66
(out,err) = self.runbzr(self.cmd+' --new .', retcode=3)
67
self.assertEquals(err.strip(),"bzr: ERROR: No matching files.")
69
def test_command_on_invalid_files(self):
71
tree = self.make_branch_and_tree('.')
73
(out,err) = self.runbzr(self.cmd + ' .')
74
self.assertEquals(out.strip(), "")
75
self.assertEquals(err.strip(), "")
77
(out,err) = self.runbzr(self.cmd + ' a')
78
#print "out =",out.strip()
79
#print "err =",err.strip()
80
self.assertEquals(out.strip(), "")
81
self.assertEquals(err.strip(), "a is not versioned.")
83
(out,err) = self.runbzr(self.cmd + ' b')
84
#print "out =",out.strip()
85
#print "err =",err.strip()
86
self.assertEquals(out.strip(), "")
87
self.assertEquals(err.strip(), "b is not versioned.")
89
def test_command_one_file(self):
91
tree = self.make_branch_and_tree('.')
93
self.assertInWorkingTree(a)
94
self.runbzr([self.cmd, a])
95
self.assertCommandPerformedOnFiles([a])
97
def test_command_on_deleted(self):
27
98
self.runbzr("init")
28
self.build_tree(['a'])
29
self.runbzr(['add', 'a'])
100
self.runbzr(['add', a])
30
101
self.runbzr(['commit', '-m', 'added a'])
32
self.runbzr(['remove', 'a'])
34
def test_remove_new(self):
35
self.build_tree(['filefile',
38
wt = self.make_branch_and_tree('.')
39
wt.add(['filefile', 'dir', 'dir/filefilefile'],
40
['filefile-id', 'dir-id', 'filefilefile-id'])
41
self.assertEqual(wt.path2id('filefile'), 'filefile-id')
42
self.assertEqual(wt.path2id('dir/filefilefile'), 'filefilefile-id')
43
self.assertEqual(wt.path2id('dir'), 'dir-id')
44
self.runbzr('remove --new')
45
wt = WorkingTree.open('.')
46
self.assertIs(wt.path2id('filefile'), None)
47
self.assertIs(wt.path2id('dir/filefilefile'), None)
48
self.assertIs(wt.path2id('dir'), None)
49
wt.add(['filefile', 'dir', 'dir/filefilefile'],
50
['filefile-id', 'dir-id', 'filefilefile-id'])
51
self.assertEqual(wt.path2id('filefile'), 'filefile-id')
52
self.assertEqual(wt.path2id('dir/filefilefile'), 'filefilefile-id')
53
self.assertEqual(wt.path2id('dir'), 'dir-id')
54
self.runbzr('remove --new dir')
55
wt = WorkingTree.open('.')
56
self.assertEqual(wt.path2id('filefile'), 'filefile-id')
57
self.assertIs(wt.path2id('dir/filefilefile'), None)
58
self.assertIs(wt.path2id('dir'), None)
59
self.runbzr('remove --new .')
60
wt = WorkingTree.open('.')
61
self.assertIs(wt.path2id('filefile'), None)
62
self.runbzr('remove --new .', retcode=3)
103
self.assertInWorkingTree(a)
104
self.runbzr([self.cmd, a])
105
self.assertNotInWorkingTree(a)
107
def test_command_with_new(self):
108
tree = self._make_tree(files)
110
self.runbzr(self.cmd+' --new')
111
self.assertCommandPerformedOnFiles(files)
113
def test_command_with_new_in_dir1(self):
114
tree = self._make_tree(files)
115
self.runbzr(self.cmd+' --new '+b)
116
tree = WorkingTree.open('.')
117
self.assertInWorkingTree(a)
118
self.assertEqual(tree.path2id(a), a+_id)
119
self.assertCommandPerformedOnFiles([b,c])
121
def test_command_with_new_in_dir2(self):
122
tree = self._make_tree(files)
123
self.runbzr(self.cmd+' --new .')
124
tree = WorkingTree.open('.')
125
self.assertCommandPerformedOnFiles([a])
b'\\ No newline at end of file'