Rev 2249: lp:/// indirection works in file:///home/mbp/bzr/Work/lpurl/
Martin Pool
mbp at sourcefrog.net
Fri Jan 26 03:05:09 GMT 2007
------------------------------------------------------------
revno: 2249
revision-id: mbp at sourcefrog.net-20070126030508-s5im2cxv57xqk7pu
parent: mbp at sourcefrog.net-20070126012338-4de0rkq7p5diyv47
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: lpurl
timestamp: Fri 2007-01-26 14:05:08 +1100
message:
lp:/// indirection works
modified:
bzrlib/plugins/launchpad/__init__.py __init__.py-20060315182712-2d5feebd2a1032dc
bzrlib/plugins/launchpad/lp_indirect.py lp_indirect.py-20070126012204-de5rugwlt22c7u7e-1
bzrlib/plugins/launchpad/test_lp_indirect.py test_lp_indirect.py-20070126002743-oyle362tzv9cd8mi-1
=== modified file 'bzrlib/plugins/launchpad/__init__.py'
--- a/bzrlib/plugins/launchpad/__init__.py 2007-01-26 01:23:38 +0000
+++ b/bzrlib/plugins/launchpad/__init__.py 2007-01-26 03:05:08 +0000
@@ -120,10 +120,11 @@
print 'Branch registered.'
register_command(cmd_register_branch)
+
register_lazy_transport(
'lp://',
'bzrlib.plugins.launchpad.lp_indirect',
- 'LaunchpadIndirectTransport')
+ 'launchpad_transport_indirect')
def test_suite():
"""Called by bzrlib to fetch tests for this plugin"""
=== modified file 'bzrlib/plugins/launchpad/lp_indirect.py'
--- a/bzrlib/plugins/launchpad/lp_indirect.py 2007-01-26 01:23:38 +0000
+++ b/bzrlib/plugins/launchpad/lp_indirect.py 2007-01-26 03:05:08 +0000
@@ -22,11 +22,22 @@
again.
"""
-from bzrlib.transport import Transport
-
-class LaunchpadIndirectTransport(Transport):
-
- pass
+from bzrlib import (
+ errors,
+ )
+from bzrlib.transport import (
+ get_transport,
+ Transport,
+ )
+
+
+def launchpad_transport_indirect(base_url):
+ """Factory that returns the real transport for a lp: url"""
+ if base_url.startswith('lp:///'):
+ real_url = 'http://code.launchpad.net/' + base_url[6:]
+ else:
+ raise errors.InvalidURL(path=base_url)
+ return get_transport(real_url)
def get_test_permutations():
=== modified file 'bzrlib/plugins/launchpad/test_lp_indirect.py'
--- a/bzrlib/plugins/launchpad/test_lp_indirect.py 2007-01-26 01:23:38 +0000
+++ b/bzrlib/plugins/launchpad/test_lp_indirect.py 2007-01-26 03:05:08 +0000
@@ -17,6 +17,7 @@
"""Tests for indirect branch urls through Launchpad.net"""
from bzrlib import (
+ errors,
transport,
)
from bzrlib.transport import get_transport
@@ -28,8 +29,14 @@
"""A launchpad url should map to a http url"""
# These can change to use the smartserver protocol or something
# else in the future.
- url = 'lp:///plone'
+ url = 'lp:///apt'
t = get_transport(url)
real_url = t.base
- self.assertStartsWith(real_url, 'http')
+ self.assertEquals(real_url, 'http://code.launchpad.net/apt/')
+
+ # TODO: check we get an error if the url is unreasonable
+ def test_error_for_bad_indirection(self):
+ self.assertRaises(errors.InvalidURL,
+ get_transport,
+ 'lp://ratotehunoahu')
More information about the bazaar-commits
mailing list