~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/plugins/launchpad/test_lp_indirect.py

Merge from bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Copyright (C) 2007 Canonical Ltd
 
2
#
 
3
# This program is free software; you can redistribute it and/or modify
 
4
# it under the terms of the GNU General Public License as published by
 
5
# the Free Software Foundation; either version 2 of the License, or
 
6
# (at your option) any later version.
 
7
#
 
8
# This program is distributed in the hope that it will be useful,
 
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
11
# GNU General Public License for more details.
 
12
#
 
13
# You should have received a copy of the GNU General Public License
 
14
# along with this program; if not, write to the Free Software
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
16
 
 
17
"""Tests for indirect branch urls through Launchpad.net"""
 
18
 
 
19
from bzrlib import (
 
20
    errors,
 
21
    transport,
 
22
    )
 
23
from bzrlib.transport import get_transport
 
24
from bzrlib.tests import TestCase, TestSkipped
 
25
 
 
26
 
 
27
class IndirectUrlTests(TestCase):
 
28
    """Tests for indirect branch urls through Launchpad.net"""
 
29
 
 
30
    def test_short_form(self):
 
31
        """A launchpad url should map to a http url"""
 
32
        url = 'lp:apt'
 
33
        t = get_transport(url)
 
34
        self.assertEquals(t.base, 'http://code.launchpad.net/apt/')
 
35
 
 
36
    def test_indirect_through_url(self):
 
37
        """A launchpad url should map to a http url"""
 
38
        # These can change to use the smartserver protocol or something 
 
39
        # else in the future.
 
40
        url = 'lp:///apt'
 
41
        t = get_transport(url)
 
42
        real_url = t.base
 
43
        self.assertEquals(real_url, 'http://code.launchpad.net/apt/')
 
44
 
 
45
    # TODO: check we get an error if the url is unreasonable
 
46
    def test_error_for_bad_indirection(self):
 
47
        self.assertRaises(errors.InvalidURL,
 
48
            get_transport,
 
49
            'lp://ratotehunoahu')
 
50