1
# Copyright (C) 2007, 2008, 2009 Canonical Ltd
1
# Copyright (C) 2007, 2008, 2009, 2011, 2012 Canonical Ltd
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
47
48
def test_tree_with_pending_merge_to_branch(self):
48
49
tree = self.make_branch_and_tree('tree')
50
tree.commit('unchanged')
49
51
other_tree = tree.bzrdir.sprout('other').open_workingtree()
50
self.build_tree(['other/file'])
51
other_tree.add('file')
52
other_tree.commit('file added')
52
other_tree.commit('mergeable commit')
53
53
tree.merge_from_branch(other_tree.branch)
54
54
reconfiguration = reconfigure.Reconfigure.to_branch(tree.bzrdir)
55
55
self.assertRaises(errors.UncommittedChanges, reconfiguration.apply)
72
72
checkout = branch.create_checkout('checkout')
73
73
reconfiguration = reconfigure.Reconfigure.to_branch(checkout.bzrdir)
74
74
reconfiguration.apply()
75
self.assertIs(None, checkout.branch.get_bound_location())
75
reconfigured = bzrdir.BzrDir.open('checkout').open_branch()
76
self.assertIs(None, reconfigured.get_bound_location())
77
78
def prepare_lightweight_checkout_to_branch(self):
78
79
branch = self.make_branch('branch')
146
147
reconfiguration = reconfigure.Reconfigure(branch.bzrdir)
147
148
self.assertRaises(errors.NoBindLocation,
148
149
reconfiguration._select_bind_location)
149
branch.set_parent('http://parent')
152
branch.set_parent('http://parent')
155
reconfiguration = reconfigure.Reconfigure(branch.bzrdir)
150
156
self.assertEqual('http://parent',
151
157
reconfiguration._select_bind_location())
152
branch.set_push_location('sftp://push')
160
branch.set_push_location('sftp://push')
163
reconfiguration = reconfigure.Reconfigure(branch.bzrdir)
153
164
self.assertEqual('sftp://push',
154
165
reconfiguration._select_bind_location())
155
branch.set_bound_location('bzr://foo/old-bound')
156
branch.set_bound_location(None)
168
branch.set_bound_location('bzr://foo/old-bound')
169
branch.set_bound_location(None)
172
reconfiguration = reconfigure.Reconfigure(branch.bzrdir)
157
173
self.assertEqual('bzr://foo/old-bound',
158
174
reconfiguration._select_bind_location())
159
branch.set_bound_location('bzr://foo/cur-bound')
177
branch.set_bound_location('bzr://foo/cur-bound')
180
reconfiguration = reconfigure.Reconfigure(branch.bzrdir)
160
181
self.assertEqual('bzr://foo/cur-bound',
161
182
reconfiguration._select_bind_location())
162
183
reconfiguration.new_bound_location = 'ftp://user-specified'
179
200
reconfiguration = reconfigure.Reconfigure.to_checkout(tree.bzrdir)
180
201
self.assertRaises(errors.NoBindLocation, reconfiguration.apply)
181
202
# setting a parent allows it to become a checkout
182
tree.branch.set_parent(parent.base)
203
tree.branch.lock_write()
205
tree.branch.set_parent(parent.base)
208
reconfiguration = reconfigure.Reconfigure.to_checkout(tree.bzrdir)
183
209
reconfiguration.apply()
184
210
# supplying a location allows it to become a checkout
185
211
tree2 = self.make_branch_and_tree('tree2')
198
224
self.assertRaises(errors.NoBindLocation, reconfiguration.apply)
199
225
# setting a parent allows it to become a checkout
200
tree.branch.set_parent(parent.base)
226
tree.branch.lock_write()
228
tree.branch.set_parent(parent.base)
231
reconfiguration = reconfigure.Reconfigure.to_lightweight_checkout(
201
233
reconfiguration.apply()
202
234
# supplying a location allows it to become a checkout
203
235
tree2 = self.make_branch_and_tree('tree2')
259
291
def test_branch_to_lightweight_checkout_failure(self):
260
292
parent, child, reconfiguration = \
261
293
self.prepare_branch_to_lightweight_checkout()
262
old_Repository_fetch = repository.Repository.fetch
263
repository.Repository.fetch = None
294
old_Repository_fetch = vf_repository.VersionedFileRepository.fetch
295
vf_repository.VersionedFileRepository.fetch = None
265
297
self.assertRaises(TypeError, reconfiguration.apply)
267
repository.Repository.fetch = old_Repository_fetch
299
vf_repository.VersionedFileRepository.fetch = old_Repository_fetch
268
300
child = _mod_branch.Branch.open('child')
269
301
self.assertContainsRe(child.base, 'child/$')