1
from bzrlib.tests.blackbox import ExternalBase
2
3
from unittest import makeSuite
4
class TestBzrTools(ExternalBase):
5
from bzrlib import branch
6
from bzrlib.tests import TestCaseWithTransport
9
class TestBzrTools(TestCaseWithTransport):
6
11
def touch(filename):
7
12
file(filename, 'wb').write('')
9
14
def test_clean_tree(self):
16
self.run_bzr('ignore *~')
17
self.run_bzr('ignore *.pyc')
12
19
self.touch('name~')
13
20
assert os.path.lexists('name~')
14
21
self.touch('name.pyc')
15
self.runbzr('clean-tree')
22
self.run_bzr('clean-tree')
16
23
assert os.path.lexists('name~')
17
24
assert not os.path.lexists('name')
18
self.runbzr('clean-tree --detritus')
26
self.run_bzr('clean-tree --detritus')
27
assert os.path.lexists('name')
19
28
assert not os.path.lexists('name~')
20
29
assert os.path.lexists('name.pyc')
21
self.runbzr('clean-tree --ignored')
30
self.run_bzr('clean-tree --ignored')
31
assert os.path.lexists('name')
32
assert not os.path.lexists('name.pyc')
33
self.run_bzr('clean-tree --unknown')
34
assert not os.path.lexists('name')
37
self.touch('name.pyc')
38
self.run_bzr('clean-tree --unknown --ignored')
39
assert not os.path.lexists('name')
40
assert not os.path.lexists('name~')
22
41
assert not os.path.lexists('name.pyc')
24
43
def test_shelve(self):
26
self.runbzr('commit -m uc --unchanged')
27
self.runbzr('shelve -r 1 -m foo --all', retcode=3)
45
self.run_bzr('commit -m uc --unchanged')
46
self.run_bzr('shelve -r 1 -m foo --all', retcode=3)
28
47
file('foo', 'wb').write('foo')
29
self.runbzr('add foo')
30
self.runbzr('commit -m foo')
31
self.runbzr('shelve -r 1 -m foo --all', retcode=0)
48
self.run_bzr('add foo')
49
self.run_bzr('commit -m foo')
50
self.run_bzr('shelve -r 1 -m foo --all', retcode=0)
33
52
def test_fetch_ghosts(self):
35
self.runbzr('fetch-ghosts .')
54
self.run_bzr('fetch-ghosts .')
37
56
def test_patch(self):
39
58
file('myfile', 'wb').write('hello')
41
self.runbzr('commit -m hello')
60
self.run_bzr('commit -m hello')
42
61
file('myfile', 'wb').write('goodbye')
43
file('mypatch', 'wb').write(self.runbzr('diff', retcode=1, backtick=1))
62
file('mypatch', 'wb').write(self.run_bzr('diff', retcode=1)[0])
63
self.run_bzr('revert')
45
64
assert file('myfile', 'rb').read() == 'hello'
46
self.runbzr('patch mypatch')
65
self.run_bzr('patch --silent mypatch')
47
66
assert file('myfile', 'rb').read() == 'goodbye'
49
68
def test_branch_history(self):
51
70
file('myfile', 'wb').write('hello')
53
self.runbzr('commit -m hello')
54
self.runbzr('branch-history')
72
self.run_bzr('commit -m hello')
73
self.run_bzr('branch-history')
56
75
def test_branch_history(self):
58
77
file('myfile', 'wb').write('hello')
60
self.runbzr('commit -m hello')
61
self.runbzr('graph-ancestry . graph.dot')
62
self.runbzr('branch . my_branch')
63
self.runbzr('graph-ancestry . graph.dot --merge-branch my_branch')
79
self.run_bzr('commit -m hello')
80
self.run_bzr('graph-ancestry . graph.dot')
81
self.run_bzr('branch . my_branch')
82
self.run_bzr('graph-ancestry . graph.dot --merge-branch my_branch')
65
84
def test_fetch_ghosts(self):
67
86
file('myfile', 'wb').write('hello')
69
self.runbzr('commit -m hello')
70
self.runbzr('branch . my_branch')
71
self.runbzr('fetch-ghosts my_branch')
88
self.run_bzr('commit -m hello')
89
self.run_bzr('branch . my_branch')
90
self.run_bzr('fetch-ghosts my_branch')
73
92
def test_zap(self):
74
self.runbzr('init source')
75
self.runbzr('checkout --lightweight source checkout')
76
self.runbzr('zap checkout')
93
self.run_bzr('init source')
94
self.run_bzr('checkout --lightweight source checkout')
95
self.run_bzr('zap checkout')
77
96
self.assertIs(False, os.path.exists('checkout'))
78
97
self.assertIs(True, os.path.exists('source'))
99
def test_zap_modified(self):
100
tree = self.make_branch_and_tree('source')
101
checkout = tree.branch.create_checkout('checkout', lightweight=True)
102
self.build_tree(['checkout/file'])
104
self.run_bzr_error(('This checkout has uncommitted changes',),
106
self.failUnlessExists('checkout')
107
self.run_bzr('zap checkout --force')
108
self.failIfExists('checkout')
109
self.failUnlessExists('source')
80
111
def test_zap_branch(self):
81
self.runbzr('init source')
82
self.runbzr('checkout --lightweight source checkout')
83
self.runbzr('zap --branch checkout')
84
self.assertIs(False, os.path.exists('checkout'))
85
self.assertIs(False, os.path.exists('source'))
112
self.run_bzr('init source')
113
self.run_bzr('checkout --lightweight source checkout')
114
self.run_bzr('zap --branch checkout', retcode=3)
115
self.assertIs(True, os.path.exists('checkout'))
116
self.assertIs(True, os.path.exists('source'))
117
self.run_bzr('branch source source2')
118
self.run_bzr('checkout --lightweight source2 checkout2')
119
self.run_bzr('zap --branch checkout2')
120
self.assertIs(False, os.path.exists('checkout2'))
121
self.assertIs(False, os.path.exists('source2'))
87
123
def test_branches(self):
88
self.runbzr('init source')
89
self.runbzr('init source/subsource')
90
self.runbzr('checkout --lightweight source checkout')
91
self.runbzr('init checkout/subcheckout')
92
self.runbzr('init checkout/.bzr/subcheckout')
93
out = self.capture('branches')
124
self.run_bzr('init source')
125
self.run_bzr('init source/subsource')
126
self.run_bzr('checkout --lightweight source checkout')
127
self.run_bzr('init checkout/subcheckout')
128
self.run_bzr('init checkout/.bzr/subcheckout')
129
out = self.run_bzr('branches')[0]
94
130
lines = out.split('\n')
95
131
self.assertIs(True, 'source' in lines)
96
132
self.assertIs(True, 'source/subsource' in lines)
97
133
self.assertIs(True, 'checkout/subcheckout' in lines)
98
134
self.assertIs(True, 'checkout' not in lines)
99
self.assertIs(True, 'checkout/.bzr/subcheckout' not in lines)
136
def test_import_upstream(self):
137
self.run_bzr('init source')
138
os.mkdir('source/src')
139
f = file('source/src/myfile', 'wb')
144
self.run_bzr('commit -m hello')
145
self.run_bzr('export ../source-0.1.tar.gz')
146
self.run_bzr('export ../source-0.1.tar.bz2')
147
self.run_bzr('export ../source-0.1')
148
self.run_bzr('init ../import')
149
os.chdir('../import')
150
self.run_bzr('import ../source-0.1.tar.gz')
151
self.failUnlessExists('src/myfile')
152
result = self.run_bzr('import ../source-0.1.tar.gz', retcode=3)[1]
153
self.assertContainsRe(result, 'Working tree has uncommitted changes')
154
self.run_bzr('commit -m commit')
155
self.run_bzr('import ../source-0.1.tar.gz')
157
self.run_bzr('init import2')
158
self.run_bzr('import source-0.1.tar.gz import2')
159
self.failUnlessExists('import2/src/myfile')
160
self.run_bzr('import source-0.1.tar.gz import3')
161
self.failUnlessExists('import3/src/myfile')
162
self.run_bzr('import source-0.1.tar.bz2 import4')
163
self.failUnlessExists('import4/src/myfile')
164
self.run_bzr('import source-0.1 import5')
165
self.failUnlessExists('import5/src/myfile')
101
167
def test_suite():
102
168
return makeSuite(TestBzrTools)