40
40
info.describe_layout(tree.branch.repository, control=tree.controldir))
41
41
tree.branch.repository.set_make_working_trees(False)
42
42
self.assertEqual('Unshared repository with colocated branches',
43
info.describe_layout(tree.branch.repository, control=tree.controldir))
43
info.describe_layout(tree.branch.repository, control=tree.controldir))
44
44
self.assertEqual('Standalone branch',
45
info.describe_layout(tree.branch.repository, tree.branch,
46
control=tree.controldir))
45
info.describe_layout(tree.branch.repository, tree.branch,
46
control=tree.controldir))
47
47
self.assertEqual('Standalone branchless tree',
48
info.describe_layout(tree.branch.repository, None, tree,
49
control=tree.controldir))
48
info.describe_layout(tree.branch.repository, None, tree,
49
control=tree.controldir))
50
50
self.assertEqual('Standalone tree',
51
info.describe_layout(tree.branch.repository, tree.branch, tree,
52
control=tree.controldir))
51
info.describe_layout(tree.branch.repository, tree.branch, tree,
52
control=tree.controldir))
53
53
tree.branch.bind(tree.branch)
54
54
self.assertEqual('Bound branch',
55
info.describe_layout(tree.branch.repository, tree.branch,
56
control=tree.controldir))
55
info.describe_layout(tree.branch.repository, tree.branch,
56
control=tree.controldir))
57
57
self.assertEqual('Checkout',
58
info.describe_layout(tree.branch.repository, tree.branch, tree,
59
control=tree.controldir))
58
info.describe_layout(tree.branch.repository, tree.branch, tree,
59
control=tree.controldir))
60
60
checkout = tree.branch.create_checkout('checkout', lightweight=True)
61
61
self.assertEqual('Lightweight checkout',
62
info.describe_layout(checkout.branch.repository, checkout.branch,
63
checkout, control=tree.controldir))
62
info.describe_layout(checkout.branch.repository, checkout.branch,
63
checkout, control=tree.controldir))
65
65
def test_describe_repository_layout(self):
66
66
repository = self.make_repository('.', shared=True)
67
67
tree = controldir.ControlDir.create_branch_convenience('tree',
68
force_new_tree=True).controldir.open_workingtree()
68
force_new_tree=True).controldir.open_workingtree()
69
69
self.assertEqual('Shared repository with trees and colocated branches',
70
info.describe_layout(tree.branch.repository, control=tree.controldir))
70
info.describe_layout(tree.branch.repository, control=tree.controldir))
71
71
repository.set_make_working_trees(False)
72
72
self.assertEqual('Shared repository with colocated branches',
73
info.describe_layout(tree.branch.repository, control=tree.controldir))
73
info.describe_layout(tree.branch.repository, control=tree.controldir))
74
74
self.assertEqual('Repository branch',
75
info.describe_layout(tree.branch.repository, tree.branch,
76
control=tree.controldir))
75
info.describe_layout(tree.branch.repository, tree.branch,
76
control=tree.controldir))
77
77
self.assertEqual('Repository branchless tree',
78
info.describe_layout(tree.branch.repository, None, tree,
79
control=tree.controldir))
78
info.describe_layout(tree.branch.repository, None, tree,
79
control=tree.controldir))
80
80
self.assertEqual('Repository tree',
81
info.describe_layout(tree.branch.repository, tree.branch, tree,
82
control=tree.controldir))
81
info.describe_layout(tree.branch.repository, tree.branch, tree,
82
control=tree.controldir))
83
83
tree.branch.bind(tree.branch)
84
84
self.assertEqual('Repository checkout',
85
info.describe_layout(tree.branch.repository, tree.branch, tree,
86
control=tree.controldir))
85
info.describe_layout(tree.branch.repository, tree.branch, tree,
86
control=tree.controldir))
87
87
checkout = tree.branch.create_checkout('checkout', lightweight=True)
88
88
self.assertEqual('Lightweight checkout',
89
info.describe_layout(checkout.branch.repository, checkout.branch,
90
checkout, control=tree.controldir))
89
info.describe_layout(checkout.branch.repository, checkout.branch,
90
checkout, control=tree.controldir))
92
92
def assertTreeDescription(self, format):
93
93
"""Assert a tree's format description matches expectations"""
94
94
self.make_branch_and_tree('%s_tree' % format, format=format)
95
95
tree = workingtree.WorkingTree.open('%s_tree' % format)
96
96
self.assertEqual(format, info.describe_format(tree.controldir,
97
tree.branch.repository, tree.branch, tree))
97
tree.branch.repository, tree.branch, tree))
99
99
def assertCheckoutDescription(self, format, expected=None):
100
100
"""Assert a checkout's format description matches expectations"""
103
103
branch = self.make_branch('%s_cobranch' % format, format=format)
104
104
# this ought to be easier...
105
105
branch.create_checkout('%s_co' % format,
106
lightweight=True).controldir.destroy_workingtree()
106
lightweight=True).controldir.destroy_workingtree()
107
107
control = controldir.ControlDir.open('%s_co' % format)
108
108
old_format = control._format.workingtree_format
110
110
control._format.workingtree_format = \
111
controldir.format_registry.make_controldir(
112
format).workingtree_format
111
controldir.format_registry.make_controldir(format).workingtree_format
113
112
control.create_workingtree()
114
113
tree = workingtree.WorkingTree.open('%s_co' % format)
115
114
format_description = info.describe_format(tree.controldir,
116
tree.branch.repository, tree.branch, tree)
115
tree.branch.repository, tree.branch, tree)
117
116
self.assertEqual(expected, format_description,
118
"checkout of format called %r was described as %r" %
119
(expected, format_description))
117
"checkout of format called %r was described as %r" %
118
(expected, format_description))
121
120
control._format.workingtree_format = old_format
210
209
format.set_branch_format(_mod_bzrbranch.BzrBranchFormat6())
211
210
tree = self.make_branch_and_tree('unknown', format=format)
212
211
self.assertEqual('unnamed', info.describe_format(tree.controldir,
213
tree.branch.repository, tree.branch, tree))
212
tree.branch.repository, tree.branch, tree))
215
214
def test_gather_location_controldir_only(self):
216
215
bzrdir = self.make_controldir('.')
217
216
self.assertEqual([('control directory', bzrdir.user_url)],
218
info.gather_location_info(control=bzrdir))
217
info.gather_location_info(control=bzrdir))
220
219
def test_gather_location_standalone(self):
221
220
tree = self.make_branch_and_tree('tree')
222
221
self.assertEqual([('branch root', tree.controldir.root_transport.base)],
223
info.gather_location_info(
224
tree.branch.repository, tree.branch, tree, control=tree.controldir))
222
info.gather_location_info(
223
tree.branch.repository, tree.branch, tree, control=tree.controldir))
225
224
self.assertEqual([('branch root', tree.controldir.root_transport.base)],
226
info.gather_location_info(
227
tree.branch.repository, tree.branch, control=tree.controldir))
225
info.gather_location_info(
226
tree.branch.repository, tree.branch, control=tree.controldir))
230
229
def test_gather_location_repo(self):