62
66
class TestAliasDirectory(TestCaseWithTransport):
69
super(TestAliasDirectory, self).setUp()
70
self.branch = self.make_branch('.')
72
def assertAliasFromBranch(self, setter, value, alias):
74
self.assertEquals(value, directories.dereference(alias))
64
76
def test_lookup_parent(self):
65
branch = self.make_branch('.')
66
branch.set_parent('http://a')
67
self.assertEqual('http://a', directories.dereference(':parent'))
77
self.assertAliasFromBranch(self.branch.set_parent, 'http://a',
69
80
def test_lookup_submit(self):
70
branch = self.make_branch('.')
71
branch.set_submit_branch('http://b')
72
self.assertEqual('http://b', directories.dereference(':submit'))
81
self.assertAliasFromBranch(self.branch.set_submit_branch, 'http://b',
74
84
def test_lookup_public(self):
75
branch = self.make_branch('.')
76
branch.set_public_branch('http://c')
77
self.assertEqual('http://c', directories.dereference(':public'))
85
self.assertAliasFromBranch(self.branch.set_public_branch, 'http://c',
79
88
def test_lookup_bound(self):
80
branch = self.make_branch('.')
81
branch.set_bound_location('http://d')
82
self.assertEqual('http://d', directories.dereference(':bound'))
89
self.assertAliasFromBranch(self.branch.set_bound_location, 'http://d',
84
92
def test_lookup_push(self):
85
branch = self.make_branch('.')
86
branch.set_push_location('http://e')
87
self.assertEqual('http://e', directories.dereference(':push'))
93
self.assertAliasFromBranch(self.branch.set_push_location, 'http://e',
89
96
def test_lookup_this(self):
90
branch = self.make_branch('.')
91
self.assertEqual(branch.base, directories.dereference(':this'))
97
self.assertEqual(self.branch.base, directories.dereference(':this'))
93
99
def test_extra_path(self):
94
branch = self.make_branch('.')
95
self.assertEqual(urlutils.join(branch.base, 'arg'),
100
self.assertEqual(urlutils.join(self.branch.base, 'arg'),
96
101
directories.dereference(':this/arg'))
98
103
def test_lookup_badname(self):
99
branch = self.make_branch('.')
100
104
e = self.assertRaises(errors.InvalidLocationAlias,
101
105
directories.dereference, ':booga')
102
106
self.assertEqual('":booga" is not a valid location alias.',
105
109
def test_lookup_badvalue(self):
106
branch = self.make_branch('.')
107
110
e = self.assertRaises(errors.UnsetLocationAlias,
108
111
directories.dereference, ':parent')
109
112
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.assertEquals("UHH?", directories.dereference(":booga"))