python (3.12.0)

(root)/
lib/
python3.12/
test/
test_asyncio/
__pycache__/
utils.cpython-312.opt-1.pyc

ϑeFdZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddl
mZddlmZddlmZmZ	ddlZddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlm Z dd
l!m"Z"ddl!m#Z#dZ$e$dZ%e$dZ&e$dZ'e$dZ(ddddddddddd
Z)dZ*d d!d"Z+d#Z,d$Z-e j\fd%Z/d&Z0Gd'd(eZ1Gd)d*eZ2Gd+d,Z3Gd-d.e3e2Z4d/d0d1Z5e6e	d2rcGd3d4e
jneZ8Gd5d6e8eZ9Gd7d8e9Z:Gd9d:e3e:Z;d;Z<ejzd<Z>ejzd/d0d=Z?ejzd>dd/d?d@Z@dAZAejzd>ddBdCZBdDZCGdEdFejZEGdGdHejZGdIZHGdJdKeIZJGdLdMZKdNZLGdOdPe
jZMejzdQZNe	je	je	jfdRZRy#e$rdZYwxYw)SzUtilities shared by tests.N)mock)
HTTPServer)WSGIRequestHandler
WSGIServer)base_events)events)format_helpers)futures)tasks)logger)support)
socket_helper)threading_helpercttdrOtjj	tj
|}tjj
|r|Stjj	tjjtd|}tjj
|r|St|)N
TEST_HOME_DIRz..)
hasattrr
ospathjoinrisfiledirname__file__FileNotFoundError)filenamefullnames  K/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_asyncio/utils.py	data_filer's~w(77<< 5 5x@
77>>(#Oww||BGGOOH5tXFH	ww~~h
H
%%zssl_cert.pemzssl_key.pemzkeycert3.pemzpycacert.pem)z)http://testca.pythontest.net/testca/ocsp/)z0http://testca.pythontest.net/testca/pycacert.cer)z2http://testca.pythontest.net/testca/revocation.crl))countryNameXY))organizationNamezPython Software Foundation CA))
commonNamez
our-ca-serverzOct 28 14:23:16 2037 GMTzAug 29 14:23:16 2018 GMTCB2D80995A69525C)r))localityNamezCastle Anthrax))r"zPython Software Foundation))r#	localhost))DNSr&)
OCSP	caIssuerscrlDistributionPointsissuernotAfter	notBeforeserialNumbersubjectsubjectAltNameversionctjtj}|jtt
d|_tj|_|SNF)	ssl
SSLContextPROTOCOL_TLS_SERVERload_cert_chainONLYCERTONLYKEYcheck_hostname	CERT_NONEverify_mode)server_contexts rsimple_server_sslcontextr?Is@^^C$;$;<N""8W5$)N!!$NrTdisable_verifyctjtj}d|_|rtj|_|Sr4)r5r6PROTOCOL_TLS_CLIENTr;r<r=)rAclient_contexts  rsimple_client_sslcontextrEQs3^^C$;$;<N$)N!%(]]"rc(tytdS)NTr@)r5rErrdummy_ssl_contextrHYs
{'t<<rcd}|}|j|}d|_	|j||jy#|jwxYw)NcKywNrGrGrroncezrun_briefly.<locals>.onceas	sF)create_task_log_destroy_pendingrun_until_completeclose)looprLgents    rrun_brieflyrT`sN
&CA#A"				sAAcd}tj|dD]>}|ry|jtj|t|dzd}@t
j)NgMbP?F)errorg?)r

busy_retryrOrsleepmaxr
TimeoutError)rQpredtimeoutdelay_s     r	run_untilr`nscE


u
5%6E 23EAIs#	%""$$rcZ|j|j|jy)zLegacy API to run once through the event loop.

    This is the recommended pattern for test code.  It will poll the
    selector once and run all callbacks scheduled in response to I/O
    events.
    N)	call_soonstoprun_forever)rQs rrun_oncereys 	NN499rceZdZdZdZy)SilentWSGIRequestHandlerc*tjSrK)ioStringIOselfs r
get_stderrz#SilentWSGIRequestHandler.get_stderrs{{}rcyrKrG)rlformatargss   rlog_messagez$SilentWSGIRequestHandler.log_messagerN)__name__
__module____qualname__rmrqrGrrrgrgs
rrgc<eZdZejZfdZdZxZS)SilentWSGIServercdt|\}}|j|j||fSrKsuperget_request
settimeoutrequest_timeoutrlrequestclient_addr	__class__s   rr{zSilentWSGIServer.get_requests4$w244//0##rcyrKrGrlrclient_addresss   rhandle_errorzSilentWSGIServer.handle_errorrrr)	rsrtrur
LOOPBACK_TIMEOUTr}r{r
__classcell__rs@rrwrws..O$

rrwceZdZdZy)SSLWSGIServerMixinc
tjtj}|jtt
|j
|d}	|j||||jy#t$rYywxYw)NT)server_side)
r5r6r7r8r9r:wrap_socketRequestHandlerClassrPOSError)rlrrcontextssocks     rfinish_requestz!SSLWSGIServerMixin.finish_requestso
..!8!89'2##G#>	$$UNDAKKM		s#A66	BBN)rsrtrurrGrrrrsrrceZdZy)
SSLWSGIServerNrsrtrurGrrrrsrrF)use_sslc#Kdfd}|r|n|}||tj|j_t	j
fd}|j
	jj|jy#jj|jwxYww)Nc3Kt|d}|r4|djt|d}||t|z}|r3yyw)NCONTENT_LENGTHz
wsgi.inputi)intreadminlen)environsizedatas   rrQz_run_test_server.<locals>.loopsM7+,-<(--c$.@ADJCIDsAAAcFd}dg}||||ddk(r|SdgS)Nz200 OK)zContent-typez
text/plain	PATH_INFOz/loopsTest messagerG)rstart_responsestatusheadersrQs    rappz_run_test_server.<locals>.apps:12vw';7*= #$$rc(jdS)Ng?)
poll_interval)
serve_forever)httpdsr<lambda>z"_run_test_server.<locals>.<lambda>su***>rtarget)
rgset_appserver_addressaddress	threadingThreadstartshutdownserver_closer)	rr
server_clsserver_ssl_clsrserver_class
server_threadrrQs	       @@r_run_test_serverrs%&->*L":;E	MM#((EM$$>@M

	
sA'C,B!01C!2CCAF_UNIXceZdZdZy)UnixHTTPServerc^tjj|d|_d|_y)N	127.0.0.1P)socketserverUnixStreamServerserver_bindserver_nameserver_portrks rrzUnixHTTPServer.server_binds&))55d;*D!DrN)rsrtrurrGrrrrs	"rrc<eZdZejZdZfdZxZS)UnixWSGIServercNtj||jyrK)rr
setup_environrks rrzUnixWSGIServer.server_binds&&t, rcdt|\}}|j|j|dfS)N)rryr~s   rr{zUnixWSGIServer.get_requests7#(7#6#8 G[t334---r)	rsrtrur
rr}rr{rrs@rrrs!22	!		.		.rrceZdZdZy)SilentUnixWSGIServercyrKrGrs   rrz!SilentUnixWSGIServer.handle_errorsrN)rsrtrurrGrrrrs	rrceZdZy)UnixSSLWSGIServerNrrGrrrrsrrc*tjSrK)rcreate_unix_domain_namerGrrgen_unix_socket_pathrs4466rc#Kt}	|	tj|y#t$rYywxYw#	tj|w#t$rYwwxYwxYwwrK)rrunlinkr)rs runix_socket_pathrs[#%	J
		$


		$

sRA"8)A"	5A"5A"AAA	AAAAA"c#Kt5}t||ttEd{dddy7
#1swYyxYwwN)rrrr)rrrr)rrs  rrun_test_unix_serverrsR

	J4'g3G7HJ
J
J	J	J
J	J	Js$A868	A8AArhostportrc#RKt||f|ttEd{y7wr)rrwrrs   rrun_test_serverrs&tg+;/<>>>s'%'c~	|jd\}}|dk(r|jy|j||=)NiSTOP)recvfromrPsendto)sockraddrs   recho_datagramsrs=
]]4(
d7?JJLKKd#
r)rrc#	Ktj||tj}|d\}}}}}tj|||		j||ft	j
	fd}|j
		j	jd	j|jy#	jd	j|jwxYww)N)typerctSrK)r)rsrrz%run_udp_echo_server.<locals>.<lambda>+s^D-Arrr)
socketgetaddrinfo
SOCK_DGRAMbindrrrgetsocknamerr)
rr	addr_infofamilyrprotor_sockaddrthreadrs
         @rrun_udp_echo_serverr%s""4F4E4EFI'0|$FD%H==u-DIItTl


%A
BF
LLN  GT--/0
	
GT--/0
sBD	C1D2C>>Dci}t|D]4}|jdr|jdr&td||<6t	d|f|j
z|S)N__)return_valueTestProtocol)dir
startswithendswithMockCallbackr	__bases__)basedctnames   rmake_test_protocolr4sc
CD	4??4 T]]4%8 d3D		4
?4$.. 8#>@@rc,eZdZdZddZdZdZdZy)TestSelectorci|_yrKkeysrks r__init__zTestSelector.__init__@s		rNcTtj|d||}||j|<|S)Nr)	selectorsSelectorKeyr)rlfileobjrrkeys     rregisterzTestSelector.registerCs+##GQ= 		'
rc8|jj|SrK)rpop)rlr
s  r
unregisterzTestSelector.unregisterHsyy}}W%%rcgSrKrG)rlr]s  rselectzTestSelector.selectKs	rc|jSrKrrks rget_mapzTestSelector.get_mapNsyyrrK)rsrtrurrrrrrGrrrr>s
&rrceZdZdZdfd	ZdZdZfdZdZdZ	d	Z
d
ZdZdZ
d
ZdZdZdZdZdZdZfdZddfd
ZdZdZxZS)TestLoopaLoop for unittests.

    It manages self time directly.
    If something scheduled to be executed later then
    on next loop iteration after all ready handlers done
    generator passed to __init__ is calling.

    Generator should be like this:

        def gen():
            ...
            when = yield ...
            ... = yield time_advance

    Value returned by yield is absolute time of next scheduled handler.
    Value passed to yield is time advance to move loop's time forward.
    NcBt||d}d|_nd|_||_t	|jd|_d|_g|_t|_	i|_
i|_|jtj|_y)Nc3KdywrKrGrGrrrRzTestLoop.__init__.<locals>.genis	sFTrg&.>)rzr_check_on_close_gennext_time_clock_resolution_timersr	_selectorreaderswritersreset_countersweakrefWeakValueDictionary_transports)rlrRrs  rrzTestLoop.__init__es
;
#(D #'D E	TYY
!%%"668rc|jSrKrrks rtimez
TestLoop.time|szzrc4|r|xj|z
c_yy)zMove test time forward.Nr&)rladvances  radvance_timezTestLoop.advance_timesJJ'!Jrct||jr'	|jj	dtdy#t$rYywxYw)NrzTime generator is not finished)rzrPrrsendAssertionError
StopIteration)rlrs rrPzTestLoop.closesR


G		q!%%EFF
 !

sA	AAcNtj|||d|j|<yrK)rHandlerrlfdcallbackrps    r_add_readerzTestLoop._add_reader!==4tDRrcj|j|xxdz
cc<||jvr|j|=yyNTF)remove_reader_countrrlr2s  r_remove_readerzTestLoop._remove_reader6  $)$
R rc||jvrtd|d|j|}|j|k7rtd|jd||j|k7rtd|jd|y)Nfd  is not registeredzunexpected callback:  != zunexpected callback args: )rr-	_callback_argsrlr2r3rphandles     r
assert_readerzTestLoop.assert_readers
T\\! 3rd*<!=>>b!x' '(8(8'9hZHJ
J<<4 ,V\\N$tfEG
G rc>||jvrtd|dy)Nr>z is registered)rr-r:s  rassert_no_readerzTestLoop.assert_no_readers'
 3rd.!9::rcNtj|||d|j|<yrK)rr0r r1s    r_add_writerzTestLoop._add_writerr5rcj|j|xxdz
cc<||jvr|j|=yyr7)remove_writer_countr r:s  r_remove_writerzTestLoop._remove_writerr<rc||jvrtd|d|j|}|j|k7rt|jd||j|k7rt|jd|y)Nr>r?r@)r r-rArBrCs     r
assert_writerzTestLoop.assert_writers
T\\! 3rd*<!=>>b!x' F$4$4#7tH<!HII<<4 FLL#34x!@AA rc0t|ts	t|j}	|j|}tdj
||#ttt
f$rtdj
|dwxYw#t$rYywxYw)NzInvalid file object: {!r}z.File descriptor {!r} is used by transport {!r})

isinstancerfilenoAttributeError	TypeError
ValueErrorror$RuntimeErrorKeyError)rlr2	transports   r_ensure_fd_no_transportz TestLoop._ensure_fd_no_transports"c"
>%
	$((,I@GG	#$
$#Iz:
> "((.r
49=>
>		sAB	0B		BBcL|j||j||g|S)zAdd a reader callback.)rXr4r1s    r
add_readerzTestLoop.add_reader*$$R(tH4t44rcF|j||j|S)zRemove a reader callback.)rXr;r:s  r
remove_readerzTestLoop.remove_reader!$$R(""2&&rcL|j||j||g|S)zAdd a writer callback..)rXrIr1s    r
add_writerzTestLoop.add_writerr[rcF|j||j|S)zRemove a writer callback.)rXrLr:s  r
remove_writerzTestLoop.remove_writerr^rc|tjt|_tjt|_yrK)collectionsdefaultdictrr9rKrks rr!zTestLoop.reset_counterss(#.#:#:3#? #.#:#:3#? rct||jD].}|jj	|}|j|0g|_yrK)rz	_run_oncerrr,r*)rlwhenr)rs   rrgzTestLoop._run_oncesJ
LL	'DiinnT*Gg&	'r)rcb|jj|t|||g|d|iS)Nr)rappendrzcall_at)rlrhr3rrprs     rrkzTestLoop.call_ats0D!wtXFFgFFrcyrKrG)rl
event_lists  r_process_eventszTestLoop._process_eventssrcyrKrGrks r_write_to_selfzTestLoop._write_to_selfrrrrK)rsrtru__doc__rr'r*rPr4r;rErGrIrLrNrXrZr]r`rbr!rgrkrnrprrs@rrrRs}$9."
GE	G;EB$"5
'
5
'
@6:G
rrc2tjdddgi|S)Nspec__call__rG)rMock)kwargss rrrs991:,1&11rceZdZdZdZy)MockPatternzA regex based str with a fuzzy __eq__.

    Use this helper with 'mock.assert_called_with', or anywhere
    where a regex comparison between strings is needed.

    For instance:
       mock_call.assert_called_with(MockPattern('spam.*ham'))
    cpttjt||tjSrK)boolresearchstrSrlothers  r__eq__zMockPattern.__eq__s"BIIc$i566rN)rsrtrurqrrGrrrxrxs7rrxceZdZdZdZy)MockInstanceOfc||_yrK)_type)rlrs  rrzMockInstanceOf.__init__	s	
rc.t||jSrK)rPrrs  rrzMockInstanceOf.__eq__s%,,rN)rsrtrurrrGrrrrs-rrcPtj|}|td||S)Nzunable to get the source of )r	_get_function_sourcerT)funcsources  rget_function_sourcers*

0
0
6F
~TCDDMrc<eZdZedZdddZd	dZdZdZy)
TestCasecr|jL|js |j|jn|jj	d|jt
j}|	tj5tjdt|j}dddttjr;t!|j"j%}|D]}|j'yyy#1swY`xYw#t($rYywxYw)NT)waitignore)_default_executor	is_closedrOshutdown_default_executorrrPr
maybe_get_event_loop_policywarningscatch_warningssimplefilterDeprecationWarningget_child_watcherrPasyncioThreadedChildWatcherlist_threadsvaluesrNotImplementedError)rQpolicywatcherthreadsrs     r
close_loopzTestCase.close_loops	!!->>#''(F(F(HI&&//T/:

446
&,,.9))(4FG$668G9gw'C'CD"7#3#3#:#:#<=G")&
&E99'

s*D*+D?D*D'#D**	D65D6T)cleanupc|tdtjd|r|j|j|yy)Nzloop is None)r-rset_event_loop
addCleanupr)rlrQrs   rrzTestCase.set_event_loop/s:< 00d#OODOOT2rNc>t|}|j||SrK)rr)rlrRrQs   r
new_test_loopzTestCase.new_test_loop7s}D!rc6tj|_yrK)rthreading_setup_thread_cleanuprks rsetUpzTestCase.setUp<s/??Arctjd|jtj|jt
j|jtjyrK)rrassertIsNonesys	exception
doCleanupsrthreading_cleanuprr

reap_childrenrks rtearDownzTestCase.tearDown?sPd#	
#--/***D,@,@ArrK)	rsrtrustaticmethodrrrrrrGrrrrs.&&,/33
B	 rrc#Ktj}	tjtjdzdtj|y#tj|wxYww)zrContext manager to disable asyncio logger.

    For example, it can be used to ignore warnings in debug mode.
    r8N)rlevelsetLevelloggingCRITICAL)	old_levels rdisable_loggerrKsHI#((*+
	"	"sA.*AA.A++A.ctjtj}||_||_||_d|j_|S)z'Create a mock of a non-blocking socket.g)r	MagicMockrrrr
gettimeoutr)rrrrs    rmock_nonblocking_socketrYs<>>&--(DDJDIDK#&DOO Kr)Srqrrd
contextlibrirrr{rrrrrunittestr"rrhttp.serverrwsgiref.simple_serverrrr5ImportErrorrrr	r
rasyncio.logrtestr
test.supportrrrr9r:SIGNED_CERTFILE
SIGNING_CAPEERCERTr?rErHrT
SHORT_TIMEOUTr`rergrwrrrrrrrrrrcontextmanagerrrrrrrBaseSelectorr
BaseEventLooprrr}rxrrrrIPPROTO_TCPSOCK_STREAMAF_INETrrGrr<module>rs 			

"@ "&)&^$
M
"N+
~
&
:FT0++&-.&04=#*"7"7%
1


z

&	&(8	*/ F69"66
"..(~
.0D
7(-JJ'a>>$ +!A9))(b
{((b
J2
7#
7--1 x  1 h
#
##)"4"46;M;M#)>>A
CsII
I