/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 bzrlib/tests/test_urlutils.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2008-07-15 14:14:22 UTC
  • mfrom: (3242.3.41 stacking-policy)
  • Revision ID: pqm@pqm.ubuntu.com-20080715141422-gwfo1jmu1tm8lcf0
Implement policies for stacking (abentley)

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 
23
23
from bzrlib import osutils, urlutils, win32utils
24
24
import bzrlib
25
 
from bzrlib.errors import InvalidURL, InvalidURLJoin
 
25
from bzrlib.errors import InvalidURL, InvalidURLJoin, InvalidRebaseURLs
26
26
from bzrlib.tests import TestCaseInTempDir, TestCase, TestSkipped
27
27
 
28
28
 
614
614
        self.assertEqual("bar", derive("http://foo/bar"))
615
615
        self.assertEqual("bar", derive("bzr+ssh://foo/bar"))
616
616
        self.assertEqual("foo-bar", derive("lp:foo-bar"))
 
617
 
 
618
 
 
619
class TestRebaseURL(TestCase):
 
620
    """Test the behavior of rebase_url."""
 
621
 
 
622
    def test_non_relative(self):
 
623
        result = urlutils.rebase_url('file://foo', 'file://foo',
 
624
                                     'file://foo/bar')
 
625
        self.assertEqual('file://foo', result)
 
626
        result = urlutils.rebase_url('/foo', 'file://foo',
 
627
                                     'file://foo/bar')
 
628
        self.assertEqual('/foo', result)
 
629
 
 
630
    def test_different_ports(self):
 
631
        e = self.assertRaises(InvalidRebaseURLs, urlutils.rebase_url,
 
632
                              'foo', 'http://bar:80', 'http://bar:81')
 
633
        self.assertEqual(str(e), "URLs differ by more than path:"
 
634
                         " 'http://bar:80' and 'http://bar:81'")
 
635
 
 
636
    def test_different_hosts(self):
 
637
        e = self.assertRaises(InvalidRebaseURLs, urlutils.rebase_url,
 
638
                              'foo', 'http://bar', 'http://baz')
 
639
        self.assertEqual(str(e), "URLs differ by more than path: 'http://bar'"
 
640
                         " and 'http://baz'")
 
641
 
 
642
    def test_different_protocol(self):
 
643
        e = self.assertRaises(InvalidRebaseURLs, urlutils.rebase_url,
 
644
                              'foo', 'http://bar', 'ftp://bar')
 
645
        self.assertEqual(str(e), "URLs differ by more than path: 'http://bar'"
 
646
                         " and 'ftp://bar'")
 
647
 
 
648
    def test_rebase_success(self):
 
649
        self.assertEqual('../bar', urlutils.rebase_url('bar', 'http://baz/',
 
650
                         'http://baz/qux'))
 
651
        self.assertEqual('qux/bar', urlutils.rebase_url('bar',
 
652
                         'http://baz/qux', 'http://baz/'))
 
653
        self.assertEqual('.', urlutils.rebase_url('foo',
 
654
                         'http://bar/', 'http://bar/foo/'))
 
655
 
 
656
    def test_determine_relative_path(self):
 
657
        self.assertEqual('../../baz/bar',
 
658
                         urlutils.determine_relative_path(
 
659
                         '/qux/quxx', '/baz/bar'))
 
660
        self.assertEqual('..',
 
661
                         urlutils.determine_relative_path(
 
662
                         '/bar/baz', '/bar'))
 
663
        self.assertEqual('baz',
 
664
                         urlutils.determine_relative_path(
 
665
                         '/bar', '/bar/baz'))
 
666
        self.assertEqual('.', urlutils.determine_relative_path(
 
667
                         '/bar', '/bar'))