mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Convert urllib.request parse_proxy doctests to unittests.
This commit is contained in:
parent
01bafdcccc
commit
d8e24f1f71
2 changed files with 39 additions and 45 deletions
|
@ -687,50 +687,7 @@ def _parse_proxy(proxy):
|
|||
|
||||
If a URL is supplied, it must have an authority (host:port) component.
|
||||
According to RFC 3986, having an authority component means the URL must
|
||||
have two slashes after the scheme:
|
||||
|
||||
>>> _parse_proxy('file:/ftp.example.com/')
|
||||
Traceback (most recent call last):
|
||||
ValueError: proxy URL with no authority: 'file:/ftp.example.com/'
|
||||
|
||||
The first three items of the returned tuple may be None.
|
||||
|
||||
Examples of authority parsing:
|
||||
|
||||
>>> _parse_proxy('proxy.example.com')
|
||||
(None, None, None, 'proxy.example.com')
|
||||
>>> _parse_proxy('proxy.example.com:3128')
|
||||
(None, None, None, 'proxy.example.com:3128')
|
||||
|
||||
The authority component may optionally include userinfo (assumed to be
|
||||
username:password):
|
||||
|
||||
>>> _parse_proxy('joe:password@proxy.example.com')
|
||||
(None, 'joe', 'password', 'proxy.example.com')
|
||||
>>> _parse_proxy('joe:password@proxy.example.com:3128')
|
||||
(None, 'joe', 'password', 'proxy.example.com:3128')
|
||||
|
||||
Same examples, but with URLs instead:
|
||||
|
||||
>>> _parse_proxy('http://proxy.example.com/')
|
||||
('http', None, None, 'proxy.example.com')
|
||||
>>> _parse_proxy('http://proxy.example.com:3128/')
|
||||
('http', None, None, 'proxy.example.com:3128')
|
||||
>>> _parse_proxy('http://joe:password@proxy.example.com/')
|
||||
('http', 'joe', 'password', 'proxy.example.com')
|
||||
>>> _parse_proxy('http://joe:password@proxy.example.com:3128')
|
||||
('http', 'joe', 'password', 'proxy.example.com:3128')
|
||||
|
||||
Everything after the authority is ignored:
|
||||
|
||||
>>> _parse_proxy('ftp://joe:password@proxy.example.com/rubbish:3128')
|
||||
('ftp', 'joe', 'password', 'proxy.example.com')
|
||||
|
||||
Test for no trailing '/' case:
|
||||
|
||||
>>> _parse_proxy('http://joe:password@proxy.example.com')
|
||||
('http', 'joe', 'password', 'proxy.example.com')
|
||||
|
||||
have two slashes after the scheme.
|
||||
"""
|
||||
scheme, r_scheme = splittype(proxy)
|
||||
if not r_scheme.startswith("/"):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue