/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/tests/test_directory_service.py

  • Committer: Jelmer Vernooij
  • Date: 2019-05-29 03:22:34 UTC
  • mfrom: (7303 work)
  • mto: This revision was merged to the branch mainline in revision 7306.
  • Revision ID: jelmer@jelmer.uk-20190529032234-mt3fuws8gq03tapi
Merge trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
    # eg 'file:///foo' on Unix, or 'file:///C:/foo' on Windows
37
37
    base = urlutils.local_path_to_url('/foo')
38
38
 
39
 
    def look_up(self, name, url):
 
39
    def look_up(self, name, url, purpose=None):
40
40
        return self.base + name
41
41
 
42
42
 
55
55
    def test_dereference(self):
56
56
        self.assertEqual(FooService.base + 'bar',
57
57
                         self.registry.dereference('foo:bar'))
 
58
        self.assertEqual(FooService.base + 'bar',
 
59
                         self.registry.dereference('foo:bar', purpose='write'))
58
60
        self.assertEqual('baz:qux', self.registry.dereference('baz:qux'))
 
61
        self.assertEqual(
 
62
            'baz:qux',
 
63
            self.registry.dereference('baz:qux', purpose='write'))
59
64
 
60
65
    def test_get_transport(self):
61
66
        directories.register('foo:', FooService, 'Map foo URLs to http urls')
64
69
                         transport.get_transport('foo:bar').base)
65
70
 
66
71
 
 
72
class OldService(object):
 
73
    """A directory service that maps the name to a FILE url"""
 
74
 
 
75
    # eg 'file:///foo' on Unix, or 'file:///C:/foo' on Windows
 
76
    base = urlutils.local_path_to_url('/foo')
 
77
 
 
78
    def look_up(self, name, url):
 
79
        return self.base + name
 
80
 
 
81
 
 
82
class TestOldDirectoryLookup(TestCase):
 
83
    """Test compatibility with older implementations of Directory
 
84
    that don't support the purpose argument."""
 
85
 
 
86
    def setUp(self):
 
87
        super(TestOldDirectoryLookup, self).setUp()
 
88
        self.registry = DirectoryServiceRegistry()
 
89
        self.registry.register('old:', OldService, 'Map foo URLs to http urls')
 
90
 
 
91
    def test_dereference(self):
 
92
        self.assertEqual(OldService.base + 'bar',
 
93
                         self.registry.dereference('old:bar'))
 
94
        self.assertEqual(OldService.base + 'bar',
 
95
                         self.registry.dereference('old:bar', purpose='write'))
 
96
        self.assertEqual('baz:qux', self.registry.dereference('baz:qux'))
 
97
        self.assertEqual(
 
98
            'baz:qux',
 
99
            self.registry.dereference('baz:qux', purpose='write'))
 
100
 
 
101
 
67
102
class TestAliasDirectory(TestCaseWithTransport):
68
103
 
69
104
    def setUp(self):
76
111
 
77
112
    def test_lookup_parent(self):
78
113
        self.assertAliasFromBranch(self.branch.set_parent, 'http://a',
79
 
                                  ':parent')
 
114
                                   ':parent')
80
115
 
81
116
    def test_lookup_submit(self):
82
117
        self.assertAliasFromBranch(self.branch.set_submit_branch, 'http://b',
115
150
    def test_register_location_alias(self):
116
151
        self.addCleanup(AliasDirectory.branch_aliases.remove, "booga")
117
152
        AliasDirectory.branch_aliases.register("booga",
118
 
            lambda b: "UHH?", help="Nobody knows")
 
153
                                               lambda b: "UHH?", help="Nobody knows")
119
154
        self.assertEqual("UHH?", directories.dereference(":booga"))
120
155
 
121
156
 
124
159
    def test_lookup_non_default(self):
125
160
        default = self.make_branch('.')
126
161
        non_default = default.controldir.create_branch(name='nondefault')
127
 
        self.assertEqual(non_default.base, directories.dereference('co:nondefault'))
 
162
        self.assertEqual(non_default.base,
 
163
                         directories.dereference('co:nondefault'))
128
164
 
129
165
    def test_lookup_default(self):
130
166
        default = self.make_branch('.')
131
167
        non_default = default.controldir.create_branch(name='nondefault')
132
168
        self.assertEqual(urlutils.join_segment_parameters(default.controldir.user_url,
133
 
            {"branch": ""}), directories.dereference('co:'))
 
169
                                                          {"branch": ""}), directories.dereference('co:'))
134
170
 
135
171
    def test_no_such_branch(self):
136
172
        # No error is raised in this case, that is up to the code that actually
137
173
        # opens the branch.
138
174
        default = self.make_branch('.')
139
175
        self.assertEqual(urlutils.join_segment_parameters(default.controldir.user_url,
140
 
            {"branch": "foo"}), directories.dereference('co:foo'))
 
176
                                                          {"branch": "foo"}), directories.dereference('co:foo'))