403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.202
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python313/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python313/Lib/test/__pycache__/test_urlparse.cpython-313.pyc
�

��i�E���SSKrSSKrSSKrSSKrSSKJr SSKJr Sr	Sr
SrSr/S/4PS/4PS	/4PS
S/4PSS
/4PSS/4PSS/4PSS/4PSS/4PSSS/4PSS/4PSS/4PSSS/4PSSS /4PS!/4PS"/4PS#/4PS$S%/4PS&S'/4PS(S)/4PS*S)/4PS+S,/4PS-S./4PS/S0S1/4PS2S3/4PS4S0/4PS5S6S7/4PS8S9S:/4PS;S</4PS=S>/4PS?S@/4PSASB/4PSCSD/4PSESD/4PSFSG/4PSHSI/4PSJSI/4PSKSL/4PSMSL/4Pr
/S04PS04PS	04PS
SS/04PSSS/04PSSS/04PSSS/04PSSSN/04PSSOSP/04PSSQ/SR/SS.4PSSST/04PSSSQ/04PSSU/SV/S.4PSSSWSX/04PS!04PS"04PS#04PS$S!S!/04PS&S!S(/04PS(S(S!/04PS*S(S!/04PS+S(SY/04PS-SZS[/04PS/S\/S]/S^.4PS2S(S_/04PS4S(S\/04PS5S`/Sa/S0.4PS8S(SbSc/04PS;SdSQ/04PS=SSe/04PS?SfS\/04PSAS(Sg/04PShS(Si/04PSCSjSk/04PSESjSk/04PSFSlSl/04PSHSmSn/04PSJSmSn/04PSKSoSp/04PSMSoSp/04Pr"SqSr\R\5r"SsSt\R5r"SuSv\R5rSwrSxr\Sy:Xa\R,"5 gg)z�N)�support)�ExtraAssertions�http://a/b/c/d;p?q#f�http://a/b/c/d;p?q�http://a/b/c/d��&z&&�=)rrz=a)r�ar)rrza=za=b=c)r�b=cza%3Db=c)�a=b�cza=b&c=d�r�b)r�dz	a=b%26c=d)r�b&c=dz&a=bza=a+b&b=b+c�r�a b�r�b cza=1&a=2�r�1�r�2��&s&&�=)rrs=a)r�ar)rrsa=sa=b=c)r�b=csa%3Db=c)�a=b�csa=b&c=d�r�b)r!�ds	a=b%26c=d)r�b&c=ds&a=bsa=a+b&b=b+c�r�a b�r#�b csa=1&a=2�r�1�r�2�;a=b)�;ar�a=a+b;b=b+c)r�	a b;b=b c�;a=b)�;ar#�a=a+b;b=b+c)r�	a b;b=b cuŁ=é)�Ł�éz
%C5%81=%C3%A9z%81=%A9)��r8sŁ=é)�Ł�és
%C5%81=%C3%A9s�=�)����s%81=%A9rr
rrr)rrrrrrrrr r!r#r$)rr!r%r'r)r+r-r/r1r3r5s
a=a%E2%80%99bsa’br6r7r8r9r:r;r<c� 	�\rSrSrSSjr\R"S\5S5r\R"S\	5S5r
\R"SS5\R"S	/S
Q5S55r\R"SS5\R"S/S
Q5S55r\R"SS5\R"SS5\R"S	/SQ5S555r
Sr\R"SS5\R"S/SQ5S55rSrSrSrSrSr\R"SS5\R"S/SQ5S55r\R"SS5\R"S/S Q5S!55r\R"SS5\R"S"S#S$S%S&S'S(S)S*\S+S,4\S+S-4/
5S.55rS/rS0rS1rS2r\R"SS5\R"S3\R>R@\R>RB45\R"S4S55S6555r"\R"SS5\R"S3\R>R@\R>RB45\R"SS75S8555r#S9r$S:r%S;r&S<r'S=r(S>r)\R"S?\R>RB\R>R@45S@5r*\R"SASB5\R"S?\R>RB\R>R@45SC55r+SDr,\R"SE\R>RZ\R>R\\R>R^/5SF5r0SGr1SHr2SIr3\R"SSJ04SK04SLSMSN/04SOSP/SQ/SR.4SSSMSTSU/04SV04SW04SXSYSZ/04S[S\/S]/S^.4S_SYS`Sa/04/
5Sb5r4\R"SSJ/4SK/4SLSR/4SOScSd/4SSSeSf/4SV/4SW/4SXS^/4S[SgSh/4S_SiSj/4/
5Sk5r5Slr6Smr7Snr8Sor9Spr:Sqr;Srr<Ssr=Str>Sur?Svr@SwrASxrBSyrCSzrDS{rES|rFS}rGS~rHg)��UrlParseTestCase�jNc�
�UcUn[RRU5nURXR5 URUR
URURURUR4nURXb5 [RRU5nURXt5 URXuR55 [RRUR55nURUR5UR55 URX�5 URURUR5 URUR
UR
5 URURUR5 URURUR5 URURUR5 URURUR5 URURUR5 URURUR5 URURUR5 URUR UR 5 [RR#U5nURXS5 URUR
URURUR4nURXc5 [RR%U5nURXt5 URXuR55 [RR#UR55nURUR5UR55 URX�5 URURUR5 URUR
UR
5 URURUR5 URURUR5 URURUR5 URURUR5 URURUR5 URURUR5 URUR UR 5 g�N)�urllib�parse�urlparse�assertSequenceEqual�scheme�netloc�path�params�query�fragment�
urlunparse�geturl�assertEqual�username�password�hostname�port�urlsplit�
urlunsplit)	�self�url�parsed�split�url2�result�t�result2�result3s	         �'C:\Python313\\Lib\test\test_urlparse.py�checkRoundtrips� UrlParseTestCase.checkRoundtripsls����<��D����&�&�s�+��� � ��0�
�]�]�F�M�M�6�;�;�
�]�]�F�L�L�&�/�/�
;��� � ��+��,�,�)�)�&�1��� � ��/�� � ��-�-�/�:��,�,�'�'��
�
��8��������)�6�=�=�?�;�� � ��1�������6�=�=�9�������6�=�=�9�������6�;�;�7�������6�=�=�9�������6�<�<�8�����)�)�6�?�?�;�����)�)�6�?�?�;�����)�)�6�?�?�;�����)�)�6�?�?�;�������6�;�;�7����&�&�s�+��� � ��/�
�]�]�F�M�M�6�;�;�
�\�\�6�?�?�
,��� � ��*��,�,�)�)�&�1��� � ��/�� � ��-�-�/�:��,�,�'�'��
�
��8��������)�6�=�=�?�;�� � ��1�������6�=�=�9�������6�=�=�9�������6�;�;�7�������6�<�<�8�����)�)�6�?�?�;�����)�)�6�?�?�;�����)�)�6�?�?�;�����)�)�6�?�?�;�������6�;�;�7rzorig,expectc��[RRUSS9nURX25 UVs/sHn[	US5(dMUPM nn[RRUSS9nURX55 gs snf)NT��keep_blank_values�F)rBrC�	parse_qslrN�len�rU�orig�expectrZ�v�expect_without_blankss      r^�test_qsl�UrlParseTestCase.test_qsl�su�����'�'���'�E������(�,2� @�F�q�c�!�A�$�i��F�� @����'�'���'�F������7��!As�B�Bc�"�[RRUSS9nURX25 UVs0sHn[	X$S5(dMXBU_M! nn[RRUSS9nURX55 gs snf)NTrbrF)rBrC�parse_qsrNrfrgs      r^�test_qs�UrlParseTestCase.test_qs�s������&�&�t�t�&�D������(�*0�!G�*0�Q�C��	�!��4E�".��1�I��*0�	�!G����&�&�t�u�&�E������7��!Gs�B�	B�bytes)FTzurl,parsed,split))�path/to/file)rrrsrrr)rrrsrr)�
/path/to/file�rrrtrrr�rrrtrr)�//path/to/file)rrH�/to/filerrr)rrHrxrr)z////path/to/file)rrrwrrr)rrrwrr)z/////path/to/file)rr�///path/to/filerrr)rrryrr)zscheme:path/to/file)rFrrsrrr)rFrrsrr)�scheme:/path/to/file�rFrrtrrr�rFrrtrr)zscheme://path/to/file)rFrHrxrrr)rFrHrxrr)zscheme:////path/to/file)rFrrwrrr)rFrrwrr)zscheme://///path/to/file)rFrryrrr)rFrryrr)zfile:tmp/junk.txt)�filer�tmp/junk.txtrrr)r}rr~rr)�file:///tmp/junk.txt�r}r�
/tmp/junk.txtrrr�r}rr�rr)zfile:////tmp/junk.txt)r}r�//tmp/junk.txtrrr)r}rr�rr)zfile://///tmp/junk.txt)r}r�///tmp/junk.txtrrr)r}rr�rr)zhttp:tmp/junk.txt)�httprr~rrr)r�rr~rr)zhttp://example.com/tmp/junk.txt)r��example.comr�rrr)r�r�r�rr)z http:///example.com/tmp/junk.txt)r�r�/example.com/tmp/junk.txtrrr)r�rr�rr)z!http:////example.com/tmp/junk.txt)r�r�//example.com/tmp/junk.txtrrr)r�rr�rr)zimap://mail.python.org/mbox1)�imap�mail.python.org�/mbox1rrr)r�r�r�rr)z1mms://wms.sys.hinet.net/cts/Drama/09006251100.asf)�mms�wms.sys.hinet.net�/cts/Drama/09006251100.asfrrr)r�r�r�rr)znfs://server/path/to/file.txt)�nfs�server�/path/to/file.txtrrr)r�r�r�rr)z0svn+ssh://svn.zope.org/repos/main/ZConfig/trunk/)�svn+ssh�svn.zope.org�/repos/main/ZConfig/trunk/rrr)r�r�r�rr)z)git+ssh://git@github.com/user/project.git)�git+ssh�git@github.com�/user/project.gitrrr)r�r�r�rr)zEitms-services://?action=download-manifest&url=https://example.com/app)�
itms-servicesrrr�4action=download-manifest&url=https://example.com/appr)r�rrr�r)�+scheme:path/to/file)rrr�rrr)rrr�rr)�sch_me:path/to/file)rrr�rrr)rrr�rr)�schème:path/to/file)rrr�rrr)rrr�rrc���U(aGUR5(dURS5 [U5n[U5n[U5nUR	X#U5 g)N�non-ASCII bytes)�isascii�skipTest�
str_encode�tuple_encoder_)rUrrrVrWrXs     r^�test_roundtrips� UrlParseTestCase.test_roundtrips�sM��z��;�;�=�=��
�
�/�0��S�/�C�!�&�)�F� ��'�E����S�%�0rzurl,url2,parsed,split))ryrtrurv)zscheme:///path/to/filerzr{r|)zfile:/tmp/junk.txtrr�r�)zhttp:/tmp/junk.txtzhttp:///tmp/junk.txt)r�rr�rrr)r�rr�rr)zhttps:/tmp/junk.txtzhttps:///tmp/junk.txt)�httpsrr�rrr)r�rr�rrc��U(a,[U5n[U5n[U5n[U5nURX$XS5 grA�r�r�r_)rUrrrVrYrWrXs      r^�test_roundtrips_normalization�.UrlParseTestCase.test_roundtrips_normalizations>��0��S�/�C��d�#�D�!�&�)�F� ��'�E����S�%�6rrF)r�r�))z://www.python.org)�www.python.orgrrrr)r�rrr)z://www.python.org#abc)r�rrr�abc)r�rrr�)z://www.python.org?q=abc)r�rr�q=abcr)r�rr�r)z://www.python.org/#abc)r��/rrr�)r�r�rr�)z://a/b/c/d;p?q#f)rz/b/c/d�p�q�f)rz/b/c/d;pr�r�c��U(a,[U5n[U5n[U5n[U5nX#-nU4U-nU4U-nURX4U5 grAr�)rUrrrFrVrWrXs      r^�test_http_roundtrips�%UrlParseTestCase.test_http_roundtrips6s]��.���'�F��S�/�C�!�&�)�F� ��'�E��l����V�#���	�E�!�����S�%�0rc�$�URXS9 UR[RR	X5U5 URS5nURS5nURS5nUR[RR	XE5U5 [RR
[RRU55nUR[RR	X5U5 [RR
[RRU55nUR[RR	XE5U5 SSS5 g!,(df   g=f)N)�base�relurl�ascii)�subTestrNrBrC�urljoin�encoderTrS)rUr�r��expected�baseb�relurlb�	expectedbs       r^�	checkJoin�UrlParseTestCase.checkJoinWs��
�\�\�t�\�
3����V�\�\�1�1�$�?��J��K�K��(�E��m�m�G�,�G� ����0�I����V�\�\�1�1�%�A�9�M��\�\�,�,�V�\�\�-B�-B�6�-J�K�F����V�\�\�1�1�$�?��J��l�l�-�-�f�l�l�.C�.C�G�.L�M�G����V�\�\�1�1�%�A�9�M�4�
3�
3�s�E(F�
F�u)�Pythonz./Python�x-newscheme://foo.com/stuffzx://yzx:/yzx:/r�c�X�U(a[U5nUR[RR	[RRU55U5 UR[RR
[RRU55U5 grA)r�rNrBrCrTrSrLrD)rUrrr�s   r^�test_unparse_parse�#UrlParseTestCase.test_unparse_parsedsl����1�
�A�������0�0����1F�1F�q�1I�J�A�N�������0�0����1F�1F�q�1I�J�A�Nrc��UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[S	S
5 UR[SS5 UR[S
S5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[S S5 UR[S!S"5 UR[S#S$5 UR[S%S$5 UR[S&S5 UR[S'S(5 UR[S)S*5 UR[S+S,5 UR[S-S.5 UR[S/S05 UR[S1S"5 UR[S2S5 UR[S3S45 UR[S5S65 g)7N�g:h�g�http://a/b/c/g�./g�g/�http://a/b/c/g/�/g�
http://a/g�//g�http://g�g?y�http://a/b/c/g?y�g?y/./x�http://a/b/c/g?y/./x�#s�http://a/b/c/d;p?q#s�g#s�http://a/b/c/g#s�g#s/./x�http://a/b/c/g#s/./x�g?y#s�http://a/b/c/g?y#s�g;x�http://a/b/c/g;x�g;x?y#s�http://a/b/c/g;x?y#s�.�
http://a/b/c/�./�..�http://a/b/�../�../g�http://a/b/g�../..�	http://a/�../../�../../grr�g.�http://a/b/c/g.�.g�http://a/b/c/.g�g..�http://a/b/c/g..�..g�http://a/b/c/..g�./../g�./g/.�g/./h�http://a/b/c/g/h�g/../h�http://a/b/c/h)r��RFC1808_BASE�rUs r^�test_RFC1808�UrlParseTestCase.test_RFC1808ls�����|�U�E�2����|�S�*:�;����|�U�,<�=����|�T�+<�=����|�T�<�8����|�U�J�7����|�U�,>�?����|�Y�0F�G����|�T�+A�B����|�U�,>�?����|�Y�0F�G����|�W�.B�C����|�U�,>�?����|�Y�0F�G����|�S�/�:����|�T�?�;����|�T�=�9����|�U�M�:����|�V�^�<����|�W�k�:����|�X�{�;����|�Y��=�	
���|�R�)?�@����|�T�+<�=����|�T�+<�=����|�U�,>�?����|�U�,>�?����|�X�~�>����|�W�.?�@����|�W�.@�A����|�X�/?�@rc�b�UR[RRS5S5 g)Nzmailto:1337@example.org)�mailtorz1337@example.orgrrr�rNrBrCrDr�s r^�test_RFC2368�UrlParseTestCase.test_RFC2368�s&��������.�.�/H�I�>�	@rc�V�UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[S	S
5 UR[SS5 UR[S
S5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS 5 UR[S!S 5 UR[S"S5 UR[S#[5 UR[S$S%5 UR[S&S'5 UR[S(S)5 UR[S*S+5 UR[S,S5 UR[S-S5 UR[S.S/5 UR[S0S15 UR[S2S35 UR[S4S55 UR[S6S75 UR[S8S95 UR[S:S;5 UR[S<S=5 g)>Nr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr�r�r�r�r�r�r�r�r�r�r�r�r�r��	g;x=1/./y�http://a/b/c/g;x=1/y�
g;x=1/../y�http://a/b/c/yr�r��g?y/../x�http://a/b/c/g?y/../xr�r��g#s/../x�http://a/b/c/g#s/../x)r��RFC2396_BASEr�s r^�test_RFC2396�UrlParseTestCase.test_RFC2396�sJ��	
���|�U�E�2����|�S�*:�;����|�U�,<�=����|�T�+<�=����|�T�<�8����|�U�J�7����|�U�,>�?����|�T�+A�B����|�U�,>�?����|�W�.B�C����|�U�,>�?����|�Y�0F�G����|�S�/�:����|�T�?�;����|�T�=�9����|�U�M�:����|�V�^�<����|�W�k�:����|�X�{�;����|�Y��=����|�R��6����|�T�+<�=����|�T�+<�=����|�U�,>�?����|�U�,>�?����|�X�~�>����|�W�.?�@����|�W�.@�A����|�X�/?�@����|�[�2H�I����|�\�3C�D����|�Y�0F�G����|�Z�1H�I����|�Y�0F�G����|�Z�1H�Irc�@�UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[S	S
5 UR[SS5 UR[S
S5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[S S!5 UR[S"S!5 UR[S#S$5 UR[S%S&5 UR[S'S&5 UR[S(S5 UR[S)S5 UR[S)S5 UR[S*S5 UR[S+S5 UR[S,S5 UR[S-S.5 UR[S/S05 UR[S1S25 UR[S3S45 UR[S5S$5 UR[S6S
5 UR[S7S85 UR[S9S:5 UR[S;S<5 UR[S=S>5 UR[S?S@5 UR[SASB5 UR[SCSD5 UR[SESF5 UR[SGS5 URSHSS5 g)IN�?yzhttp://a/b/c/d;p?yz;xzhttp://a/b/c/;xr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr�r�r�r�r�r�r�r�r�r�r�r�z
../../../gz
../../../../gz/./gz/../gr�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr	r�r�r
rr�r�rr
�http:gzhttp://a/b/c/de)r��RFC3986_BASEr�s r^�test_RFC3986�UrlParseTestCase.test_RFC3986�s�����|�T�*>�?����|�T�+<�=����|�U�5�1����|�S�)9�:����|�U�+;�<����|�T�*;�<����|�T�,�7����|�U�:�6����|�T�*>�?����|�U�+=�>����|�T�*@�A����|�U�+=�>����|�W�-A�B����|�T�*;�<����|�U�+=�>����|�Y�/E�F����|�R�(<�=����|�S��9����|�T�/�:����|�T�-�8����|�U�=�9����|�V�N�;����|�W�[�9����|�X�k�:����|�Y�|�<����|�\�<�@�	
���|�\�,�?����|�_�\�B����|�V�L�9����|�W�\�:����|�T�*;�<����|�T�*;�<����|�U�+=�>����|�U�+=�>����|�X�n�=����|�W�->�?����|�W�-?�@����|�X�.>�?����|�[�1G�H����|�\�2B�C����|�Y�/E�F����|�Z�0G�H����|�Y�/E�F����|�Z�0G�H����|�X�.>�?�	
���(�$�/@�Arc�4�UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS	5 UR[S
S5 UR[SS
5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[SS5 UR[S S	5 UR[S!S"5 UR[S#S$5 UR[SS5 UR[SS5 UR[S%S5 UR[S&S5 UR[S'S5 URS(SS(5 URS)SS5 URS)S*S*5 URS+S,S-5 URS.S,S/5 URS0SS15 URS2SS35 UR[S4-S5[S6-5 URS7S8S95 URS:S8S;5 URS7S<S=5 URS:S<S=5 URS7S>S?5 URSS8S=5 URS@SASA5 g)BNr�rr��http:rr�r�r�r�r�r�r�r�rzhttp://a/b/c/d?yr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�zhttp:?yzhttp:g?yzhttp:g?y/./xzhttp:///rzhttp://a/./gzsvn://pathtorepo/dir1�dir2zsvn://pathtorepo/dir2zsvn+ssh://pathtorepo/dir1zsvn+ssh://pathtorepo/dir2zws://a/bzws://a/gz	wss://a/bz	wss://a/gr��fooz/foozhttp://a/b/c/d/e/z
../../f/g/zhttp://a/b/c/f/g/zhttp://a/b/c/d/ezhttp://a/b/f/g/z/../../f/g/z
http://a/f/g/z	../../f/gzhttp://a/b/c/f/grr)r��SIMPLE_BASEr�s r^�
test_urljoins�UrlParseTestCase.test_urljoinss������{�E�%�0����{�H�-=�>����{�G�,<�=����{�C�(8�9����{�E�*:�;����{�D�):�;����{�D��6����{�E�*�5����{�D�);�<����{�E�*<�=����{�I�.D�E����{�C��8����{�D��9����{�D��7����{�E�-�8����{�F�>�:����{�G�K�8����{�I�l�;����{�H�^�<����{�G�,=�>����{�G�,>�?����{�H�-=�>����{�H�-=�>����{�G�,<�=����{�I�.@�A����{�J�/A�B����{�N�3I�J����z�4�
�3����r�1�2H�I����r�>�>�:����.��8O�P����2�F�<W�X����z�#�j�1����{�3�{�3�	
���{�S�(�%��v�1E�F�	
���*�L�:M�N����)�<�9J�K����*�M�?�K����)�=�/�J����*�K�9K�L����}�l�O�D�	
���s�C��%rzurl,hostname,port))z http://Test.python.org:5432/foo/�test.python.org�8)zhttp://12.34.56.78:5432/foo/�12.34.56.78r)zhttp://[::1]:5432/foo/�::1r)zhttp://[dead:beef::1]:5432/foo/�dead:beef::1r)zhttp://[dead:beef::]:5432/foo/�dead:beef::r)z:http://[dead:beef:cafe:5417:affe:8FA3:deaf:feed]:5432/foo/�'dead:beef:cafe:5417:affe:8fa3:deaf:feedr)z http://[::12.34.56.78]:5432/foo/�
::12.34.56.78r)z%http://[::ffff:12.34.56.78]:5432/foo/�::ffff:12.34.56.78r)zhttp://Test.python.org/foo/rN)zhttp://12.34.56.78/foo/r N)zhttp://[::1]/foo/r!N)zhttp://[dead:beef::1]/foo/r"N)zhttp://[dead:beef::]/foo/r#N)z5http://[dead:beef:cafe:5417:affe:8FA3:deaf:feed]/foo/r$N)zhttp://[::12.34.56.78]/foo/r%N)z http://[::ffff:12.34.56.78]/foo/r&N)zhttp://Test.python.org:/foo/rN)zhttp://12.34.56.78:/foo/r N)zhttp://[::1]:/foo/r!N)zhttp://[dead:beef::1]:/foo/r"N)zhttp://[dead:beef::]:/foo/r#N)z6http://[dead:beef:cafe:5417:affe:8FA3:deaf:feed]:/foo/r$N)zhttp://[::12.34.56.78]:/foo/r%N)z!http://[::ffff:12.34.56.78]:/foo/r&Nc���U(a[U5n[U5n[RRU5nUR	UR
UR4X445 grA)r�rBrCrDrNrQrR)rUrrrVrQrR�	urlparseds      r^�test_RFC2732�UrlParseTestCase.test_RFC2732>sQ��D��S�/�C�!�(�+�H��L�L�)�)�#�.�	����)�,�,�i�n�n�=��?O�Pr�invalid_url)zhttp://::12.34.56.78]/zhttp://[::1/foo/zftp://[::1/foo/bad]/badzhttp://[::1/foo/bad]/badzhttp://[::ffff:12.34.56.78c��U(a[U5nUR[[RR
U5 grA)r��assertRaises�
ValueErrorrBrCrD)rUrrr+s   r^�test_RFC2732_invalid�%UrlParseTestCase.test_RFC2732_invalidfs-���$�[�1�K����*�f�l�l�&;�&;�[�Irzurl,defrag,frag)zhttp://python.org#frag�http://python.org�frag)r1r1r)zhttp://python.org/#frag�http://python.org/r2)r3r3r)zhttp://python.org/?q#frag�http://python.org/?qr2)r4r4r)zhttp://python.org/p#fragzhttp://python.org/pr2)�http://python.org/p?qr5rrr�rc��U(a![U5n[U5n[U5n[RRU5n[	U[
5(aSOSnUR
UR5URU55 UR
XSU45 UR
URU5 UR
URU5 g)N�#�#)r�rBrC�	urldefrag�
isinstance�strrNrM�rstriprVrK)rUrrrV�defragr2rZ�hashs       r^�test_urldefrag�UrlParseTestCase.test_urldefragrs�����S�/�C���'�F��d�#�D����'�'��,�� ��c�*�*�s����������#�*�*�T�*:�;�����$��0�������V�,�������$�/rc�`�[RRS5nURURS5 URUR
S5 [RRS5nURURS5 URUR
S5 g)Nz,http://[FE80::822a:a8ff:fe49:470c%tESt]:1234zfe80::822a:a8ff:fe49:470c%tEStz%[FE80::822a:a8ff:fe49:470c%tESt]:1234s,http://[FE80::822a:a8ff:fe49:470c%tESt]:1234sfe80::822a:a8ff:fe49:470c%tESts%[FE80::822a:a8ff:fe49:470c%tESt]:1234)rBrCrSrNrQrG)rUr�s  r^�test_urlsplit_scoped_IPv6�*UrlParseTestCase.test_urlsplit_scoped_IPv6�s����L�L�!�!�"P�Q��������%E�F�������#J�K��L�L�!�!�"Q�R��������%F�G�������#K�Lrc��Sn[RRU5nURURS5 URUR
S5 URURS5 URURS5 URURS5 URURS5 URURS5 URURS5 URURS5 URUR5SSUSS5 S	n[RRU5nURURS5 URUR
S
5 URURS5 URURS5 URURS5 URURS5 URURS
5 URURS5 URURS5 URUR5U5 Sn[RRU5nURURS5 URUR
S5 URURS5 URURS5 URURS5 URURS5 URURS
5 URURS5 URURS5 URUR5U5 Sn[RRU5nURURS5 URUR
S5 URURS5 URURS5 URURS5 URURS5 URURS5 URURS5 URURS5 URUR5SSUSS5 Sn[RRU5nURURS5 URUR
S5 URURS5 URURS5 URURS5 URURS5 URURS5 URURS5 URURS5 URUR5U5 Sn[RRU5nURURS5 URUR
S5 URURS5 URURS5 URURS5 URURS 5 URURS5 URURS5 URURS5 URUR5U5 S!n[RRU5nUR[S"5 UR SSS5 g!,(df   g=f)#NzHTTP://WWW.PYTHON.ORG/doc/#fragr�zWWW.PYTHON.ORG�/doc/rr2r���7http://User:Pass@www.python.org:080/doc/?query=yes#frag�User:Pass@www.python.org:080�	query=yes�User�Pass�PzChttp://User@example.com:Pass@www.python.org:080/doc/?query=yes#frag�(User@example.com:Pass@www.python.org:080zUser@example.comsHTTP://WWW.PYTHON.ORG/doc/#frag�httpsWWW.PYTHON.ORG�/doc/r�frag�www.python.orgs7http://User:Pass@www.python.org:080/doc/?query=yes#frag�User:Pass@www.python.org:080�	query=yes�User�PasssChttp://User@example.com:Pass@www.python.org:080/doc/?query=yes#frags(User@example.com:Pass@www.python.org:080sUser@example.coms%HTTP://WWW.PYTHON.ORG:65536/doc/#fragzout of range)rBrCrSrNrFrGrHrJrKrOrPrQrRrM�assertRaisesRegexr.)rUrVr�s   r^�test_urlsplit_attributes�)UrlParseTestCase.test_urlsplit_attributes�s���/���L�L�!�!�#�&��������6�*�������#3�4��������)�������"�%�������V�,�������T�*�������T�*�������%5�6��������&�	
�������A�B���Q�R��1�G���L�L�!�!�#�&��������6�*�������#A�B��������)�������+�.�������V�,�������V�,�������V�,�������%5�6��������$��������S�)�T���L�L�!�!�#�&��������6�*�������#M�N��������)�������+�.�������V�,�������%7�8�������V�,�������%5�6��������$��������S�)�1���L�L�!�!�#�&��������7�+�������#4�5��������*�������#�&�������W�-�������T�*�������T�*�������%6�7��������&��������A�B���Q�R��1�H���L�L�!�!�#�&��������7�+�������#B�C��������*�������,�/�������W�-�������W�-�������W�-�������%6�7��������$��������S�)�T���L�L�!�!�#�&��������7�+�������#N�O��������*�������,�/�������W�-�������%8�9�������W�-�������%6�7��������$��������S�)�7���L�L�!�!�#�&��
�
#�
#�J��
?�
�F�F�@�
?�
?�s�2
_�
_c���Sn[RRU5nURURS5 URUR
S5 URURS5 URURS5 URURS5 URURS5 URURS5 URURS5 URURS5 URUR5S5 Sn[RRU5nURURS	5 URUR
S
5 URURS5 URURS5 URURS
5 URURS5 URURS5 URURS
5 URURS5 URUR5S5 SnSn[S5H\n[RRXS9nURURS5 URUR5S5 M^ g)NzQhttp	://www.python
.org	/java
script:	alert('msg
')/?query
=	something#frag
mentr�r�z/javascript:alert('msg')/zquery=somethingrKzGhttp://www.python.org/javascript:alert('msg')/?query=something#fragmentsQhttp	://www.python
.org	/java
script:	alert('msg
')/?query
=	something#frag
mentrNrQs/javascript:alert('msg')/squery=something�fragmentsGhttp://www.python.org/javascript:alert('msg')/?query=something#fragmentzNhttp://www.python.org/java
script:	alert('msg
')/?query
=	something#frag
mentzht
tp��rF)rBrCrSrNrFrGrHrJrKrOrPrQrRrM�range)rUrVr�rF�_s     r^�!test_urlsplit_remove_unsafe_bytes�2UrlParseTestCase.test_urlsplit_remove_unsafe_bytes�s2��k���L�L�!�!�#�&��������6�*�������#3�4�������!<�=�������"3�4�������Z�0�������T�*�������T�*�������%5�6��������&��������%n�o�m���L�L�!�!�#�&��������7�+�������#4�5�������!=�>�������"4�5�������[�1�������T�*�������T�*�������%6�7��������&��������%o�p�f�����q��A����%�%�c�%�9�A����Q�X�X�v�.����Q�X�X�Z�)r�s�rc�
	�[[SS55nSnURS5U-n[RRU5nUR
URS5 UR
URS5 UR
URS5 UR
URS5 UR
URS	5 UR
URS
5 UR
URS5 UR
URS5 UR
URS
5 UR
UR!5U5 XR#S5-n[RRU5nUR
URS5 UR
URS5 UR
URS5 UR
URS5 UR
URS5 UR
URS5 UR
URS5 UR
URS5 UR
URS
5 UR
UR!5UR#S55 Sn[RRURS5U-5nUR
URS5 UR
URS5 UR
URS5 UR
URS5 UR
URS5 UR
UR!5U5 [RRS5nUR
[RR%U5S5 SnURS5S-URS5-n[S5H\n[RRX6S9nUR
URS5 UR
UR!5S5 M^ g) Nr�!rG�utf-8r�rHrErIr2rJrKr�rLrNrRrOrSrPrTrUrQz)https://www.python.org:88/doc/?query=    r�zwww.python.org:88z
query=    �Xz
www.pypi.org z//www.python.org/r[r\zhttps://www.python.org/)rrr]�decoderBrCrSrNrFrGrHrJrKrOrPrQrRrMr�rT)rU�noise�base_urlrVr��query_spaces_urlrFr^s        r^�test_urlsplit_strip_url�(UrlParseTestCase.test_urlsplit_strip_urlsZ���e�A�x�(�)��L���l�l�7�#�h�.���L�L�!�!�#�&��������6�*�������#A�B��������)�������+�.�������V�,�������V�,�������V�,�������%5�6��������$��������X�.��o�o�g�.�.���L�L�!�!�#�&��������7�+�������#B�C��������*�������,�/�������W�-�������W�-�������W�-�������%6�7��������$��������X�_�_�W�%=�>�G���L�L�!�!�%�,�,�w�"7�:J�"J�K��������7�+�������#6�7��������)�������,�/��������$��������%5�6��L�L�!�!�/�2��	
������0�0��3�_�E�"�����g�&��0�5�<�<��3H�H���q��A����%�%�c�%�9�A����Q�X�X�w�/����Q�X�X�Z�)B�C�rrCrR)	rz1.5z-1�0x10z-0�1_1z 1z1 u६c��SU-nSU-S-nU(aQUR5(aUR5(dURS5 [U5n[U5nU"U5nURURU5 UR[5 UR SSS5 g!,(df   g=f)z Check handling of invalid ports.zwww.example.net:zhttp://r�r�N)r�r�r�rNrGr-r.rR)rUrrrCrRrGrVr�s       r^�test_attributes_bad_port�)UrlParseTestCase.test_attributes_bad_portQs���
$�d�*���&� �3�&����N�N�$�$�������
�
�/�0���'�F��S�/�C��#�J��������6�*�
�
�
�z�
*�
�F�F�+�
*�
*�s�
B5�5
C)r��+�-�0zhttp&u६httpc���US-nU(a7UR5(dURS5 URS5nU"U5nURURU(aS5 gS5 g)z"Check handling of invalid schemes.z://www.example.netr�r�rrN)r�r�r�rNrF)rUrrrCrFrVr�s      r^�test_attributes_bad_scheme�+UrlParseTestCase.test_attributes_bad_schemebs\��
�+�+����;�;�=�=��
�
�/�0��*�*�W�%�C��#�J��������%�3�8�R�8rc�d�Sn[RRU5nURURS5 URUR
S5 URURS5 URURS5 URURS5 URUR5U5 [RRU5nURURS5 URUR
S5 URURS5 URURS5 URURS5 URUR5U5 Sn[RRU5nURURS5 URUR
S5 URURS5 URURS5 URURS5 URUR5U5 [RRU5nURURS5 URUR
S5 URURS5 URURS5 URURS5 URUR5U5 g)Nz0sip:alice@atlanta.com;maddr=239.255.255.1;ttl=15rs0sip:alice@atlanta.com;maddr=239.255.255.1;ttl=15r)rBrCrSrNrGrOrPrQrRrMrD)rU�urir�s   r^�test_attributes_without_netloc�/UrlParseTestCase.test_attributes_without_netlocosJ��A���L�L�!�!�#�&��������2�&�������T�*�������T�*�������T�*��������&��������S�)��L�L�!�!�#�&��������2�&�������T�*�������T�*�������T�*��������&��������S�)�B���L�L�!�!�#�&��������3�'�������T�*�������T�*�������T�*��������&��������S�)��L�L�!�!�#�&��������3�'�������T�*�������T�*�������T�*��������&��������S�)rc��UR[RRS5S5 UR[RRS5S5 g)Nz http://example.com?blahblah=/foo)r�r�rrz
blahblah=/foors http://example.com?blahblah=/foo)rNsexample.comrrs
blahblah=/foorrr�s r^�test_noslash�UrlParseTestCase.test_noslash�sJ��������.�.�/Q�R�M�	O�������.�.�/R�S�S�	Urc�8�UR[RRS5S5 UR[RRS5S5 UR[RRS5S5 UR[RRS5S5 UR[RRS	5S
5 UR[RRS5S5 g)
NrH)rrrHrrrz//www.python.org:80)r�www.python.org:80rrrr�http://www.python.org:80�r�r~rrrr�path)rrr�rrrs//www.python.org:80)r�www.python.org:80rrrr�http://www.python.org:80�rNr�rrrrrr�s r^�test_withoutscheme�#UrlParseTestCase.test_withoutscheme�s���
	
������.�.�v�6�'�	)�������.�.�/D�E�4�	6�������.�.�/I�J�8�	:�	
������.�.�w�7�-�	/�������.�.�/E�F�:�	<�������.�.�/J�K�>�	@rc�l�UR[RRS5S5 UR[RRS5S5 UR[RRS5S5 UR[RRS5S5 UR[RRS	5S
5 UR[RRS5S5 UR[RRS
5S5 UR[RRS5S5 UR[RRS5S5 UR[RRS5S5 UR[RRS5S5 UR[RRS5S5 g)Nzhttp:80)r�r�80rrrzhttps:80)r�rr�rrrzpath:80)rHrr�rrrr)r�rrrrrzhttps:)r�rrrrrrr�shttp:80)rNr�80rrrshttps:80)�httpsrr�rrrspath:80)r�rr�rrrshttp:)rNrrrrrshttps:)r�rrrrrr�r�rr�s r^�test_portseparator�#UrlParseTestCase.test_portseparator�s���������.�.�y�9�;T�U�������.�.�z�:�<V�W�������.�.�y�9�;T�U�������.�.�w�7�8O�P�������.�.�x�8�9Q�R�������.�.�/I�J�8�	:�	
������.�.�z�:�<[�\�������.�.�{�;�=]�^�������.�.�z�:�<[�\�������.�.�x�8�9V�W�������.�.�y�9�:X�Y�������.�.�/J�K�>�	@rc�b�UR[[RRS5 g)Nr)r-�	TypeErrorrBrC�	urlencoder�s r^�
test_usingsys�UrlParseTestCase.test_usingsys�s�����)�V�\�\�%;�%;�U�Crc���UR[RRS5S5 UR[RRS5S5 UR[RRS5S5 UR[RRS5S5 UR[RRS	5S
5 UR[RRS5S5 UR[RRS
5S5 UR[RRS5S5 g)Nzs3://foo.com/stuff)�s3�foo.com�/stuffrrrr�)�x-newschemer�r�rrrz*x-newscheme://foo.com/stuff?query#fragment)r�r�r�rrJrKz!x-newscheme://foo.com/stuff?query)r�r�r�rrJrss3://foo.com/stuff)ss3�foo.com�/stuffrrrsx-newscheme://foo.com/stuff)�x-newschemer�r�rrrs*x-newscheme://foo.com/stuff?query#fragment)r�r�r�r�queryrZs!x-newscheme://foo.com/stuff?query)r�r�r�rr�rrr�s r^�test_anyscheme�UrlParseTestCase.test_anyscheme�s$��������.�.�/C�D�@�	B�������.�.�/L�M�I�	K�������.�.�/[�\�V�	X�������.�.�/R�S�N�	P�	
������.�.�/D�E�F�	H�������.�.�/M�N�O�	Q�������.�.�/\�]�\�	^�������.�.�/S�T�T�	Vr�funcc�0�U"SS5nURURS5 U"SS5nURURS5 URU"SS5RS5 URU"SSS9RS5 URU"S	SS9RS5 URU"S5RS
5 URU"S	5RS5 URU"S	S
5RS5 g)Nzhttp://example.net/�ftpr�shttp://example.net/sftprNrHr\r�rr)rNrF)rUr�rZs   r^�test_default_scheme�$UrlParseTestCase.test_default_scheme�s����+�U�3���������/��,�f�5���������0�����f�e�,�3�3�U�;�����f�U�3�:�:�E�B�����g�f�5�<�<�f�E�����f��,�,�b�1�����g��-�-�s�3�����g�r�*�1�1�3�7rzurl,attr,expected_frag)
)z
http:#fragrHr2)z//example.net#fragrHr2)zindex.html#fragrHr2)z	;a=b#fragrIr2)z	?a=b#fragrJr2)z#fragrHr2)z	abc#@fragrH�@frag)z//abc#@fragrHr�)z//abc:80#@fragrHr�)z//abc#@frag:80rHz@frag:80c� �US:XaU[RRLaSnU"USS9nURURS5 UR[
XR5SU-5 URU"USS5RS5 U"USS9nURURU5 UR[
XR5U5 URU"USS5RU5 URU"U5RU5 g)NrIrHF)�allow_fragmentsrr7T)rBrCrSrNrK�assertEndsWith�getattr�assertNotEndsWith)rUrV�attr�
expected_fragr�rZs      r^�test_parse_fragments�%UrlParseTestCase.test_parse_fragments�s����8������(=�(=� =��D��c�5�1��������"�-����G�F�1��-�/�	1�����c�2�u�-�6�6��;��c�4�0��������-�8����w�v�4�m�D�����c�2�t�,�5�5�)�	+�����c��+�+�]�;rc�L�UR[S5 [RR	SS5 SSS5 UR[S5 [RR	SS5 SSS5 UR[S5 [RRSS5 SSS5 UR[S5 [RRSS5 SSS5 UR[S5 [RR
S5 SSS5 UR[S5 [RR
S5 SSS5 UR[S5 [RRS5 SSS5 UR[S5 [RRS	5 SSS5 UR[S5 [RRS
S5 SSS5 UR[S5 [RRSS
5 SSS5 g!,(df   GNC=f!,(df   GN=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GNd=f!,(df   GN8=f!,(df   GN=f!,(df   N�=f!,(df   g=f)NzCannot mix strr�rNrQr�)rNr�rrrr)r�rQrrrr)rNr�rrr)r�rQrrrr1shttp://python.org)	rVr�rBrCrDrSrLrTr�r�s r^�test_mixed_types_rejected�*UrlParseTestCase.test_mixed_types_rejected	s���
#�
#�I�/?�
@��L�L�!�!�"2�G�<�A�
�
#�
#�I�/?�
@��L�L�!�!�"3�V�<�A�
�
#�
#�I�/?�
@��L�L�!�!�"2�G�<�A�
�
#�
#�I�/?�
@��L�L�!�!�"3�V�<�A�
�
#�
#�I�/?�
@��L�L�#�#�$L�M�A�
�
#�
#�I�/?�
@��L�L�#�#�$K�L�A�
�
#�
#�I�/?�
@��L�L�#�#�$H�I�A�
�
#�
#�I�/?�
@��L�L�#�#�$H�I�A�
�
#�
#�I�/?�
@��L�L� � �!4�6J�K�A�
�
#�
#�I�/?�
@��L�L� � �!5�7J�K�A�
@�%A�
@��
@�
@��
@�
@��
@�
@��
@�
@��
@�
@��
@�
@��
@�
@��
@�
@��
@�
@�sw�!I4�!J�!J�!J*� J<� K� K �
 K2�!L�
!L�4
J�
J�
J'�*
J9�<
K�
K� 
K/�2
L�
L�
L#�result_typec��Un[UR5nURnURURU5 SU-nSU-nU"U6nU"U6nSn	Sn
URXu5 URUR
5U5 URUR
5U5 URUR
U	5U5 URUR
U	5U5 URUR
X�5U5 URUR
X�5U5 URX�5 URUR5U5 URUR5U5 URURU	5U5 URURU	5U5 URURX�5U5 URURX�5U5 g)N)r)rr��strict)rf�_fields�_encoded_counterpart�assertIs�_decoded_counterpartrNrer�)rUr��str_type�num_args�
bytes_type�str_args�
bytes_args�
str_result�bytes_result�encoding�errorss           r^�test_result_pairs�"UrlParseTestCase.test_result_pairs!s������x�'�'�(���2�2�
��
�
�j�5�5�x�@��8�#���h�&�
��x�(�
�!�:�.����������.�����,�,�.��9�����,�,�.�
�;�����,�,�X�6��A�����,�,�X�6�
�C�����,�,�X�>��I�����,�,�X�>�
�K�����2�����*�*�,�j�9�����*�*�,�l�;�����*�*�8�4�j�A�����*�*�8�4�l�C�����*�*�8�<�j�I�����*�*�8�<�l�Krc��[RRSSS9nURUSS/05 [RRSSS9nURUSS/05 [RRSSS9nURUSS	/05 [RRS
SS9nURUSS/05 [RRS
SSS
9nURUSS/05 g)N�	key=Ł%E9�latin-1�r��key�Łé�key=Ł%C3%A9rcr��Ł���
key=Ł%E9-�Ł�-�ignore�r�r��Ł-�rBrCrorN�rUrZs  r^�test_parse_qs_encoding�'UrlParseTestCase.test_parse_qs_encodingAs�����&�&���&�K������%�,��!8�9����&�&�'9�G�&�L������%�,��!8�9����&�&�'9�G�&�L������%�*>�)?�!@�A����&�&�'7�'�&�J������%�/�):�!;�<����&�&�'7�'�AI�'�K������%�)��!5�6rc���[RRSSS9nURUS/5 [RRSSS9nURUS/5 [RRSSS9nURUS/5 [RRS	SS9nURUS
/5 [RRS	SSS9nURUS
/5 g)Nr�r�r�)r�r�r�rcr�)r�r�r�)r�r�r�r�)r�r��rBrCrerNr�s  r^�test_parse_qsl_encoding�(UrlParseTestCase.test_parse_qsl_encodingNs������'�'��)�'�L������"7�!8�9����'�'�(:�W�'�M������"7�!8�9����'�'�(:�W�'�M������"?�!@�A����'�'�(8�7�'�K������":�!;�<����'�'�(8�7�AI�(�K������"4�!5�6rc�&�UR[5 [RR	SRS/S-5SS9 SSS5 [RR	SRS/S-5SS9 g!,(df   N@=f)Nr	za=a��
)�max_num_fields)r-r.rBrCre�joinr�s r^�test_parse_qsl_max_num_fields�.UrlParseTestCase.test_parse_qsl_max_num_fields[sj��
�
�
�z�
*��L�L�"�"�3�8�8�U�G�B�J�#7��"�K�+������s�x�x����
�3�B��G�+�
*�s�2B�
B�;z;;r.rrr0rrrza=1;a=2rr�;s;;r2rr#r4r'r)r"sa=1;a=2r+r-c��[RRUSS9nURX25 [RRUSS9nURXB5 g�Nr���	separatorr�r��rUrhrirZ�result_bytess     r^�test_parse_qs_separator�(UrlParseTestCase.test_parse_qs_separator`sR�����&�&�t�s�&�;������(��|�|�,�,�T�T�,�B������.rrrrrr&r(r*r,c��[RRUSS9nURX25 [RRUSS9nURXB5 gr�r�r�s     r^�test_parse_qsl_separator�)UrlParseTestCase.test_parse_qsl_separatorrsR�����'�'���'�<������(��|�|�-�-�d�d�-�C������.rc�H�UR[RRS5S/5 UR[RR[	S55S/5 UR[RR[S55S/5 g)Nr r")rNrBrCre�	bytearray�
memoryviewr�s r^�test_parse_qsl_bytes�%UrlParseTestCase.test_parse_qsl_bytes�so��������/�/��7�,��H�������/�/�	�&�0A�B�\�N�S�������/�/�
�6�0B�C�l�^�Trc
�
�[SSS9nSSSSS/0[S54HbnUR[RR
"U40UD6/5 UR
[[RR
USS9 Md g)	NT)rc�strict_parsingrrr�rdr�)�dictr�rNrBrCrer-r.)rU�kwargs�xs   r^�test_parse_qsl_false_value�+UrlParseTestCase.test_parse_qsl_false_value�ss����T�B���S�$��3��B�
�3��?�A����V�\�\�3�3�A�@��@�"�E����j�&�,�,�*@�*@�!�q��Q�@rc��UR[[RR[S55 UR[[RR[
S55 UR[[RRS5 UR[[RR[55 SH?nUR[5 [RR	SUS9 SSS5 MA UR[5 [RR	SSS9 SSS5 UR[5 [RR	SSS9 SSS5 g!,(df   M�=f!,(df   N]=f!,(df   g=f)Nr rd)rrNrrdr�g�?r
r��¦��)r-r�rBrCre�list�iter�objectr.�UnicodeEncodeError�UnicodeDecodeError)rUr�s  r^�test_parse_qsl_errors�&UrlParseTestCase.test_parse_qsl_errors�s%�����)�V�\�\�%;�%;�T�&�\�J����)�V�\�\�%;�%;�T�&�\�J����)�V�\�\�%;�%;�Q�?����)�V�\�\�%;�%;�V�X�F�6�I��"�"�:�.����&�&�u�	�&�B�/�.�7��
�
�1�
2��L�L�"�"�6�V�"�<�3�
�
�
�1�
2��L�L�"�"�5�G�"�<�3�
2�	/�.��
2�
2��
2�
2�s$�1F�1F'�-F8�
F$	�'
F5�8
Gc��[RRSS/SS.S5n[UR	S551Sk:Xde"SS	5n[RRS
U"50S5nURUS5 g)Nrdr[)�rF�rTr	>�a=1�a=2�b=3�b=4�b=5c��\rSrSrSrSrg)�:UrlParseTestCase.test_urlencode_sequences.<locals>.Triviali�c��g)N�trivial�r�s r^�__str__�BUrlParseTestCase.test_urlencode_sequences.<locals>.Trivial.__str__�s�� rr
N)�__name__�
__module__�__qualname__�__firstlineno__r�__static_attributes__r
rr^�Trivialr
�s��
!rrrz	a=trivial)rBrCr��setrXrN)rUrZrs   r^�test_urlencode_sequences�)UrlParseTestCase.test_urlencode_sequences�sy�����'�'�q�!�f�9�(E�t�L���6�<�<��$�%�)L�L�L�L�	!�	!����'�'��g�i�(8�$�?�������-rc��[RRSS05nURUS5 [RRSS0[RRS9nURUS5 [RRSS0S[RRS9nURUS	5 g)
Nrz
some valueza=some+valuezsome value/another)�	quote_viaza=some%20value%2Fanotherr�)�saferza=some%20value/another)rBrCr�rN�quoter�s  r^�test_urlencode_quote_via�)UrlParseTestCase.test_urlencode_quote_via�s������'�'��l�(;�<�������0����'�'��.B�(C�28�,�,�2D�2D�(�F������!;�<����'�'��.B�(C�-0�F�L�L�<N�<N�(�P������!9�:rc��UR[[RRS5 [RR	S5nURUS5 [RR	S5nURUS5 [RR	SS-5nURUSS-5 [RR	S	S
-5nURUSS
-5 g)Nrsarchaeological arcanazarchaeological%20arcanarr�Ai'�Asz/ i��zz%01/%20)r-r�rBrC�quote_from_bytesrNr�s  r^�test_quote_from_bytes�&UrlParseTestCase.test_quote_from_bytes�s������)�V�\�\�%B�%B�E�J����.�.�/G�H������!:�;����.�.�s�3�������$����.�.�t�F�{�;�������V��,����.�.�z�'�/A�B�������G�!3�4rc���[RRS5nURUS5 [RRS5nURUS5 g)Nz	abc%20defsabc defrr)rBrC�unquote_to_bytesrNr�s  r^�test_unquote_to_bytes�&UrlParseTestCase.test_unquote_to_bytes�sJ�����.�.�{�;�������,����.�.�r�2�������%rc��UR[[RRSSS9 UR[[RRSSS9 g)Nsfoorcr�r�)r�)r-r�rBrCrr�s r^�test_quote_errors�"UrlParseTestCase.test_quote_errors�sI�����)�V�\�\�%7�%7��#*�	�	,����)�V�\�\�%7�%7����Qrc��[RRS5nURURS5 URUR
S5 [RRS5nURURS5 URUR
S5 [RR
S5nURURS5 URUR
S5 [RR
S5nURURS5 URUR
S5 g)Nztel:+31-641044153�telz
+31-641044153ztel:+31641044153z+31641044153)rBrCrSrNrFrHrD)rU�p1�p2s   r^�test_issue14072� UrlParseTestCase.test_issue14072�s���
�\�\�
"�
"�#6�
7��������E�*�������/�2�
�\�\�
"�
"�#5�
6��������E�*�������.�1�
�\�\�
"�
"�#6�
7��������E�*�������/�2�
�\�\�
"�
"�#5�
6��������E�*�������.�1rc���UR[[RRS5 UR[[RRS5 UR[[RRS5 UR[[RRS5 UR[[RRS5 UR[[RRS5 UR[[RRS5 UR[[RRS5 UR[[RRS	5 UR[[RRS
5 UR[[RRS5 UR[[RRS5 UR[[RRS
5 UR[[RRS5 UR[[RRS5 UR[[RRS5 UR[[RRS5 UR[[RRS5 UR[[RRS5 UR[[RRS5 UR[[RRS5 UR[[RRS5 UR[[RRS5 UR[[RRS5 UR[[RRS5 UR[[RRS5 UR[[RRS5 UR[[RRS5 UR[[RRS5 UR[[RRS5 UR[[RRS5 UR[[RRS 5 UR[[RRS!5 UR[[RRS"5 UR[[RRS#5 UR[[RRS$5 UR[[RRS%5 UR[[RRS&5 UR[[RRS'5 UR[[RRS(5 UR[[RRS)5 UR[[RRS*5 UR[[RRS+5 g),Nz&Scheme://user@[192.0.2.146]/Path?Queryz-Scheme://user@[important.com:8000]/Path?Queryz#Scheme://user@[v123r.IP]/Path?Queryz Scheme://user@[v12ae]/Path?QueryzScheme://user@[v.IP]/Path?Queryz Scheme://user@[v123.]/Path?QueryzScheme://user@[v]/Path?Queryz5Scheme://user@[0439:23af::2309::fae7:1234]/Path?QueryzJScheme://user@[0439:23af:2309::fae7:1234:2342:438e:192.0.2.146]/Path?QueryzScheme://user@]v6a.ip[/Pathzscheme://prefix.[v6a.ip]zscheme://[v6a.ip].suffixzscheme://prefix.[v6a.ip]/zscheme://[v6a.ip].suffix/zscheme://prefix.[v6a.ip]?zscheme://[v6a.ip].suffix?zscheme://prefix.[::1]zscheme://[::1].suffixzscheme://prefix.[::1]/zscheme://[::1].suffix/zscheme://prefix.[::1]?zscheme://[::1].suffix?zscheme://prefix.[::1]:azscheme://[::1].suffix:azscheme://prefix.[::1]:a1zscheme://[::1].suffix:a1zscheme://prefix.[::1]:1azscheme://[::1].suffix:1azscheme://prefix.[::1]:zscheme://[::1].suffix:/zscheme://prefix.[::1]:?zscheme://user@prefix.[v6a.ip]zscheme://user@[v6a.ip].suffixzscheme://[v6a.ipzscheme://v6a.ip]zscheme://]v6a.ip[zscheme://]v6a.ipzscheme://v6a.ip[zscheme://prefix.[v6a.ipzscheme://v6a.ip].suffixzscheme://prefix]v6a.ip[suffixzscheme://prefix]v6a.ipzscheme://v6a.ip[suffix)r-r.rBrCrSr�s r^�test_invalid_bracketed_hosts�-UrlParseTestCase.test_invalid_bracketed_hosts�s������*�f�l�l�&;�&;�=e�f����*�f�l�l�&;�&;�=l�m����*�f�l�l�&;�&;�=b�c����*�f�l�l�&;�&;�=_�`����*�f�l�l�&;�&;�=^�_����*�f�l�l�&;�&;�=_�`����*�f�l�l�&;�&;�=[�\����*�f�l�l�&;�&;�=t�u����*�f�l�l�&;�&;�>J�	K����*�f�l�l�&;�&;�=Z�[����*�f�l�l�&;�&;�=W�X����*�f�l�l�&;�&;�=W�X����*�f�l�l�&;�&;�=X�Y����*�f�l�l�&;�&;�=X�Y����*�f�l�l�&;�&;�=X�Y����*�f�l�l�&;�&;�=X�Y����*�f�l�l�&;�&;�=T�U����*�f�l�l�&;�&;�=T�U����*�f�l�l�&;�&;�=U�V����*�f�l�l�&;�&;�=U�V����*�f�l�l�&;�&;�=U�V����*�f�l�l�&;�&;�=U�V����*�f�l�l�&;�&;�=V�W����*�f�l�l�&;�&;�=V�W����*�f�l�l�&;�&;�=W�X����*�f�l�l�&;�&;�=W�X����*�f�l�l�&;�&;�=W�X����*�f�l�l�&;�&;�=W�X����*�f�l�l�&;�&;�=U�V����*�f�l�l�&;�&;�=V�W����*�f�l�l�&;�&;�=V�W����*�f�l�l�&;�&;�=\�]����*�f�l�l�&;�&;�=\�]����*�f�l�l�&;�&;�=O�P����*�f�l�l�&;�&;�=O�P����*�f�l�l�&;�&;�=P�Q����*�f�l�l�&;�&;�=O�P����*�f�l�l�&;�&;�=O�P����*�f�l�l�&;�&;�=V�W����*�f�l�l�&;�&;�=V�W����*�f�l�l�&;�&;�=\�]����*�f�l�l�&;�&;�=U�V����*�f�l�l�&;�&;�=U�Vrc�&�[RRS5nURURS5 URUR
S5 URURS5 URURS5 [RRS5nURURS5 URUR
S5 URURS5 URURS5 [RRS5nURURS	5 URUR
S5 URURS5 g)
Nz&scheme://user@[v6a.ip]:1234/path?queryzv6a.ip�user�/pathi�z4scheme://user@[0439:23af:2309::fae7%test]/path?queryz0439:23af:2309::fae7%testzEscheme://user@[0439:23af:2309::fae7:1234:192.0.2.146%test]/path?queryz*0439:23af:2309::fae7:1234:192.0.2.146%test)	rBrCrSrNrQrOrHrRr�)rUr.r/�p3s    r^�test_splitting_bracketed_hosts�/UrlParseTestCase.test_splitting_bracketed_hostss��
�\�\�
"�
"�#K�
L��������h�/�������f�-�������'�*�������$�'�
�\�\�
"�
"�#Y�
Z��������&A�B�������f�-�������'�*��
�
�b�g�g�t�$�
�\�\�
"�
"�#j�
k��������&R�S�������f�-�������'�*rc�t�Sn[RRS5nUR[U5 UR
 SSS5 [RR
S5nUR[U5 UR
 SSS5 g!,(df   NY=f!,(df   g=f)Nz3Port could not be cast to integer value as 'oracle'z%http://Server=sde; Service=sde:oracle)rBrCrDrVr.rRrS)rU�messager.r/s    r^�!test_port_casting_failure_message�2UrlParseTestCase.test_port_casting_failure_messages���G��
�\�\�
"�
"�#J�
K��
�
#�
#�J��
8��G�G�9��\�\�
"�
"�#J�
K��
�
#�
#�J��
8��G�G�9�
8�	9�
8��9�
8�s�
B�
B)�
B&�)
B7c��[RRS5nURURS5 URUR
S5 URURS5 [RRS5nURURS5 URUR
S5 URURS5 [RRS5nURURS5 URUR
S	5 URURS
5 [RRS5nURURS5 URUR
S5 URURS
5 g)Nz"tel:123-4;phone-context=+1-650-516r-z123-4zphone-context=+1-650-516ztel:+1-201-555-0123z+1-201-555-0123rz"tel:7042;phone-context=example.com�7042zphone-context=example.comz%tel:863-1234;phone-context=+1-914-555z863-1234zphone-context=+1-914-555)rBrCrDrNrFrHrI)rUr.s  r^�test_telurl_params�#UrlParseTestCase.test_telurl_params!sJ��
�\�\�
"�
"�#G�
H��������E�*�������'�*�������$>�?�
�\�\�
"�
"�#8�
9��������E�*�������"3�4�������B�'�
�\�\�
"�
"�#G�
H��������E�*�������&�)�������$?�@�
�\�\�
"�
"�#J�
K��������E�*�������*�-�������$>�?rc��[RR[RR5nUR	S[U55 g)N�Quoter)rBrC�_Quoter�_ALWAYS_SAFE�assertIn�repr)rU�quoters  r^�test_Quoter_repr�!UrlParseTestCase.test_Quoter_repr6s2�����%�%�f�l�l�&?�&?�@���
�
�h��V��-rc�@�[RR5 grA)rBrC�clear_cacher�s r^�"test_clear_cache_for_code_coverage�3UrlParseTestCase.test_clear_cache_for_code_coverage:s����� � �"rc��UR[5 [RRnSSS5 g!,(df   g=f)z5Test that urllib.parse.__getattr__() fails correctly.N)r-�AttributeErrorrBrC�this_does_not_exist)rU�unuseds  r^�!test_urllib_parse_getattr_failure�2UrlParseTestCase.test_urllib_parse_getattr_failure=s+��
�
�
�~�
.��\�\�5�5�F�/�
.�
.�s	�:�
Ac�Z�/n1Skn[[R5H^nURS5(dX2;aM [	[RU5n[	USS5S:XdMMURU5 M` UR
[RRU5 g)N>�unwrap�splittag�to_bytes�	splitattr�	splithost�	splitport�	splittype�	splituser�
ResultBase�
splitnport�
splitquery�
splitvaluerM�splitpasswdr^rzurllib.parse)�dirrBrC�
startswithr��append�assertCountEqual�__all__)rUr��undocumented�namer�s     r^�test_all�UrlParseTestCase.test_allBs�����
������%�D����s�#�#�t�';���V�\�\�4�0�F��v�|�T�2�n�D�����%�&�	
���f�l�l�2�2�H�=rc�P�SnUVs1sHnSR[U55iM nn[[[	S[
R55Vs/sH`n[R"U5(dM U[[R"U5R55-(dMWX!;dM^UPMb nnURSU5 URSU5 [RRS5 UR[ 5 [RRS5 SSS5 SH�nS	H�nUH�nS
RXVRU55nUR#USR[U55S9 UR[ 5 [RRU5 SSS5 SSS5 M� M� M� gs snfs snf!,(df   N�=f!,(df   N>=f!,(df   M�=f)Nz/:#?@z{:04X}�u℀u#uhttp://プ:80uhttp://プ︓80)r�r�r�)znetloc{}false.netloczn{}user@netlocz{}://{}/path)rV�char)�format�ord�map�chrr]�sys�
maxunicode�unicodedata�
decompositionrrXrGrBrCrSr-r.r�)rU�
illegal_charsr�	hex_chars�denorm_charsrFrGrVs        r^�test_urlsplit_normalization�,UrlParseTestCase.test_urlsplit_normalizationRs��� �
�6C�D�m��X�_�_�S��V�,�m�	�D��3��c�3�>�>� :�;�
�;�!��(�(��+�
��S��!:�!:�1�!=�!C�!C�!E�F�F�
��&�
�;�	�
�	
�
�
�h��-��
�
�h��-�	�����6�7�
�
�
�z�
*��L�L�!�!�"?�@�+�/�F�D��%�A�(�/�/��
�
�a�8H�I�C����#�H�O�O�C��F�4K��L�!�.�.�z�:�"�L�L�1�1�#�6�;�M�L�&�E�/��#E��
�+�
*��;�:��M�L�sM�$G*�G/�:3G/�1G/�8G/� G4�H	�- H�
H	�4
H�
H�H	�
H%
r
rA)Irrrrr_r�subTests�parse_qsl_test_casesrl�parse_qs_test_casesrpr�r�r�r�r�r�rrrrr)r/r�rr?rBrWr_rirBrCrSrDrnrtrxr{r�r�r�r�r�r�r��DefragResult�SplitResult�ParseResultr�r�r�r�r�r�r�r�r�rrr#r'r*r0r3r9r=rArJrNrTrkr{rr
rr^r>r>js���38�j
���m�%9�:�8�;�8�
���m�%8�9�8�:�8�
���g�}�-����(�Z+�Z�v1�wZ�.�x1�
���g�}�-����-�0
��,7�-�.�.7�
���g�}�-����h� 1�2����(�+��"1�#�3�.�&1�N�
���g�}�-����c�i�j�O�k�.�O�"A�`@�
%J�Z7B�r5&�n
���g�}�-����)�,��@Q�A�.�BQ�
���g�}�-����m�&.�/�J�
/�.�J�

���g�}�-����'�C�:�E�<�I�@�G�B�
�/��5�
�/��4�*
��
0��.�
0�M�[�z#t�J9D�v
���g�}�-����g���� 5� 5�v�|�|�7L�7L�M�N����f�Z�[��\�O�.��
���g�}�-����g���� 5� 5�v�|�|�7L�7L�M�N����h� H�I�9�J�O�.�9�'*�RU�@�&@�$D�V�*
���f�v�|�|�4�4�f�l�l�6K�6K�L�M�8�N�8�
���.�1
��
���f�v�|�|�4�4�f�l�l�6K�6K�L�M�<�N��<�"L�0
���m�
�,�,�
#�
#�
�,�,�
"�
"�
�,�,�
"�
"�&
��
L��
L�67�7�H�

���m�
�"�I�
�2�J�
�c�C�5�\�"�
�5�'���8�9�
��s�C�j�)�*�
�2�J�
�B�K�
�t�d�V�n�%�
�V�H�V�H�=�>�
�$��t��-�.�&
��/��/�
���m�
�"�I�
�2�J�
�j�\�"�
�\�<�8�9�
��Z�0�1�
�2�J�
�B�K�
�|�n�%�
�n�n�=�>�
�,��5�6�&
��/��/�U�
R�=�.�;�	5�&�R�

2�+W�Z+� �@�*.�#�6�
>� 7rr>c��\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
r\R""SS5S5rSrg)�
Utility_Testsipz=Testcase to test the various utility functions in the urllib.c�(�[RRnURU"S5S5 URU"S5S5 URU"S5S5 URU"S5S5 URU"S	5S
5 g)Nztype:opaquestring)�type�opaquestringr�)Nr��
:opaquestring)Nr�ztype:)r�rztype:opaque:string)r�z
opaque:string)rBrC�
_splittyperN)rUr]s  r^�test_splittype�Utility_Tests.test_splittypets����L�L�+�+�	�����#6�7�9Q�R�����>�2�4J�K�����?�3�5L�M�����7�+�\�:�����#7�8�:S�Trc��[RRnURU"S5S5 URU"S5S5 URU"S5S5 URU"S5S5 URU"S	5S
5 URU"S5S5 URU"S
5S5 URU"S5S5 URU"S5S5 URU"S5S5 g)Nz%//www.example.org:80/foo/bar/baz.html)�www.example.org:80�/foo/bar/baz.htmlz//www.example.org:80)r�rr�)Nr�z//127.0.0.1#@host.com)�	127.0.0.1�/#@host.comz//127.0.0.1#@host.com:80)r�z/#@host.com:80z//127.0.0.1:80#@host.com)z127.0.0.1:80r�z///file)rz/filez//example.net/file;)�example.netz/file;z//example.net/file?)r�z/file?z//example.net/file#)r�z/file#)rBrC�
_splithostrN)rUr[s  r^�test_splithost�Utility_Tests.test_splithost|s���L�L�+�+�	�����#J�K�D�	F�����#9�:�3�	5�����#6�7�4�	6�	
����#:�;�5�	7�����#=�>�8�	:�����#=�>�8�	:�	
����9�-�&�	(�	
����#8�9�2�	4�����#8�9�2�	4�����#8�9�2�	4rc�(�[RRnURU"S5S5 URU"S5S5 URU"S5S5 URU"S5S5 URU"S	5S
5 g)NrH)�	User:Pass�www.python.org:080z@www.python.org:080)rr�r�)Nr�z
User:Pass@)r�rrM)zUser@example.com:Passr�)rBrC�
_splituserrN)rUr^s  r^�test_splituser�Utility_Tests.test_splituser�s����L�L�+�+�	�����#A�B�<�	>�����#8�9�3�	5�����#7�8�5�	7�����<�0�*�	,�����#M�N�H�	Jrc��[RRnURU"S5S5 URU"S5S5 URU"S5S5 URU"S5S5 URU"S	5S
5 URU"S5S5 URU"S
5S5 URU"S5S5 URU"S5S5 URU"S5S5 URU"S5S5 URU"S5S5 URU"S5S5 g)Nzuser:ab)r6�abzuser:a
b)r6za
bzuser:a	b)r6za	bzuser:a
b)r6za
bzuser:ab)r6zabzuser:ab)r6zabzuser:a:b)r6za:bzuser:a b)r6rz	user 2:ab)zuser 2r�z
user+1:a+b)zuser+1za+bzuser:)r6rr6)r6Nz:ab)rr�)rBrC�_splitpasswdrN)rUrcs  r^�test_splitpasswd�Utility_Tests.test_splitpasswd�s+���l�l�/�/������Y�/��@�����[�1�3C�D�����[�1�3C�D�����[�1�3C�D�����[�1�3C�D�����[�1�3C�D�����Z�0�/�B�����Z�0�/�B�����[�1�3C�D�����\�2�4E�F�����W�-�|�<�����V�,�n�=�����U�+�Z�8rc��[RRnURU"S5S5 URU"S5S5 URU"S5S5 URU"S5S5 URU"S5S	5 URU"S
5S5 URU"S5S
5 URU"S5S5 g)N�	parrot:88)�parrot�88r��r�N�parrot:r�)r�N�
parrot:cheese)r�Nz[::1]:88)�[::1]r�r�)r�Nz:88)rr�)rBrC�
_splitportrN)rUr\s  r^�test_splitport�Utility_Tests.test_splitport�s����L�L�+�+�	�����;�/�1A�B�����8�,�.>�?�����9�-�/?�@�����;�/�1D�E�����?�3�5L�M�����:�.��@�����7�+�_�=�����5�)�:�6rc� �[RRnURU"S5S5 URU"S5S5 URU"SS5S5 URU"S5S5 URU"SS5S5 URU"S5S	5 URU"SS5S
5 URU"S5S5 URU"SS5S5 URU"S
5S5 g)Nr�)r�rdr�)r�����7)r�r�r�r�)r�r�)r�r�r�r�z
parrot: +1_0 )rBrC�_splitnportrN)rUr`s  r^�test_splitnport�Utility_Tests.test_splitnport�s����\�\�-�-�
�����K�0�.�A�����H�-�~�>�����H�b�1�>�B�����I�.��?�����I�r�2�N�C�����K�0�2C�D�����K��4�6G�H�����O�4�6F�G�����O�R�8�:J�K�����O�4�6F�Grc��[RRnURU"S5S5 URU"S5S5 URU"S5S5 URU"S5S5 g)	N�http://python.org/fake?foo=bar)�http://python.org/fake�foo=barzhttp://python.org/fake?foo=bar?)r�rr�)r�Nz?foo=bar)rr�)rBrC�_splitqueryrN)rUras  r^�test_splitquery�Utility_Tests.test_splitquery�su���\�\�-�-�
�����$D�E�>�	@�����$E�F�?�	A�����$<�=�9�	;�����J�/��Arc�(�[RRnURU"S5S5 URU"S5S5 URU"S5S5 URU"S5S5 URU"S	5S
5 g)N�http://example.com?foo=bar#baz)�http://example.com?foo=bar�bazzhttp://example.com?foo=bar#)r�rz#baz)rr�r�)r�Nz"http://example.com?foo=bar#baz#boo)r��boo)rBrC�	_splittagrN)rUrXs  r^�
test_splittag�Utility_Tests.test_splittag�s����<�<�)�)������"B�C�>�	@�����"?�@�;�	=�����&�)�;�7�����">�?�=�	?�����"F�G�B�	Drc��[RRnURU"S5SSS/45 URU"S5SS/45 URU"S5SSS/45 URU"S5S/45 g)Nz/path;attr1=value1;attr2=value2r7zattr1=value1zattr2=value2z/path;rz;attr1=value1;attr2=value2)rBrC�
_splitattrrN)rUrZs  r^�test_splitattr�Utility_Tests.test_splitattr�s����L�L�+�+�	�����#D�E�!�N�N�#C�D�	F�����8�,�w���o�>�����#?�@��~�~�>�?�	A�����7�+�g�r�]�;rc�(�[RRnURU"S5S5 URU"S5S5 URU"S5S5 URU"S5S5 URU"S	5S
5 g)Nr�)r�barzfoo=)rrz=bar)rr��foobar)r�Nzfoo=bar=baz)rzbar=baz)rBrC�_splitvaluerN)rUrbs  r^�test_splitvalue�Utility_Tests.test_splitvalue�s~���\�\�-�-�
�����I�.��?�����F�+�[�9�����F�+�[�9�����H�-�/?�@�����M�2�4F�Grc���[RRS5nURUS5 UR	[
[RRS5 g)Nzhttp://www.python.orguhttp://www.python.org/mediæval)rBrC�	_to_bytesrNr-�UnicodeErrorr�s  r^�
test_to_bytes�Utility_Tests.test_to_bytes�sH�����'�'�(?�@������!8�9����,����(>�(>�?�	Ar�wrapped_url)z<URL:scheme://host/path>z<scheme://host/path>zURL:scheme://host/path�scheme://host/pathc�f�[RRU5nURUS5 g)Nr�)rBrCrWrN)rUr�rVs   r^�test_unwrap�Utility_Tests.test_unwraps)���l�l�!�!�+�.������2�3rr
N)rrrr�__doc__r�r�r�r�r�r�r�r�r�r�r�rr}r�rr
rr^r�r�psl��G�U�4�:J�9�$	7�H�
B�
D�<�H�A�
���m�K�L�4�L�4rr�c�\�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrg)�DeprecationTesti	c�4�UR[5n[RRnURU[RR5 SSS5 URS[WR55 g!,(df   N4=f)NzQuoter will be removed)
�assertWarns�DeprecationWarningrBrCrDr�rErGr;�warning)rU�cm�	old_classs   r^�test_Quoter_deprecation�'DeprecationTest.test_Quoter_deprecationsa��
�
�
�0�
1�R����+�+�I��M�M�)�V�\�\�%9�%9�:�2�	
�
�
�.��B�J�J��@�2�
1�s�AB	�	
Bc���UR[5n[RR	S5 SSS5 UR[
WR5S5 g!,(df   N4=f)NrzUurllib.parse.splittype() is deprecated as of 3.8, use urllib.parse.urlparse() instead)r�r�rBrCr]rNr;r��rUr�s  r^�test_splittype_deprecation�*DeprecationTest.test_splittype_deprecation�Q��
�
�
�0�
1�R��L�L�"�"�2�&�2�����R�Z�Z��?�	@�2�
1��� A$�$
A2c���UR[5n[RR	S5 SSS5 UR[
WR5S5 g!,(df   N4=f)NrzUurllib.parse.splithost() is deprecated as of 3.8, use urllib.parse.urlparse() instead)r�r�rBrCr[rNr;r�r�s  r^�test_splithost_deprecation�*DeprecationTest.test_splithost_deprecationr�r�c���UR[5n[RR	S5 SSS5 UR[
WR5S5 g!,(df   N4=f)NrzUurllib.parse.splituser() is deprecated as of 3.8, use urllib.parse.urlparse() instead)r�r�rBrCr^rNr;r�r�s  r^�test_splituser_deprecation�*DeprecationTest.test_splituser_deprecationr�r�c���UR[5n[RR	S5 SSS5 UR[
WR5S5 g!,(df   N4=f)NrzWurllib.parse.splitpasswd() is deprecated as of 3.8, use urllib.parse.urlparse() instead)r�r�rBrCrcrNr;r�r�s  r^�test_splitpasswd_deprecation�,DeprecationTest.test_splitpasswd_deprecation&sQ��
�
�
�0�
1�R��L�L�$�$�R�(�2�����R�Z�Z��?�	@�2�
1�r�c���UR[5n[RR	S5 SSS5 UR[
WR5S5 g!,(df   N4=f)NrzUurllib.parse.splitport() is deprecated as of 3.8, use urllib.parse.urlparse() instead)r�r�rBrCr\rNr;r�r�s  r^�test_splitport_deprecation�*DeprecationTest.test_splitport_deprecation-r�r�c���UR[5n[RR	S5 SSS5 UR[
WR5S5 g!,(df   N4=f)NrzVurllib.parse.splitnport() is deprecated as of 3.8, use urllib.parse.urlparse() instead)r�r�rBrCr`rNr;r�r�s  r^�test_splitnport_deprecation�+DeprecationTest.test_splitnport_deprecation4�Q��
�
�
�0�
1�R��L�L�#�#�B�'�2�����R�Z�Z��?�	@�2�
1�r�c���UR[5n[RR	S5 SSS5 UR[
WR5S5 g!,(df   N4=f)NrzVurllib.parse.splitquery() is deprecated as of 3.8, use urllib.parse.urlparse() instead)r�r�rBrCrarNr;r�r�s  r^�test_splitquery_deprecation�+DeprecationTest.test_splitquery_deprecation;r�r�c���UR[5n[RR	S5 SSS5 UR[
WR5S5 g!,(df   N4=f)NrzTurllib.parse.splittag() is deprecated as of 3.8, use urllib.parse.urlparse() instead)r�r�rBrCrXrNr;r�r�s  r^�test_splittag_deprecation�)DeprecationTest.test_splittag_deprecationBsQ��
�
�
�0�
1�R��L�L�!�!�"�%�2�����R�Z�Z��?�	@�2�
1�r�c���UR[5n[RR	S5 SSS5 UR[
WR5S5 g!,(df   N4=f)NrzUurllib.parse.splitattr() is deprecated as of 3.8, use urllib.parse.urlparse() instead)r�r�rBrCrZrNr;r�r�s  r^�test_splitattr_deprecation�*DeprecationTest.test_splitattr_deprecationIr�r�c���UR[5n[RR	S5 SSS5 UR[
WR5S5 g!,(df   N4=f)NrzWurllib.parse.splitvalue() is deprecated as of 3.8, use urllib.parse.parse_qsl() instead)r�r�rBrCrbrNr;r�r�s  r^�test_splitvalue_deprecation�+DeprecationTest.test_splitvalue_deprecationPsR��
�
�
�0�
1�R��L�L�#�#�B�'�2�����R�Z�Z��@�	A�2�
1�r�c���UR[5n[RR	S5 SSS5 UR[
WR5S5 g!,(df   N4=f)Nrz/urllib.parse.to_bytes() is deprecated as of 3.8)r�r�rBrCrYrNr;r�r�s  r^�test_to_bytes_deprecation�)DeprecationTest.test_to_bytes_deprecationWsO��
�
�
�0�
1�R��L�L�!�!�"�%�2�����R�Z�Z��J�	L�2�
1�r�r
N)rrrrr�r�r�r�r�r�r�r�r�r�r�rrr
rr^r�r�	sJ��A�@�@�@�@�@�@�@�@�@�A�Lrr�c�$�URS5$)Nr�)r�)�ss r^r�r�^s���8�8�G��rc�&�[SU55$)Nc3�8# �UHn[U5v� M g7frA)r�)�.0r�s  r^�	<genexpr>�tuple_encode.<locals>.<genexpr>bs���*��1��A����s�)�tuple)r[s r^r�r�as���*��*�*�*r�__main__)rtrv�unittest�urllib.parserB�testr�test.support.testcaserr�rrrr~r�TestCaser>r�r�r�r�r�mainr
rr^�<module>rs���
�����1�%��#��#����
)���H�)��"�I�)�
�2�J�)�	�8�*��	)�

�I�;��)�	�9�+��
)�
�I�;��)�
�|�n��)�����)���Z�(�)�)��>�"�#�)��j�\��)��\�<�0�1�)���Z�(�)�)�	�"�I�)� 
�2�J�!)�"�B�K�#)�$
�J�<��%)�&�[�M��')�(
�K�=��))�*�[�M��+)�,��� �-)�.�.�!�"�/)�0�,��-�.�1)�2�$�%�&�3)�4
�|�n��5)�6�n�n�5�6�7)�8�,��-�.�9)�:�k�]��;)�<�'�(�)�=)�>
�}�o��?)�@�*�+�,�A)�D�'�(�)�E)�F�)�*�+�G)�H�%�&�'�I)�J�6�7�8�K)�L�2�3�4�M)�N�&�'�(�O)�P�$�%�&�Q)��\*���H�*��"�I�*�
�2�J�*�	�2��t�*��	*�

�B���;��*�	�3���+��
*�
�C�"��;��*�
�s�U�G�n��*�������*��s�e�3�%�(�)�*��3��	�"�#�*��c�C�5�\��*��5�'���0�1�*���s�C�j�!�"�*�	�"�I�*� 
�2�J�!*�"�B�K�#*�$
�C�#��<��%*�&�S�4�&�M��'*�(
�D�3�%�=��)*�*�T�C�5�M��+*�,��v�h�� �-*�.�&�4�&�!�"�/*�0���t�f�-�.�1*�2�D�8�*�%�&�3*�4
�t�d�V�n��5*�6�V�H�V�H�5�6�7*�8�$��t��%�&�9*�:�d�S�E�]��;*�<�S�;�-�(�)�=*�>
�u�t�f�o��?*�@�d�\�?�+�,�A*�B��0�1�2�3�C*�F�X��x�(�)�G*�H�x�&��*�+�I*�J��H�:�&�'�K*�L�K�+��7�8�M*�N��k�]�3�4�O*�P�G�g�Y�'�(�Q*�R�'�G�9�%�&�S*��XD7�x�(�(�/�D7�L(V4�H�%�%�V4�rRL�h�'�'�RL�j�+��z���M�M�O�r

Youez - 2016 - github.com/yon3zu
LinuXploit