~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_urlutils.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2011-08-12 01:42:55 UTC
  • mfrom: (6055.2.12 unparsedurl)
  • Revision ID: pqm@pqm.ubuntu.com-20110812014255-y3thbw6gdn7cw6uz
(jelmer) Add a URL object for manipulating parsed URLs. (Jelmer Vernooij)

Show diffs side-by-side

added added

removed removed

Lines of Context:
793
793
 
794
794
class TestParseURL(TestCase):
795
795
 
796
 
    def test_parse_url(self):
797
 
        self.assertEqual(urlutils.parse_url('http://example.com:80/one'),
798
 
            ('http', None, None, 'example.com', 80, '/one'))
799
 
        self.assertEqual(urlutils.parse_url('http://[1:2:3::40]/one'),
800
 
                ('http', None, None, '1:2:3::40', None, '/one'))
801
 
        self.assertEqual(urlutils.parse_url('http://[1:2:3::40]:80/one'),
802
 
                ('http', None, None, '1:2:3::40', 80, '/one'))
 
796
    def test_parse_simple(self):
 
797
        parsed = urlutils.parse_url('http://example.com:80/one')
 
798
        self.assertEquals(('http', None, None, 'example.com', 80, '/one'),
 
799
            parsed)
 
800
 
 
801
    def test_ipv6(self):
 
802
        parsed = urlutils.parse_url('http://[1:2:3::40]/one')
 
803
        self.assertEquals(('http', None, None, '1:2:3::40', None, '/one'),
 
804
            parsed)
 
805
 
 
806
    def test_ipv6_port(self):
 
807
        parsed = urlutils.parse_url('http://[1:2:3::40]:80/one')
 
808
        self.assertEquals(('http', None, None, '1:2:3::40', 80, '/one'),
 
809
            parsed)
 
810
 
 
811
 
 
812
class TestURL(TestCase):
 
813
 
 
814
    def test_parse_simple(self):
 
815
        parsed = urlutils.URL.from_string('http://example.com:80/one')
 
816
        self.assertEquals('http', parsed.scheme)
 
817
        self.assertIs(None, parsed.user)
 
818
        self.assertIs(None, parsed.password)
 
819
        self.assertEquals('example.com', parsed.host)
 
820
        self.assertEquals(80, parsed.port)
 
821
        self.assertEquals('/one', parsed.path)
 
822
 
 
823
    def test_ipv6(self):
 
824
        parsed = urlutils.URL.from_string('http://[1:2:3::40]/one')
 
825
        self.assertEquals('http', parsed.scheme)
 
826
        self.assertIs(None, parsed.port)
 
827
        self.assertIs(None, parsed.user)
 
828
        self.assertIs(None, parsed.password)
 
829
        self.assertEquals('1:2:3::40', parsed.host)
 
830
        self.assertEquals('/one', parsed.path)
 
831
 
 
832
    def test_ipv6_port(self):
 
833
        parsed = urlutils.URL.from_string('http://[1:2:3::40]:80/one')
 
834
        self.assertEquals('http', parsed.scheme)
 
835
        self.assertEquals('1:2:3::40', parsed.host)
 
836
        self.assertIs(None, parsed.user)
 
837
        self.assertIs(None, parsed.password)
 
838
        self.assertEquals(80, parsed.port)
 
839
        self.assertEquals('/one', parsed.path)
 
840
 
 
841
    def test_quoted(self):
 
842
        parsed = urlutils.URL.from_string(
 
843
            'http://ro%62ey:h%40t@ex%41mple.com:2222/path')
 
844
        self.assertEquals(parsed.quoted_host, 'ex%41mple.com')
 
845
        self.assertEquals(parsed.host, 'exAmple.com')
 
846
        self.assertEquals(parsed.port, 2222)
 
847
        self.assertEquals(parsed.quoted_user, 'ro%62ey')
 
848
        self.assertEquals(parsed.user, 'robey')
 
849
        self.assertEquals(parsed.quoted_password, 'h%40t')
 
850
        self.assertEquals(parsed.password, 'h@t')
 
851
        self.assertEquals(parsed.path, '/path')
 
852
 
 
853
    def test_eq(self):
 
854
        parsed1 = urlutils.URL.from_string('http://[1:2:3::40]:80/one')
 
855
        parsed2 = urlutils.URL.from_string('http://[1:2:3::40]:80/one')
 
856
        self.assertEquals(parsed1, parsed2)
 
857
        self.assertEquals(parsed1, parsed1)
 
858
        parsed2.path = '/two'
 
859
        self.assertNotEquals(parsed1, parsed2)
 
860
 
 
861
    def test_repr(self):
 
862
        parsed = urlutils.URL.from_string('http://[1:2:3::40]:80/one')
 
863
        self.assertEquals(
 
864
            "<URL('http', None, None, '1:2:3::40', 80, '/one')>",
 
865
            repr(parsed))
 
866