/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
2245.8.1 by Martin Pool
Start adding tests for launchpad indirection
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
2245.8.3 by Martin Pool
Start adding indirection transport
19
from bzrlib import (
2245.8.4 by Martin Pool
lp:/// indirection works
20
    errors,
2245.8.3 by Martin Pool
Start adding indirection transport
21
    transport,
22
    )
23
from bzrlib.transport import get_transport
2245.8.1 by Martin Pool
Start adding tests for launchpad indirection
24
from bzrlib.tests import TestCase, TestSkipped
25
2245.8.7 by Martin Pool
small review cleanups
26
2245.8.1 by Martin Pool
Start adding tests for launchpad indirection
27
class IndirectUrlTests(TestCase):
2245.8.7 by Martin Pool
small review cleanups
28
    """Tests for indirect branch urls through Launchpad.net"""
2245.8.1 by Martin Pool
Start adding tests for launchpad indirection
29
2245.8.5 by Martin Pool
Add short-form lp:PRODUCT url form
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
2245.8.3 by Martin Pool
Start adding indirection transport
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.
2245.8.4 by Martin Pool
lp:/// indirection works
40
        url = 'lp:///apt'
2245.8.3 by Martin Pool
Start adding indirection transport
41
        t = get_transport(url)
42
        real_url = t.base
2245.8.4 by Martin Pool
lp:/// indirection works
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')
2245.8.3 by Martin Pool
Start adding indirection transport
50