3
3
from unittest import makeSuite
5
from bzrlib import branch
6
from bzrlib.tests import TestCaseWithTransport
5
from bzrlib import branch, osutils, workingtree
6
from bzrlib.config import LocationConfig
7
from bzrlib.transport import get_transport
8
from bzrlib.tests import TestCaseWithTransport, HardlinkFeature
9
from bzrlib.plugins.bzrtools import command
9
12
class TestBzrTools(TestCaseWithTransport):
15
TestCaseWithTransport.setUp(self)
16
command._testing = True
17
self.addCleanup(command._stop_testing)
11
20
def touch(filename):
12
21
file(filename, 'wb').write('')
14
def test_clean_tree(self):
16
self.run_bzr('ignore *~')
17
self.run_bzr('ignore *.pyc')
20
assert os.path.lexists('name~')
21
self.touch('name.pyc')
22
self.run_bzr('clean-tree')
23
assert os.path.lexists('name~')
24
assert not os.path.lexists('name')
26
self.run_bzr('clean-tree --detritus')
27
assert os.path.lexists('name')
28
assert not os.path.lexists('name~')
29
assert os.path.lexists('name.pyc')
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~')
41
assert not os.path.lexists('name.pyc')
43
23
def test_shelve(self):
44
24
self.run_bzr('init')
45
25
self.run_bzr('commit -m uc --unchanged')
46
self.run_bzr('shelve -r 1 -m foo --all', retcode=3)
26
self.run_bzr('shelve1 -r 1 -m foo --all', retcode=3)
47
27
file('foo', 'wb').write('foo')
48
28
self.run_bzr('add foo')
49
29
self.run_bzr('commit -m foo')
50
self.run_bzr('shelve -r 1 -m foo --all', retcode=0)
30
self.run_bzr('shelve1 -r 1 -m foo --all', retcode=0)
52
32
def test_fetch_ghosts(self):
53
33
self.run_bzr('init')
54
34
self.run_bzr('fetch-ghosts .')
36
def test_fetch_ghosts_with_saved(self):
37
wt = self.make_branch_and_tree('.')
38
wt.branch.set_parent('.')
39
self.run_bzr('fetch-ghosts')
56
41
def test_patch(self):
57
42
self.run_bzr('init')
58
43
file('myfile', 'wb').write('hello')
103
88
checkout.add('file')
104
89
self.run_bzr_error(('This checkout has uncommitted changes',),
106
self.failUnlessExists('checkout')
91
self.assertPathExists('checkout')
107
92
self.run_bzr('zap checkout --force')
108
self.failIfExists('checkout')
109
self.failUnlessExists('source')
93
self.assertPathDoesNotExist('checkout')
94
self.assertPathExists('source')
111
96
def test_zap_branch(self):
112
97
self.run_bzr('init source')
148
133
self.run_bzr('init ../import')
149
134
os.chdir('../import')
150
135
self.run_bzr('import ../source-0.1.tar.gz')
151
self.failUnlessExists('src/myfile')
136
self.assertPathExists('src/myfile')
152
137
result = self.run_bzr('import ../source-0.1.tar.gz', retcode=3)[1]
153
138
self.assertContainsRe(result, 'Working tree has uncommitted changes')
154
139
self.run_bzr('commit -m commit')
157
142
self.run_bzr('init import2')
158
143
self.run_bzr('import source-0.1.tar.gz import2')
159
self.failUnlessExists('import2/src/myfile')
144
self.assertPathExists('import2/src/myfile')
160
145
self.run_bzr('import source-0.1.tar.gz import3')
161
self.failUnlessExists('import3/src/myfile')
146
self.assertPathExists('import3/src/myfile')
162
147
self.run_bzr('import source-0.1.tar.bz2 import4')
163
self.failUnlessExists('import4/src/myfile')
148
self.assertPathExists('import4/src/myfile')
164
149
self.run_bzr('import source-0.1 import5')
165
self.failUnlessExists('import5/src/myfile')
150
self.assertPathExists('import5/src/myfile')
152
def test_cbranch(self):
153
source = self.make_branch_and_tree('source')
154
config = LocationConfig(osutils.abspath('target'))
155
config.set_user_option('cbranch_target', 'target_branch')
156
self.run_bzr('cbranch source target')
157
checkout = workingtree.WorkingTree.open('target')
158
self.assertEqual(checkout.branch.base,
159
get_transport('target').base)
160
self.assertEqual(checkout.branch.get_master_branch().base,
161
get_transport('target_branch').base)
162
self.assertEqual(checkout.branch.get_master_branch().get_parent(),
163
get_transport('source').base)
165
def test_cbranch_hardlink(self):
166
self.requireFeature(HardlinkFeature)
167
# Later formats don't support hardlinks. Boo!
168
source = self.make_branch_and_tree('source', format='1.9')
169
self.build_tree(['source/file'])
171
source.commit('added file')
172
config = LocationConfig(osutils.abspath('target'))
173
config.set_user_option('cbranch_target', 'target_branch')
174
self.run_bzr('cbranch source target --lightweight')
175
checkout = workingtree.WorkingTree.open('target')
176
self.assertNotEqual(os.lstat(checkout.abspath('file')).st_ino,
177
os.lstat(source.abspath('file')).st_ino)
178
config = LocationConfig(osutils.abspath('target2'))
179
config.set_user_option('cbranch_target', 'target_branch2')
180
self.run_bzr('cbranch source target2 --lightweight --hardlink')
181
checkout2 = workingtree.WorkingTree.open('target2')
182
self.assertEqual(os.lstat(checkout2.abspath('file')).st_ino,
183
os.lstat(source.abspath('file')).st_ino)
185
def test_create_mirror(self):
186
source = self.make_branch_and_tree('source')
187
source.commit('message')
188
self.run_bzr('create-mirror source target')
189
target = branch.Branch.open('target')
190
self.assertEqual(source.last_revision(), target.last_revision())
191
self.assertEqual(source.branch.base, target.get_public_branch())
167
194
def test_suite():
168
195
return makeSuite(TestBzrTools)