1
from bzrlib.tests.blackbox import ExternalBase
2
from unittest import makeSuite
4
class TestBzrTools(ExternalBase):
7
file(filename, 'wb').write('')
9
def test_clean_tree(self):
11
self.runbzr('ignore *~')
12
self.runbzr('ignore *.pyc')
15
assert os.path.lexists('name~')
16
self.touch('name.pyc')
17
self.runbzr('clean-tree')
18
assert os.path.lexists('name~')
19
assert not os.path.lexists('name')
20
self.runbzr('clean-tree --detritus')
21
assert not os.path.lexists('name~')
22
assert os.path.lexists('name.pyc')
23
self.runbzr('clean-tree --ignored')
24
assert not os.path.lexists('name.pyc')
26
def test_shelve(self):
28
self.runbzr('commit -m uc --unchanged')
29
self.runbzr('shelve -r 1 -m foo --all', retcode=3)
30
file('foo', 'wb').write('foo')
31
self.runbzr('add foo')
32
self.runbzr('commit -m foo')
33
self.runbzr('shelve -r 1 -m foo --all', retcode=0)
35
def test_fetch_ghosts(self):
37
self.runbzr('fetch-ghosts .')
41
file('myfile', 'wb').write('hello')
43
self.runbzr('commit -m hello')
44
file('myfile', 'wb').write('goodbye')
45
file('mypatch', 'wb').write(self.runbzr('diff', retcode=1, backtick=1))
47
assert file('myfile', 'rb').read() == 'hello'
48
self.runbzr('patch mypatch')
49
assert file('myfile', 'rb').read() == 'goodbye'
51
def test_branch_history(self):
53
file('myfile', 'wb').write('hello')
55
self.runbzr('commit -m hello')
56
self.runbzr('branch-history')
58
def test_branch_history(self):
60
file('myfile', 'wb').write('hello')
62
self.runbzr('commit -m hello')
63
self.runbzr('graph-ancestry . graph.dot')
64
self.runbzr('branch . my_branch')
65
self.runbzr('graph-ancestry . graph.dot --merge-branch my_branch')
67
def test_fetch_ghosts(self):
69
file('myfile', 'wb').write('hello')
71
self.runbzr('commit -m hello')
72
self.runbzr('branch . my_branch')
73
self.runbzr('fetch-ghosts my_branch')
76
self.runbzr('init source')
77
self.runbzr('checkout --lightweight source checkout')
78
self.runbzr('zap checkout')
79
self.assertIs(False, os.path.exists('checkout'))
80
self.assertIs(True, os.path.exists('source'))
82
def test_zap_branch(self):
83
self.runbzr('init source')
84
self.runbzr('checkout --lightweight source checkout')
85
self.runbzr('zap --branch checkout', retcode=3)
86
self.assertIs(True, os.path.exists('checkout'))
87
self.assertIs(True, os.path.exists('source'))
88
self.runbzr('branch source source2')
89
self.runbzr('checkout --lightweight source2 checkout2')
90
self.runbzr('zap --branch checkout2')
91
self.assertIs(False, os.path.exists('checkout2'))
92
self.assertIs(False, os.path.exists('source2'))
94
def test_branches(self):
95
self.runbzr('init source')
96
self.runbzr('init source/subsource')
97
self.runbzr('checkout --lightweight source checkout')
98
self.runbzr('init checkout/subcheckout')
99
self.runbzr('init checkout/.bzr/subcheckout')
100
out = self.capture('branches')
101
lines = out.split('\n')
102
self.assertIs(True, 'source' in lines)
103
self.assertIs(True, 'source/subsource' in lines)
104
self.assertIs(True, 'checkout/subcheckout' in lines)
105
self.assertIs(True, 'checkout' not in lines)
106
self.assertIs(True, 'checkout/.bzr/subcheckout' not in lines)
108
def test_import_upstream(self):
109
self.runbzr('init source')
110
os.mkdir('source/src')
111
f = file('source/src/myfile', 'wb')
116
self.runbzr('commit -m hello')
117
self.runbzr('export ../source-0.1.tar.gz')
118
self.runbzr('export ../source-0.1.tar.bz2')
119
self.runbzr('init ../import')
120
os.chdir('../import')
121
self.runbzr('import ../source-0.1.tar.gz')
122
self.failUnlessExists('src/myfile')
123
result = self.runbzr('import ../source-0.1.tar.gz', retcode=3)[1]
124
self.assertContainsRe(result, 'Working tree has uncommitted changes')
125
self.runbzr('commit -m commit')
126
self.runbzr('import ../source-0.1.tar.gz')
128
self.runbzr('init import2')
129
self.runbzr('import source-0.1.tar.gz import2')
130
self.failUnlessExists('import2/src/myfile')
131
self.runbzr('import source-0.1.tar.gz import3')
132
self.failUnlessExists('import3/src/myfile')
133
self.runbzr('import source-0.1.tar.bz2 import4')
134
self.failUnlessExists('import4/src/myfile')
136
def test_shove(self):
137
self.runbzr('init source')
138
f = file('source/file', 'wb')
141
self.runbzr('add source/file')
142
self.runbzr('commit source -m foo')
143
self.runbzr('branch source target1')
144
self.runbzr('branch source target2')
145
f = file('source/file', 'wb')
148
self.runbzr('shove target1 source')
149
f = file('target1/file', 'rb')
150
self.assertEqual(f.read(), 'goodbye\n')
153
self.runbzr('shove target2', retcode=3)
154
self.runbzr('shove ../target2')
155
f = file('../target2/file', 'rb')
156
self.assertEqual(f.read(), 'goodbye\n')
160
return makeSuite(TestBzrTools)