36
36
# eg 'file:///foo' on Unix, or 'file:///C:/foo' on Windows
37
37
base = urlutils.local_path_to_url('/foo')
39
def look_up(self, name, url):
39
def look_up(self, name, url, purpose=None):
40
40
return self.base + name
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'))
63
self.registry.dereference('baz:qux', purpose='write'))
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)
72
class OldService(object):
73
"""A directory service that maps the name to a FILE url"""
75
# eg 'file:///foo' on Unix, or 'file:///C:/foo' on Windows
76
base = urlutils.local_path_to_url('/foo')
78
def look_up(self, name, url):
79
return self.base + name
82
class TestOldDirectoryLookup(TestCase):
83
"""Test compatibility with older implementations of Directory
84
that don't support the purpose argument."""
87
super(TestOldDirectoryLookup, self).setUp()
88
self.registry = DirectoryServiceRegistry()
89
self.registry.register('old:', OldService, 'Map foo URLs to http urls')
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'))
99
self.registry.dereference('baz:qux', purpose='write'))
67
102
class TestAliasDirectory(TestCaseWithTransport):