• Home
  • Raw
  • Download

Lines Matching +full:path +full:- +full:parse

4 import urllib.parse
11 # Each parse_qsl testcase is a two-tuple that contains
41 # Each parse_qs testcase is a two-tuple that contains
74 result = urllib.parse.urlparse(url)
76 t = (result.scheme, result.netloc, result.path,
80 result2 = urllib.parse.urlunparse(result)
84 # the result of geturl() is a fixpoint; we can always parse it
86 result3 = urllib.parse.urlparse(result.geturl())
91 self.assertEqual(result3.path, result.path)
101 result = urllib.parse.urlsplit(url)
103 t = (result.scheme, result.netloc, result.path,
106 result2 = urllib.parse.urlunsplit(result)
110 # check the fixpoint property of re-parsing the result of geturl()
111 result3 = urllib.parse.urlsplit(result.geturl())
116 self.assertEqual(result3.path, result.path)
126 result = urllib.parse.parse_qsl(orig, keep_blank_values=True)
129 result = urllib.parse.parse_qsl(orig, keep_blank_values=False)
135 result = urllib.parse.parse_qs(orig, keep_blank_values=True)
139 result = urllib.parse.parse_qs(orig, keep_blank_values=False)
156 ('nfs://server/path/to/file.txt',
157 ('nfs', 'server', '/path/to/file.txt', '', '', ''),
158 ('nfs', 'server', '/path/to/file.txt', '', '')),
179 # urllib.parse.urlsplit treats 'http:' as an optimized special case,
218 self.assertEqual(urllib.parse.urljoin(base, relurl), expected)
221 self.assertEqual(urllib.parse.urljoin(baseb, relurlb), expectedb)
224 str_cases = ['Python', './Python','x-newscheme://foo.com/stuff','x://y','x:/y','x:/','/',]
227 self.assertEqual(urllib.parse.urlunsplit(urllib.parse.urlsplit(u)), u)
228 self.assertEqual(urllib.parse.urlunparse(urllib.parse.urlparse(u)), u)
279 # Issue 11467: path that starts with a number is not parsed correctly
280 self.assertEqual(urllib.parse.urlparse('mailto:1337@example.org'),
428 # Non-RFC-defined tests, covering variations of base and trailing
477 urlparsed = urllib.parse.urlparse(url)
488 self.assertRaises(ValueError, urllib.parse.urlparse, invalid_url)
507 result = urllib.parse.urldefrag(url)
514 p = urllib.parse.urlsplit('http://[FE80::822a:a8ff:fe49:470c%tESt]:1234')
518 p = urllib.parse.urlsplit(b'http://[FE80::822a:a8ff:fe49:470c%tESt]:1234')
524 p = urllib.parse.urlsplit(url)
527 self.assertEqual(p.path, "/doc/")
535 # since the scheme is always case-normalized
540 p = urllib.parse.urlsplit(url)
543 self.assertEqual(p.path, "/doc/")
557 p = urllib.parse.urlsplit(url)
560 self.assertEqual(p.path, "/doc/")
571 p = urllib.parse.urlsplit(url)
574 self.assertEqual(p.path, b"/doc/")
584 p = urllib.parse.urlsplit(url)
587 self.assertEqual(p.path, b"/doc/")
597 p = urllib.parse.urlsplit(url)
600 self.assertEqual(p.path, b"/doc/")
611 p = urllib.parse.urlsplit(url)
618 p = urllib.parse.urlsplit(url)
621 self.assertEqual(p.path, "/javascript:alert('msg')/")
632 p = urllib.parse.urlsplit(url)
635 self.assertEqual(p.path, b"/javascript:alert('msg')/")
644 # with scheme as cache-key
648 p = urllib.parse.urlsplit(url, scheme=scheme)
656 url = noise.decode("utf-8") + base_url
657 p = urllib.parse.urlsplit(url)
660 self.assertEqual(p.path, "/doc/")
669 url = noise + base_url.encode("utf-8")
670 p = urllib.parse.urlsplit(url)
673 self.assertEqual(p.path, b"/doc/")
680 self.assertEqual(p.geturl(), base_url.encode("utf-8"))
685 p = urllib.parse.urlsplit(noise.decode("utf-8") + query_spaces_url)
688 self.assertEqual(p.path, "/doc/")
693 p = urllib.parse.urlsplit("www.pypi.org ")
694 # That "hostname" gets considered a "path" due to the
696 # and re-assembles via geturl aka unurlsplit into the original.
701 self.assertEqual(urllib.parse.urlunsplit(p), "www.pypi.org ")
703 # with scheme as cache-key
705 scheme = noise.decode("utf-8") + "https" + noise.decode("utf-8")
707 p = urllib.parse.urlsplit(url, scheme=scheme)
714 for parse in (urllib.parse.urlsplit, urllib.parse.urlparse):
715 for port in ("foo", "1.5", "-1", "0x10", "-0", "1_1", " 1", "1 ", "६"):
716 with self.subTest(bytes=bytes, parse=parse, port=port):
725 p = parse(url)
733 for parse in (urllib.parse.urlsplit, urllib.parse.urlparse):
734 for scheme in (".", "+", "-", "0", "http&", "६http"):
735 with self.subTest(bytes=bytes, parse=parse, scheme=scheme):
742 p = parse(url)
755 p = urllib.parse.urlsplit(uri)
763 p = urllib.parse.urlparse(uri)
773 p = urllib.parse.urlsplit(uri)
781 p = urllib.parse.urlparse(uri)
791 self.assertEqual(urllib.parse.urlparse("http://example.com?blahblah=/foo"),
793 self.assertEqual(urllib.parse.urlparse(b"http://example.com?blahblah=/foo"),
800 # the same, otherwise it classifies the portion of url as path.
801 self.assertEqual(urllib.parse.urlparse("path"),
802 ('','','path','','',''))
803 self.assertEqual(urllib.parse.urlparse("//www.python.org:80"),
805 self.assertEqual(urllib.parse.urlparse("http://www.python.org:80"),
808 self.assertEqual(urllib.parse.urlparse(b"path"),
809 (b'',b'',b'path',b'',b'',b''))
810 self.assertEqual(urllib.parse.urlparse(b"//www.python.org:80"),
812 self.assertEqual(urllib.parse.urlparse(b"http://www.python.org:80"),
817 self.assertEqual(urllib.parse.urlparse("http:80"), ('http','','80','','',''))
818 self.assertEqual(urllib.parse.urlparse("https:80"), ('https','','80','','',''))
819 self.assertEqual(urllib.parse.urlparse("path:80"), ('path','','80','','',''))
820 self.assertEqual(urllib.parse.urlparse("http:"),('http','','','','',''))
821 self.assertEqual(urllib.parse.urlparse("https:"),('https','','','','',''))
822 self.assertEqual(urllib.parse.urlparse("http://www.python.org:80"),
825 self.assertEqual(urllib.parse.urlparse(b"http:80"), (b'http',b'',b'80',b'',b'',b''))
826 self.assertEqual(urllib.parse.urlparse(b"https:80"), (b'https',b'',b'80',b'',b'',b''))
827 self.assertEqual(urllib.parse.urlparse(b"path:80"), (b'path',b'',b'80',b'',b'',b''))
828 self.assertEqual(urllib.parse.urlparse(b"http:"),(b'http',b'',b'',b'',b'',b''))
829 self.assertEqual(urllib.parse.urlparse(b"https:"),(b'https',b'',b'',b'',b'',b''))
830 self.assertEqual(urllib.parse.urlparse(b"http://www.python.org:80"),
835 self.assertRaises(TypeError, urllib.parse.urlencode, "foo")
839 self.assertEqual(urllib.parse.urlparse("s3://foo.com/stuff"),
841 self.assertEqual(urllib.parse.urlparse("x-newscheme://foo.com/stuff"),
842 ('x-newscheme', 'foo.com', '/stuff', '', '', ''))
843 self.assertEqual(urllib.parse.urlparse("x-newscheme://foo.com/stuff?query#fragment"),
844 ('x-newscheme', 'foo.com', '/stuff', '', 'query', 'fragment'))
845 self.assertEqual(urllib.parse.urlparse("x-newscheme://foo.com/stuff?query"),
846 ('x-newscheme', 'foo.com', '/stuff', '', 'query', ''))
849 self.assertEqual(urllib.parse.urlparse(b"s3://foo.com/stuff"),
851 self.assertEqual(urllib.parse.urlparse(b"x-newscheme://foo.com/stuff"),
852 (b'x-newscheme', b'foo.com', b'/stuff', b'', b'', b''))
853 self.assertEqual(urllib.parse.urlparse(b"x-newscheme://foo.com/stuff?query#fragment"),
854 (b'x-newscheme', b'foo.com', b'/stuff', b'', b'query', b'fragment'))
855 self.assertEqual(urllib.parse.urlparse(b"x-newscheme://foo.com/stuff?query"),
856 (b'x-newscheme', b'foo.com', b'/stuff', b'', b'query', b''))
860 for func in (urllib.parse.urlparse, urllib.parse.urlsplit):
866 self.assertEqual(func("path", "ftp").scheme, "ftp")
867 self.assertEqual(func("path", scheme="ftp").scheme, "ftp")
868 self.assertEqual(func(b"path", scheme=b"ftp").scheme, b"ftp")
869 self.assertEqual(func("path").scheme, "")
870 self.assertEqual(func(b"path").scheme, b"")
871 self.assertEqual(func(b"path", "").scheme, b"")
876 ("http:#frag", "path", "frag"),
877 ("//example.net#frag", "path", "frag"),
878 ("index.html#frag", "path", "frag"),
881 ("#frag", "path", "frag"),
882 ("abc#@frag", "path", "@frag"),
883 ("//abc#@frag", "path", "@frag"),
884 ("//abc:80#@frag", "path", "@frag"),
885 ("//abc#@frag:80", "path", "@frag:80"),
888 for func in (urllib.parse.urlparse, urllib.parse.urlsplit):
889 if attr == "params" and func is urllib.parse.urlsplit:
890 attr = "path"
910 urllib.parse.urlparse("www.python.org", b"http")
912 urllib.parse.urlparse(b"www.python.org", "http")
914 urllib.parse.urlsplit("www.python.org", b"http")
916 urllib.parse.urlsplit(b"www.python.org", "http")
918 urllib.parse.urlunparse(( b"http", "www.python.org","","","",""))
920 urllib.parse.urlunparse(("http", b"www.python.org","","","",""))
922 urllib.parse.urlunsplit((b"http", "www.python.org","","",""))
924 urllib.parse.urlunsplit(("http", b"www.python.org","","",""))
926 urllib.parse.urljoin("http://python.org", b"http://python.org")
928 urllib.parse.urljoin(b"http://python.org", "http://python.org")
958 urllib.parse.DefragResult,
959 urllib.parse.SplitResult,
960 urllib.parse.ParseResult,
966 result = urllib.parse.parse_qs("key=\u0141%E9", encoding="latin-1")
968 result = urllib.parse.parse_qs("key=\u0141%C3%A9", encoding="utf-8")
970 result = urllib.parse.parse_qs("key=\u0141%C3%A9", encoding="ascii")
972 result = urllib.parse.parse_qs("key=\u0141%E9-", encoding="ascii")
973 self.assertEqual(result, {'key': ['\u0141\ufffd-']})
974 result = urllib.parse.parse_qs("key=\u0141%E9-", encoding="ascii",
976 self.assertEqual(result, {'key': ['\u0141-']})
979 result = urllib.parse.parse_qsl("key=\u0141%E9", encoding="latin-1")
981 result = urllib.parse.parse_qsl("key=\u0141%C3%A9", encoding="utf-8")
983 result = urllib.parse.parse_qsl("key=\u0141%C3%A9", encoding="ascii")
985 result = urllib.parse.parse_qsl("key=\u0141%E9-", encoding="ascii")
986 self.assertEqual(result, [('key', '\u0141\ufffd-')])
987 result = urllib.parse.parse_qsl("key=\u0141%E9-", encoding="ascii",
989 self.assertEqual(result, [('key', '\u0141-')])
993 urllib.parse.parse_qs('&'.join(['a=a']*11), max_num_fields=10)
994 urllib.parse.parse_qs('&'.join(['a=a']*10), max_num_fields=10)
1011 result = urllib.parse.parse_qs(orig, separator=';')
1013 result_bytes = urllib.parse.parse_qs(orig, separator=b';')
1032 result = urllib.parse.parse_qsl(orig, separator=';')
1034 result_bytes = urllib.parse.parse_qsl(orig, separator=b';')
1039 # Other tests incidentally urlencode things; test non-covered cases:
1041 result = urllib.parse.urlencode({'a': [1, 2], 'b': (3, 4, 5)}, True)
1049 result = urllib.parse.urlencode({'a': Trivial()}, True)
1053 result = urllib.parse.urlencode({'a': 'some value'})
1055 result = urllib.parse.urlencode({'a': 'some value/another'},
1056 quote_via=urllib.parse.quote)
1058 result = urllib.parse.urlencode({'a': 'some value/another'},
1059 safe='/', quote_via=urllib.parse.quote)
1063 self.assertRaises(TypeError, urllib.parse.quote_from_bytes, 'foo')
1064 result = urllib.parse.quote_from_bytes(b'archaeological arcana')
1066 result = urllib.parse.quote_from_bytes(b'')
1070 result = urllib.parse.unquote_to_bytes('abc%20def')
1072 result = urllib.parse.unquote_to_bytes('')
1076 self.assertRaises(TypeError, urllib.parse.quote, b'foo',
1077 encoding='utf-8')
1078 self.assertRaises(TypeError, urllib.parse.quote, b'foo', errors='strict')
1081 p1 = urllib.parse.urlsplit('tel:+31-641044153')
1083 self.assertEqual(p1.path, '+31-641044153')
1084 p2 = urllib.parse.urlsplit('tel:+31641044153')
1086 self.assertEqual(p2.path, '+31641044153')
1088 p1 = urllib.parse.urlparse('tel:+31-641044153')
1090 self.assertEqual(p1.path, '+31-641044153')
1091 p2 = urllib.parse.urlparse('tel:+31641044153')
1093 self.assertEqual(p2.path, '+31641044153')
1096 … self.assertRaises(ValueError, urllib.parse.urlsplit, 'Scheme://user@[192.0.2.146]/Path?Query')
1097 …self.assertRaises(ValueError, urllib.parse.urlsplit, 'Scheme://user@[important.com:8000]/Path?Quer…
1098 self.assertRaises(ValueError, urllib.parse.urlsplit, 'Scheme://user@[v123r.IP]/Path?Query')
1099 self.assertRaises(ValueError, urllib.parse.urlsplit, 'Scheme://user@[v12ae]/Path?Query')
1100 self.assertRaises(ValueError, urllib.parse.urlsplit, 'Scheme://user@[v.IP]/Path?Query')
1101 self.assertRaises(ValueError, urllib.parse.urlsplit, 'Scheme://user@[v123.]/Path?Query')
1102 self.assertRaises(ValueError, urllib.parse.urlsplit, 'Scheme://user@[v]/Path?Query')
1103 …self.assertRaises(ValueError, urllib.parse.urlsplit, 'Scheme://user@[0439:23af::2309::fae7:1234]/P…
1104 …f.assertRaises(ValueError, urllib.parse.urlsplit, 'Scheme://user@[0439:23af:2309::fae7:1234:2342:4…
1105 self.assertRaises(ValueError, urllib.parse.urlsplit, 'Scheme://user@]v6a.ip[/Path')
1108 p1 = urllib.parse.urlsplit('scheme://user@[v6a.ip]/path?query')
1111 self.assertEqual(p1.path, '/path')
1112 p2 = urllib.parse.urlsplit('scheme://user@[0439:23af:2309::fae7%test]/path?query')
1115 self.assertEqual(p2.path, '/path')
1116 …p3 = urllib.parse.urlsplit('scheme://user@[0439:23af:2309::fae7:1234:192.0.2.146%test]/path?query')
1119 self.assertEqual(p3.path, '/path')
1123 p1 = urllib.parse.urlparse('http://Server=sde; Service=sde:oracle')
1127 p2 = urllib.parse.urlsplit('http://Server=sde; Service=sde:oracle')
1132 p1 = urllib.parse.urlparse('tel:123-4;phone-context=+1-650-516')
1134 self.assertEqual(p1.path, '123-4')
1135 self.assertEqual(p1.params, 'phone-context=+1-650-516')
1137 p1 = urllib.parse.urlparse('tel:+1-201-555-0123')
1139 self.assertEqual(p1.path, '+1-201-555-0123')
1142 p1 = urllib.parse.urlparse('tel:7042;phone-context=example.com')
1144 self.assertEqual(p1.path, '7042')
1145 self.assertEqual(p1.params, 'phone-context=example.com')
1147 p1 = urllib.parse.urlparse('tel:863-1234;phone-context=+1-914-555')
1149 self.assertEqual(p1.path, '863-1234')
1150 self.assertEqual(p1.params, 'phone-context=+1-914-555')
1153 quoter = urllib.parse._Quoter(urllib.parse._ALWAYS_SAFE)
1157 urllib.parse.clear_cache()
1160 """Test that urllib.parse.__getattr__() fails correctly."""
1162 unused = urllib.parse.this_does_not_exist
1172 for name in dir(urllib.parse):
1175 object = getattr(urllib.parse, name)
1176 if getattr(object, '__module__', None) == 'urllib.parse':
1178 self.assertCountEqual(urllib.parse.__all__, expected)
1196 # bpo-36742: Verify port separators are ignored when they
1198 urllib.parse.urlsplit('http://\u30d5\u309a:80')
1200 urllib.parse.urlsplit('http://\u30d5\u309a\ufe1380')
1205 url = "{}://{}/path".format(scheme, netloc.format(c))
1208 urllib.parse.urlsplit(url)
1215 splittype = urllib.parse._splittype
1223 splithost = urllib.parse._splithost
1231 # bpo-30500: # starts a fragment.
1252 splituser = urllib.parse._splituser
1267 splitpasswd = urllib.parse._splitpasswd
1283 splitport = urllib.parse._splitport
1294 splitnport = urllib.parse._splitnport
1296 self.assertEqual(splitnport('parrot'), ('parrot', -1))
1298 self.assertEqual(splitnport('parrot:'), ('parrot', -1))
1300 self.assertEqual(splitnport('127.0.0.1'), ('127.0.0.1', -1))
1309 splitquery = urllib.parse._splitquery
1319 splittag = urllib.parse._splittag
1331 splitattr = urllib.parse._splitattr
1332 self.assertEqual(splitattr('/path;attr1=value1;attr2=value2'),
1333 ('/path', ['attr1=value1', 'attr2=value2']))
1334 self.assertEqual(splitattr('/path;'), ('/path', ['']))
1337 self.assertEqual(splitattr('/path'), ('/path', []))
1342 splitvalue = urllib.parse._splitvalue
1350 result = urllib.parse._to_bytes('http://www.python.org')
1352 self.assertRaises(UnicodeError, urllib.parse._to_bytes,
1356 for wrapped_url in ('<URL:scheme://host/path>', '<scheme://host/path>',
1357 'URL:scheme://host/path', 'scheme://host/path'):
1358 url = urllib.parse.unwrap(wrapped_url)
1359 self.assertEqual(url, 'scheme://host/path')
1366 old_class = urllib.parse.Quoter
1367 self.assertIs(old_class, urllib.parse._Quoter)
1372 urllib.parse.splittype('')
1374 'urllib.parse.splittype() is deprecated as of 3.8, '
1375 'use urllib.parse.urlparse() instead')
1379 urllib.parse.splithost('')
1381 'urllib.parse.splithost() is deprecated as of 3.8, '
1382 'use urllib.parse.urlparse() instead')
1386 urllib.parse.splituser('')
1388 'urllib.parse.splituser() is deprecated as of 3.8, '
1389 'use urllib.parse.urlparse() instead')
1393 urllib.parse.splitpasswd('')
1395 'urllib.parse.splitpasswd() is deprecated as of 3.8, '
1396 'use urllib.parse.urlparse() instead')
1400 urllib.parse.splitport('')
1402 'urllib.parse.splitport() is deprecated as of 3.8, '
1403 'use urllib.parse.urlparse() instead')
1407 urllib.parse.splitnport('')
1409 'urllib.parse.splitnport() is deprecated as of 3.8, '
1410 'use urllib.parse.urlparse() instead')
1414 urllib.parse.splitquery('')
1416 'urllib.parse.splitquery() is deprecated as of 3.8, '
1417 'use urllib.parse.urlparse() instead')
1421 urllib.parse.splittag('')
1423 'urllib.parse.splittag() is deprecated as of 3.8, '
1424 'use urllib.parse.urlparse() instead')
1428 urllib.parse.splitattr('')
1430 'urllib.parse.splitattr() is deprecated as of 3.8, '
1431 'use urllib.parse.urlparse() instead')
1435 urllib.parse.splitvalue('')
1437 'urllib.parse.splitvalue() is deprecated as of 3.8, '
1438 'use urllib.parse.parse_qsl() instead')
1442 urllib.parse.to_bytes('')
1444 'urllib.parse.to_bytes() is deprecated as of 3.8')