python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_urllib2_localnet.cpython-311.opt-2.pyc

e[fddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZddl
mZddl
mZddl
mZ	ddlZn
#e$rdZYnwxYwejdejeZejedd	Zejedd
ZGddejjZGd
dejZGddZ Gddejj!Z"Gddejj!Z#Gdde	j$Z%ej&ddGdde	j$Z'dZ(Gdde	j$Z)dZ*e+dkre	j,dSdS) N)support)hashlib_helper)threading_helper)warnings_helperT)modulecertdatazkeycert.pemzkeycert2.pemceZdZ	dZdZdS)LoopbackHttpServerctjj||||jddS)Ng?)httpserver
HTTPServer__init__socket
settimeout)selfserver_addressRequestHandlerClasss   N/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_urllib2_localnet.pyrzLoopbackHttpServer.__init__%sE''(6(;	=	=	=	
s#####cn	|j\}}|d||fS)Ng$@)racceptr)rrequestclient_addresss   rget_requestzLoopbackHttpServer.get_request.s>,"&+"4"4"6"6
	4   ((rN)__name__
__module____qualname__rrrrr
r
 s7$$$
)
)
)
)
)rr
c"eZdZ	dZdZdZdS)LoopbackHttpServerThreadctj|d|_tj|_d|_td||_|jj	|_
dS)NFzHTTP/1.0)z	127.0.0.1r)	threadingThreadr_stop_serverEventreadyprotocol_versionr
httpdserver_portportrrequest_handlers  rrz!LoopbackHttpServerThread.__init__=s_!!$'''!_&&
+5('(8(799
J*			rcp	d|_||jdS)NT)r%joinr)server_closers rstopzLoopbackHttpServerThread.stopFs4< 		
!!!!!rc|j|js"|j|j dSdSN)r'setr%r)handle_requestr1s rrunzLoopbackHttpServerThread.runNsT
#	(J%%'''#	(	(	(	(	(rN)rrrrr2r7rrrr!r!:sD<+++"""(((((rr!cFeZdZ	dZdZdZdZdZdZdZ	dZ
d	Zd
S)DigestAuthHandlercLd|_g|_i|_d|_d|_dS)Nrz
Test Realmauth)_request_num_nonces_users_realm_name_qopr1s rrzDigestAuthHandler.__init__Xs+'			rc||_dSr4)r@)rqops  rset_qopzDigestAuthHandler.set_qop_s
			rc||_dSr4)r>)ruserss  r	set_userszDigestAuthHandler.set_usersbs
rc||_dSr4)r?)rrealms  r	set_realmzDigestAuthHandler.set_realmfs rc|xjdz
c_tjt|jd}|j||S)Nascii)r<hashlibmd5strencode	hexdigestr=append)rnonces  r_generate_noncez!DigestAuthHandler._generate_nonceiseQC 12299'BBCCMMOOE"""rcR|d}||dzd}|d}i}|D]j}|d\}}|}|ddkr|ddkr|dd}n|}|||<k|S)N rK,=r")findsplitstrip)rauth_strfirst_space_indexparts	auth_dictpartnamevalues        r_create_auth_dictz#DigestAuthHandler._create_auth_dictos$MM#..-a/001s##		$	$D**S//KD%::<<DQx359#3#3ad

#IdOOrci}||||d<||d<||d<d|z}tj|d}d|z}tj|d}	||d<|	|d<d	|z}
tj|
d}||d
kS)Npasswordmethoduriz#%(username)s:%(realm)s:%(password)srLz%(method)s:%(uri)sHA1HA2z3%(HA1)s:%(nonce)s:%(nc)s:%(cnonce)s:%(qop)s:%(HA2)sresponse)updaterMrNrPrQ)rrargrhri
final_dictHA1_strrjHA2_strrkresponse_strrls            r_validate_authz DigestAuthHandler._validate_auths
)$$$!)
:%
8
57*Dk'..1122<<>>&3k'..1122<<>>
5
546@A;|227;;<<FFHH9Z000rc
2|dd|dd|dd|jd|jd|d	||jd
dS)NizProxy Authentication RequiredContent-Type	text/htmlzProxy-AuthenticatezDigest realm="z", qop="z	",nonce="z", sProxy Authentication Required.F)
send_responsesend_headerr?r@rTend_headerswfilewriter,s  r_return_auth_challengez(DigestAuthHandler._return_auth_challenges%%c+JKKK##NK@@@##  


tyyy$*>*>*@*@*@*@#B	C	C	C	##%%%##$EFFFurc\	t|jdkrdSd|jvr||S||jd}|d|jvr|j|d}n||S|d|jvr||S|j|dd}|j|j	fD]!}|
|||j|rd}"|s||SdS)NrTzProxy-AuthorizationusernamerSF)lenr>headersr{regetr=removepath
short_pathrrcommand)rr-rargauth_validatedrs      rr6z DigestAuthHandler.handle_requestsZ	t{q  4 (???..???..'(=>I$33;	*(=?22?CCC==))T\9922?CCC##Ig$6777"N)-/IJ
*
*&&y'/'6'>'+--*&*N!
D22?CCC4rN)rrrrrCrFrIrTrerrr{r6rrrr9r9Us7!!!"111$


*****rr9ceZdZ	dZdZdZedeZeje	d
dZdZdZ
dZd	Zd
ZdS)BasicAuthHandlertestUsertestPassTest:rLcDtjjj|g|Ri|dSr4)rr
BaseHTTPRequestHandlerr)rargskwargss   rrzBasicAuthHandler.__init__s.*3DJ4JJJ6JJJJJrcdSr4rrformatrs   rlog_messagezBasicAuthHandler.log_messagesrc|d|dd|dS)NContent-typeru)rvrwrxr1s rdo_HEADzBasicAuthHandler.do_HEADsD3555rc|d|dd|jz|dd|dS)NizWWW-AuthenticatezBasic realm="%s"rru)rvrwREALMrxr1s rdo_AUTHHEADzBasicAuthHandler.do_AUTHHEADsc3+-ADJ-NOOO555rc|jdds0||jddS|jddd|jzkrE|d||jddS|dS)N
AuthorizationsNo Auth header receivedzBasic rsIt works)rrrryrzENCODED_AUTHrvrxr1s rdo_GETzBasicAuthHandler.do_GETs|44
	J788888
\

%%(043D(DEEs###J[)))))
rN)rrrUSERPASSWDrUSER_PASSWDbase64	b64encoderPdecoderrrrrrrrrrrs6D
FE!TT66*K#6#K$6$6w$?$?@@GGPPLKKK



rrc"eZdZ	dZdZdZdS)FakeProxyHandlercR||_tjjj|g|Ri|dSr4)digest_auth_handlerrr
rr)rrrrs    rrzFakeProxyHandler.__init__s8$7 *3DJ4JJJ6JJJJJrcdSr4rrs   rrzFakeProxyHandler.log_messages		
rctj|jd\}}}}}}||_|j|r|dd|dd|	|j
td|jzd|j
ddSdS)	NrrOKrtruzYou've reached %s!<BR>rLsFOur apologies, but our server is down due to a sudden zombie invasion.)
urllibparseurlparserrrr6rvrwrxryrzbytes)rscmnetlocrparamsqueryfragments       rrzFakeProxyHandler.do_GETs7=|7L7LIv884fdFE8#22488	;sD)))^[999JU#;di#G#*,,
-
-
-J:
;
;
;
;
;
	;	;rN)rrrrrrrrrrrsIKKK


;;;;;rrcJeZdZdZdZdZdZfdZdZfdZ	dZ
d	ZxZS)
BasicAuthTestsrr	IncorrectrcNtt|d}t||_||jd|jjz|_|j	|jj
dS)Nct|i|Sr4)r)rrs  r#http_server_with_basic_auth_handlerzABasicAuthTests.setUp.<locals>.http_server_with_basic_auth_handler$s#T4V444rzhttp://127.0.0.1:%s)superrsetUpr!r

addCleanupstop_serverr+
server_urlstartr'wait)rr	__class__s  rrzBasicAuthTests.setUp!s
nd##))+++	5	5	5./RSS()))/$+2BB     rcF|jd|_dSr4r
r2r1s rrzBasicAuthTests.stop_server,!rcVtt|dSr4)rrtearDown)rrs rrzBasicAuthTests.tearDown0s%
nd##,,.....rctj}||j|j|j|jtjtj	|	|
tj|jdS#tjj
$r!|d|jzYdSwxYw)Nz!Basic auth failed for the url: %s)rrHTTPBasicAuthHandleradd_passwordrrrrinstall_openerbuild_opener
assertTrueurlopenerror	HTTPErrorfailrahs  rtest_basic_auth_successz&BasicAuthTests.test_basic_auth_success3s
^
0
0
2
2

DOTYLLL%%fn&A&A"&E&EFFF	MOOFN224?CCDDDDD|%	M	M	MII9DOKLLLLLL	Ms7C1C65C6ctj}||j|j|j|jtjtj	||
tjjtjj
|jdSr4)rrrrrrrINCORRECT_PASSWDrrassertRaisesrrrrs  rtest_basic_auth_httperrorz(BasicAuthTests.test_basic_auth_httperror<s
^
0
0
2
2

DOTY@UVVV%%fn&A&A"&E&EFFF&,0&.2H$/ZZZZZr)
rrrrrrrrrrrr
__classcell__rs@rrrsD
F"E	!	!	!	!	!/////MMM[[[[[[[rrrN)opensslcLeZdZdZdZdZdZfdZdZdZ	dZ
d	Zd
ZxZ
S)ProxyAuthTestszhttp://localhosttestertest123	TestRealmc|ttd}|tjdtjd<dtjd<t_j	j
jijj
fd}t|_jjjjdjjz}t*jd|i}t*j_t*j|j_dS)Nctjtj|dSr4osenvironclearrmold_environs rrestore_environz-ProxyAuthTests.setUp.<locals>.restore_environN2JJk*****rrNO_PROXYno_proxyc.tjg|Ri|Sr4)rr)rrrs  rcreate_fake_proxy_handlerz7ProxyAuthTests.setUp.<locals>.create_fake_proxy_handlerYs$#D$<NtNNNvNNNrzhttp://127.0.0.1:%dr)rrrrrrcopyr9rrFrrrIrr!r
rrr'rr+rrProxyHandlerProxyDigestAuthHandlerproxy_digest_handlerropener)rrr	proxy_urlhandlerrs`    rrzProxyAuthTests.setUpKs
nd##))+++	+	+	+	
):):;;;!#
:!#
:#4#6#6  **DIt{+CDDD **4:666	O	O	O	O	O//HII()))   )DK,<<	.--v	.BCC$*N$I$I$K$K!n11T.00rcF|jd|_dSr4rr1s rrzProxyAuthTests.stop_serverfrrc|j|j|j|j|jdz|jd|tj
j|jj
|jdS)Nbadr;)rrrURLrrrrCrrrrropenr1s r-test_proxy_with_bad_password_raises_httperrorz<ProxyAuthTests.test_proxy_with_bad_password_raises_httperrorjs!..tz48/3y$+e:K	M	M	M ((000&,0+*(	$	$	$	$	$rc|jd|tjj|jj|jdSNr;)	rrCrrrrrrrr1s r,test_proxy_with_no_password_raises_httperrorz;ProxyAuthTests.test_proxy_with_no_password_raises_httperrorrsO ((000&,0+*(	$	$	$	$	$rc^|j|j|j|j|j|jd|j	|j5}|
r	|
ddddS#1swxYwYdSr)rrrrrrrrCrrreadrresults  rtest_proxy_qop_auth_worksz(ProxyAuthTests.test_proxy_qop_auth_worksxs!..tz48/3y$+	G	G	G ((000
[

dh
'
'	6++--
++--
																		s+*B""B&)B&c|j|j|j|j|j|jd	|j	|j}|5|
r	|
ddddS#1swxYwYdS#tjj
$rYdSwxYw)Nzauth-int)rrrrrrrrCrrrrrURLErrorrs  r0test_proxy_qop_auth_int_works_or_throws_urlerrorz?ProxyAuthTests.test_proxy_qop_auth_int_works_or_throws_urlerrors !..tz48/3y$+	G	G	G ((444
	[%%dh//F

kkmmkkmm


















|$			
DD		s$
B2.*B%%B),B)2C
	C
)rrrrrrrrrrrrrrrs@rrrCs
CD
FE000006$$$$$$rrcJGfddtjjS)Nc>eZdZdZgZgZdZdZdZfdZ	dZ
dS)1GetRequestHandler.<locals>.FakeHTTPRequestHandlerz	TestHTTP/Pc|}|r(|j|}||d}|&dSdSr4)	send_headryrz)rbodydones   rrz8GetRequestHandler.<locals>.FakeHTTPRequestHandler.do_GETsY>>##D
#z''--DEE{
#
#
#
#
#rc|jd}|jt|}||j|dS)NzContent-Length)rrfilerintrrequestsrR)rcontent_length	post_datas   rdo_POSTz9GetRequestHandler.<locals>.FakeHTTPRequestHandler.do_POSTsS!\*:;N
N(;(;<<IKKMMMM  +++++rc|j_|j|jd\}}}|||D]%\}}|||d|jiz&|r,|dd|	|S|	dS)Nrr+rz
text/plain)
rheaders_receivedrrRrpoprvrwr+rx)r
response_coderrheaderrdFakeHTTPRequestHandler	responsess      rr
z;GetRequestHandler.<locals>.FakeHTTPRequestHandler.send_heads6:l"3M  ++++4==+;+;(M7D}---#*
E
E  &1C)CDDDD
  >>>  """rcdSr4r)rrs  rrz=GetRequestHandler.<locals>.FakeHTTPRequestHandler.log_messagesDrN)rrrserver_versionrrr+rrr
r)rrsrrr
su$	#	#	#	,	,	,
	
	
	
	
	
						rr)rr
r)rrs`@rGetRequestHandlerr sK########!C###L"!rceZdZ	fdZddZdZddZddZdZdZ	d	Z
d
ZdZdZ
d
ZdZdZdZdZdZdZdZdZdZdZxZS)TestUrlopencDtt||tjjd}||tj	dtjd<dtjd<dS)Nctjtj|dSr4rrs rrz*TestUrlopen.setUp.<locals>.restore_environrr*rr)
rr"rrrr
urlcleanuprrr)rrrs  rrzTestUrlopen.setUps
k4  &&(((	
1222	+	+	+	
):):;;;!$
:!$
:rNcg}tjj||fi|}	||d||||d|||n#|wxYwd	|S)Nrir)
rrrextend	readlinesrRreadlinercloser/)rurldatarlfs      rrzTestUrlopen.urlopensN"37777	
HHQ[[%%&&&
HHQZZ\\"""
HHQVVD\\"""
HHQVVXX
GGIIIIAGGIIIIxx{{sBCC%cF|jd|_dSr4rr1s rrzTestUrlopen.stop_serverrrc$|dgdfg}t|}t||_||j|j|jj|jj}||_|S)Nrs
we don't care)	r r!r
rrrr'rr+)rrrr+s    rstart_serverzTestUrlopen.start_serversr#345I#I...w77()))   {rcttjds|dddlm}|dgdfg}t
|}||fd|i|}|j|_|S)NHTTPSHandlerzssl support requiredr)make_https_serverr
we care a bit
handler_class)hasattrrrskipTesttest.ssl_serversr5r r+)rrrr5rr
s      rstart_https_serverzTestUrlopen.start_https_serversv~~66	2MM0111666666r#345I#I..""4IIwI&II{rcd}ddgdfdg|fg}||}|d|jz}|||||jddgdS)	NsWe got here...i.)Locationz(http://localhost:%(port)s/somewhere_elserrhttp://localhost:%s//z/somewhere_elser2rr+assertEqualr)rexpected_responserrr-s     rtest_redirectionzTestUrlopen.test_redirections-
KL


"'(
	##I..||2W\ABB0111)C1B+CDDDDDrcd}d}ddg|fg}||}|d|jz}|||dS)Nshello worldsa
hello worl
1
d
0
r)zTransfer-Encodingchunkedr>)r2rr+rA)rrB
chunked_startrlrr-s      rtest_chunkedzTestUrlopen.test_chunked	sp*!	;<mLM##H--||2W\ABB011111rcd}|dg|fg}	|d|jz|dnI#tjj$r2}|}|Yd}~nd}~wwxYw|	|||	|j
dgdS)NsBad bad bad...izhttp://localhost:%s/weeblez404 should raise URLErrorz/weeble)r2rr+rrrrrr+rAr)rrBrr/r-s     rtest_404zTestUrlopen.test_404s-##c2/@%A$BCC	3LL5DEEE

II12222	|$			6688D
GGIIIIIIII		
0111)I;77777sAB$(BBcd}|dg|fg}|d|jz}|||||jdgdS)N
pycon 2008...rhttp://localhost:%s/bizarre/bizarrer@rrBrr-s    rtest_200zTestUrlopen.test_200&sw,##c2/@%A$BCC||9GLHII0111)J<88888rcd}|dg|fg}|d|jzd}|||||jddgdS)NrKrrLsget=with_feelingrMr@rNs    rtest_200_with_parametersz$TestUrlopen.test_200_with_parameters-s,##c2/@%A$BCC||9GLH0220111)J8K+LMMMMMrc|}tjt}|d|jz|}||ddS)Ncafilehttps://localhost:%s/bizarrecontextr6)r;sslcreate_default_contextCERT_localhostrr+rA)rrrWr-s    r
test_httpszTestUrlopen.test_https5sa))++,NCCC||:W\ISZ|[[/00000rc|t}tjdtf5|d|jzt}||d|tj
j5}|d|jztdddn#1swxYwY|t}|tj
j5}|d|jztdddn#1swxYwYddddS#1swxYwYdS)NcertfilerrUrSr6)
r;rZrcheck_warningsDeprecationWarningrr+rArrrrCERT_fakehostname)rrr-cms    rtest_https_with_cafilez"TestUrlopen.test_https_with_cafile;s))>)BB

+R1C,D
E
E
	7
	7<< > M'5 77DT#3444""6<#899
7R;glJ$5777
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7--7H-IIG""6<#899
7R;glJ$5777
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
	7
	7
	7
	7
	7
	7
	7
	7
	7
	7
	7
	7
	7
	7
	7
	7
	7
	7s[AE%C;EC	EC	AE%E6EE	E	E	
EE!EcZ|t}tjdtf5|tjj5}|	d|j
zddddn#1swxYwYddddS#1swxYwYdS)Nr]rrUT)	cadefault)r;rZrr_r`rrrrrr+)rrrbs   rtest_https_with_cadefaultz%TestUrlopen.test_https_with_cadefaultLs&))>)BB

+R1C,D
E
E	-	-""6<#899
-R;glJ'+---
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-s5%B  B<B B	B B	B  B$'B$ct|dtjs|ddfd}tjtj}||||t}tjt}|	d|j
z||ddS)	Nzssl module requiredzSNI support required in OpenSSLc|dSr4r)ssl_sockserver_nameinitial_contextsni_names   rcb_sniz*TestUrlopen.test_https_sni.<locals>.cb_sniZs"HHHr)rWr^rSzhttps://localhost:%srV	localhost)rXr9HAS_SNI
SSLContextPROTOCOL_TLS_SERVERset_servername_callbackr;rZrYrr+rA)rrmrWrrls    @rtest_https_snizTestUrlopen.test_https_sniTs;MM/000{	=MM;<<<	#	#	#	#	#.!899''///))'N)SS,NCCC+gl:GLLL;/////rc6|}tjd|jzddi}tj|5	dddn#1swxYwY||jdddS)Nr>Rangezbytes=20-39r)r2rrRequestr+rrArrrreqs   rtest_sending_headersz TestUrlopen.test_sending_headersds##%%n$$%;gl%J.5}-E%GG
^
#
#C
(
(																	1':MJJJJJA--A14A1c|}tjd|jzddi}tj|5	dddn#1swxYwY|d|j|	d|jdS)Nr>z
X-SoMe-hEaderfoobarrvz
X-Some-Header)
r2rrrwr+rassertInrkeysassertNotInrxs   rtest_sending_headers_camelz&TestUrlopen.test_sending_headers_camells##%%n$$%;gl%J.=x-H%JJ
^
#
#C
(
(																	

ow'?'D'D'F'FGGG'*B*G*G*I*IJJJJJr{cV|}tjd|jz5}dD])}|t
||d|z*||dddddS#1swxYwYdS)Nhttp://localhost:%s)rr+infogeturlz3object returned from urlopen lacks the %s attributezcalling 'read' failed)r2rrrr+rr8r)rropen_urlattrs    r
test_basiczTestUrlopen.test_basicus##%%
^
#
#$9GL$H
I
I	FX;
F
F$ 7 7:>@D:EFFFFOOHMMOO-DEEE		F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	FsABB"%B"ct|}tjd|jz}|5|}dddn#1swxYwY||tjj	d|
|ddS)NrzEobject returned by 'info' is not an instance of email.message.Messageplain)r2rrrr+rassertIsInstanceemailmessageMessagerAget_content_subtype)rrrinfo_objs    r	test_infozTestUrlopen.test_info}s##%%>))!GL022
	'	'}}H	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'h
(=B	C	C	C	
5577AAAAAAA#&A#c|}tjd|jz}|5|}dddn#1swxYwY||d|jzdS)Nr)r2rrrr+rrA)rrrr,s    rtest_geturlzTestUrlopen.test_geturls##%%>))*?',*NOO
	$	$//##C	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$3glBCCCCCrcd}|dg|fg}tjd|jz}|D]}|||dS)NrKrr)r2rrrr+rA)rrBrr-lines     rtest_iterationzTestUrlopen.test_iterationsv,##c2/@%A$BCC~%%&;gl&JKK	6	6DT#45555	6	6rc
dddddzdzg}d|}|dg|fg}tjd	|jz}t
|D]K\}}||||d
|dt||dt|L||d
zt|dS)NsWe
sgot
shere
s	verylong i 
rrrzFetched line number z1 doesn't match expected:
    Expected length was z, got rK)	r/r2rrrr+	enumeraterAr~)rlinesrBrr-indexrs       rtest_line_iterationzTestUrlopen.test_line_iterations(I|d/BU/JKHHUOO##c2/@%A$BCC~%%&;gl&JKK$T??	D	DKE4T5<<$eeSu%6%6%6%6D			C
D
D
D
D	
CJJ/////rc|dgdfdgdfg}tj}tjd|jz}|d|j||d	d|d|j|d|
d||d	d|d	|j|d
|
ddS)Nrsanyr1zus-ascii1zContent-length
1234567890s
123456789010)r2rrrrwr+rAr-rrP
get_header)rrrrs    rtest_issue16464zTestUrlopen.test_issue16464s>##
"f
"f%
,,...(()>)MNNw|,,,GSZZ
33444w|,,,g001ABBCCCG\00<<===555w112BCCDDDDDrr4)rrrrrrr2r;rCrGrIrOrQr[rcrfrsrzrrrrrrrrrs@rr"r"s%%%%%				EEE222
8
8
8999NNN111777"---000 KKKKKKFFF	B	B	BDDD666
0
0
0EEEEEEErr"cdtj}tjtjg|RdSr4)rthreading_setupunittestaddModuleCleanupthreading_cleanup)thread_infos rsetUpModulers3"244K.@O;OOOOOOr__main__)-rrrurllib.parserurllib.requesthttp.serverrr#rrMtestrtest.supportrrrrXImportErrorrequires_working_socketrdirname__file__herer/rZrar
rr
r$r!r9rrrTestCaserrequires_hashdigestrr r"rrmainrrr<module>rs6



				''''''))))))((((((JJJJ
CCC t,,,,	wx  dJ
>>GLLz>BB
)))))/)))4(((((y/(((6vvvvvvvvr&&&&&t{9&&&X;;;;;t{9;;;B%[%[%[%[%[X&%[%[%[P$#E4888JJJJJX&JJ98JZ("("("VxExExExExE(#xExExEtPPP
zHMOOOOOsAA
A