66
62
class TestAliasDirectory(TestCaseWithTransport):
69
super(TestAliasDirectory, self).setUp()
70
self.branch = self.make_branch('.')
72
def assertAliasFromBranch(self, setter, value, alias):
74
self.assertEqual(value, directories.dereference(alias))
76
64
def test_lookup_parent(self):
77
self.assertAliasFromBranch(self.branch.set_parent, 'http://a',
65
branch = self.make_branch('.')
66
branch.set_parent('http://a')
67
self.assertEqual('http://a', directories.dereference(':parent'))
80
69
def test_lookup_submit(self):
81
self.assertAliasFromBranch(self.branch.set_submit_branch, 'http://b',
70
branch = self.make_branch('.')
71
branch.set_submit_branch('http://b')
72
self.assertEqual('http://b', directories.dereference(':submit'))
84
74
def test_lookup_public(self):
85
self.assertAliasFromBranch(self.branch.set_public_branch, 'http://c',
75
branch = self.make_branch('.')
76
branch.set_public_branch('http://c')
77
self.assertEqual('http://c', directories.dereference(':public'))
88
79
def test_lookup_bound(self):
89
self.assertAliasFromBranch(self.branch.set_bound_location, 'http://d',
80
branch = self.make_branch('.')
81
branch.set_bound_location('http://d')
82
self.assertEqual('http://d', directories.dereference(':bound'))
92
84
def test_lookup_push(self):
93
self.assertAliasFromBranch(self.branch.set_push_location, 'http://e',
85
branch = self.make_branch('.')
86
branch.set_push_location('http://e')
87
self.assertEqual('http://e', directories.dereference(':push'))
96
89
def test_lookup_this(self):
97
self.assertEqual(self.branch.base, directories.dereference(':this'))
90
branch = self.make_branch('.')
91
self.assertEqual(branch.base, directories.dereference(':this'))
99
93
def test_extra_path(self):
100
self.assertEqual(urlutils.join(self.branch.base, 'arg'),
94
branch = self.make_branch('.')
95
self.assertEqual(urlutils.join(branch.base, 'arg'),
101
96
directories.dereference(':this/arg'))
103
98
def test_lookup_badname(self):
99
branch = self.make_branch('.')
104
100
e = self.assertRaises(errors.InvalidLocationAlias,
105
101
directories.dereference, ':booga')
106
102
self.assertEqual('":booga" is not a valid location alias.',
109
105
def test_lookup_badvalue(self):
106
branch = self.make_branch('.')
110
107
e = self.assertRaises(errors.UnsetLocationAlias,
111
108
directories.dereference, ':parent')
112
109
self.assertEqual('No parent location assigned.', str(e))
114
def test_register_location_alias(self):
115
self.addCleanup(AliasDirectory.branch_aliases.remove, "booga")
116
AliasDirectory.branch_aliases.register("booga",
117
lambda b: "UHH?", help="Nobody knows")
118
self.assertEqual("UHH?", directories.dereference(":booga"))
121
class TestColocatedDirectory(TestCaseWithTransport):
123
def test_lookup_non_default(self):
124
default = self.make_branch('.')
125
non_default = default.bzrdir.create_branch(name='nondefault')
126
self.assertEqual(non_default.base, directories.dereference('co:nondefault'))
128
def test_lookup_default(self):
129
default = self.make_branch('.')
130
non_default = default.bzrdir.create_branch(name='nondefault')
131
self.assertEqual(urlutils.join_segment_parameters(default.bzrdir.user_url,
132
{"branch": ""}), directories.dereference('co:'))
134
def test_no_such_branch(self):
135
# No error is raised in this case, that is up to the code that actually
137
default = self.make_branch('.')
138
self.assertEqual(urlutils.join_segment_parameters(default.bzrdir.user_url,
139
{"branch": "foo"}), directories.dereference('co:foo'))