File "test_utils.cpython-35.pyc"

Full Path: /home/attunedd/public_html/byp/izo/con7ext_sym404/rintoar.txt/opt/alt/python35/lib64/python3.5/asyncio/__pycache__/test_utils.cpython-35.pyc
File size: 17.72 KB
MIME-type: text/x-bytecode.python
Charset: 8 bit



Yf8@sdZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddl
mZddlmZddlmZmZyddlZWnek
rdZYnXddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddl m!Z!ddl"m#Z#e	j$dkrddl%m&Z&nddlm&Z&ddZ'ddZ(dddZ)ddZ*GdddeZ+GdddeZ,Gdd d Z-Gd!d"d"e-e,Z.d#d$d%d&Z/e0ed'rGd(d)d)ej1eZ2Gd*d+d+e2eZ3Gd,d-d-e3Z4Gd.d/d/e-e4Z5d0d1Z6ej7d2d3Z8ej7d#d$d4d5Z9ej7d6d7d8dd#d$d9d:Z:d;d<Z;Gd=d>d>ej<Z=Gd?d@d@ej>Z?dAdBZ@GdCdDdDeAZBdEdFZCGdGdHdHe
jDZDej7dIdJZEejFejGejHdKdLZIdMdNZJdS)OzUtilities shared by tests.N)mock)
HTTPServer)WSGIRequestHandler
WSGIServer)base_events)compat)events)futures)	selectors)tasks)	coroutine)logger)supportwin32)
socketpaircCs$tdkrdStjtjSdS)N)sslZ
SSLContextZPROTOCOL_SSLv23rr7/opt/alt/python35/lib64/python3.5/asyncio/test_utils.pydummy_ssl_context-src
CsVtdd}|}|j|}d|_z|j|Wd|jXdS)NcSsdS)Nrrrrronce5szrun_briefly.<locals>.onceF)r
Zcreate_taskZ_log_destroy_pendingrun_until_completeclose)looprgentrrrrun_briefly4s		rcCsttj|}x]|so|dk	rP|tj}|dkrPtj|jtjdd|qWdS)NrgMbP?r)timer
TimeoutErrorrrZsleep)rZpredtimeoutZdeadlinerrr	run_untilCsr!cCs|j|j|jdS)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)Z	call_soonstopZrun_forever)rrrrrun_onceMsr#c@s(eZdZddZddZdS)SilentWSGIRequestHandlercCs
tjS)N)ioStringIO)selfrrr
get_stderrZsz#SilentWSGIRequestHandler.get_stderrcGsdS)Nr)r'formatargsrrrlog_message]sz$SilentWSGIRequestHandler.log_messageN)__name__
__module____qualname__r(r+rrrrr$Xsr$cs4eZdZdZfddZddZS)SilentWSGIServercs/tj\}}|j|j||fS)N)superget_request
settimeoutrequest_timeout)r'requestclient_addr)	__class__rrr2eszSilentWSGIServer.get_requestcCsdS)Nr)r'r5client_addressrrrhandle_errorjszSilentWSGIServer.handle_error)r,r-r.r4r2r9rr)r7rr/asr/c@seZdZddZdS)SSLWSGIServerMixincCstjjtjjtdd}tjj|s]tjjtjjtjdd}tjj|d}tjj|d}tj|d|d|d	d
}y!|j||||j	Wnt
k
rYnXdS)Nz..ZteststestZtest_asynciozssl_key.pemzssl_cert.pemkeyfilecertfileZserver_sideT)ospathjoindirname__file__isdirrZwrap_socketZRequestHandlerClassrOSError)r'r5r8herer<r=Zssockrrrfinish_requestps$	
z!SSLWSGIServerMixin.finish_requestN)r,r-r.rFrrrrr:nsr:c@seZdZdS)
SSLWSGIServerN)r,r-r.rrrrrGsrGuse_sslFc
#sdd}|r|n|}||tj|j_tjdfdd}|jz	VWdjj|j	XdS)NcSs#d}dg}|||dgS)Nz200 OKContent-type
text/plainsTest message)rIrJr)environZstart_responseZstatusZheadersrrrapps	
z_run_test_server.<locals>.apptargetcsjddS)NZ
poll_intervalg?)Z
serve_foreverr)httpdrr<lambda>sz"_run_test_server.<locals>.<lambda>)
r$Zset_appZserver_addressaddress	threadingZThreadstartZshutdownZserver_closer@)rPrH
server_clsserver_ssl_clsrLZserver_classZ
server_threadr)rNr_run_test_servers
	
	

rUZAF_UNIXc@seZdZddZdS)UnixHTTPServercCs&tjj|d|_d|_dS)Nz	127.0.0.1P)socketserverUnixStreamServerserver_bindZserver_nameZserver_port)r'rrrrZs	zUnixHTTPServer.server_bindN)r,r-r.rZrrrrrVsrVcs4eZdZdZddZfddZS)UnixWSGIServerr0cCstj||jdS)N)rVrZZ
setup_environ)r'rrrrZs
zUnixWSGIServer.server_bindcs/tj\}}|j|j|dfS)N	127.0.0.1)r\r])r1r2r3r4)r'r5r6)r7rrr2szUnixWSGIServer.get_request)r,r-r.r4rZr2rr)r7rr[sr[c@seZdZddZdS)SilentUnixWSGIServercCsdS)Nr)r'r5r8rrrr9sz!SilentUnixWSGIServer.handle_errorN)r,r-r.r9rrrrr^sr^c@seZdZdS)UnixSSLWSGIServerN)r,r-r.rrrrr_sr_c	Cs!tj}|jSWdQRXdS)N)tempfileZNamedTemporaryFilename)filerrrgen_unix_socket_pathsrcccs@t}z	|VWdytj|Wntk
r:YnXXdS)N)rcr>unlinkrD)r?rrrunix_socket_paths		
reccs;t+}td|d|dtdtEdHWdQRXdS)NrPrHrSrT)rerUr^r_)rHr?rrrrun_test_unix_serversrfhostz	127.0.0.1portc	cs.td||fd|dtdtEdHdS)NrPrHrSrT)rUr/rG)rgrhrHrrrrun_test_serversricCsni}xHt|D]:}|jdr:|jdr:qtdd||<qWtd|f|j|S)N__return_valueZTestProtocol)dir
startswithendswithMockCallbacktype	__bases__)baseZdctrarrrmake_test_protocolsrsc@sOeZdZddZdddZddZdd	Zd
dZdS)TestSelectorcCs
i|_dS)N)keys)r'rrr__init__szTestSelector.__init__NcCs)tj|d||}||j|<|S)Nr)rZSelectorKeyru)r'fileobjr	datakeyrrrregisters
zTestSelector.registercCs|jj|S)N)rupop)r'rwrrr
unregisterszTestSelector.unregistercCsgS)Nr)r'r rrrselectszTestSelector.selectcCs|jS)N)ru)r'rrrget_mapszTestSelector.get_map)r,r-r.rvrzr|r}r~rrrrrts
rtcs!eZdZdZdfddZddZddZfd	d
ZddZd
dZ	ddZ
ddZddZddZ
ddZddZddZddZdd Zd!d"Zfd#d$Zfd%d&Zd'd(Zd)d*ZS)+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.
    Ncstj|dkr1dd}d|_n	d|_||_t|jd|_d|_g|_t|_	i|_
i|_|jt
j|_dS)Ncss	dVdS)Nrrrrrr!szTestLoop.__init__.<locals>.genFTrg&.>)r1rv_check_on_close_gennext_timeZ_clock_resolution_timersrtZ	_selectorreaderswritersreset_countersweakrefWeakValueDictionary_transports)r'r)r7rrrvs
	
					
zTestLoop.__init__cCs|jS)N)r)r'rrrr4sz
TestLoop.timecCs|r|j|7_dS)zMove test time forward.N)r)r'advancerrradvance_time7szTestLoop.advance_timecsOtj|jrKy|jjdWntk
r>Yn
XtddS)NrzTime generator is not finished)r1rrrsend
StopIterationAssertionError)r')r7rrr<s
	
zTestLoop.closecGs tj||||j|<dS)N)r	Handler)r'fdcallbackr*rrr_add_readerFszTestLoop._add_readercCs6|j|d7<||jkr.|j|=dSdSdS)NrTF)remove_reader_countr)r'rrrr_remove_readerIs

zTestLoop._remove_readercGs||jks$tdj||j|}|j|ks[tdj|j||j|kstdj|j|dS)Nzfd {} is not registeredz{!r} != {!r})rrr)	_callback_args)r'rrr*handlerrr
assert_readerQs$
zTestLoop.assert_readercGs tj||||j|<dS)N)r	rr)r'rrr*rrr_add_writerYszTestLoop._add_writercCs6|j|d7<||jkr.|j|=dSdSdS)NrTF)remove_writer_countr)r'rrrr_remove_writer\s

zTestLoop._remove_writercGs||jks$tdj||j|}|j|ks[tdj|j||j|kstdj|j|dS)Nzfd {} is not registeredz{!r} != {!r})rrr)rr)r'rrr*rrrr
assert_writerds$
zTestLoop.assert_writercCsBy|j|}Wntk
r%YnXtdj||dS)Nz.File descriptor {!r} is used by transport {!r})rKeyErrorRuntimeErrorr))r'rZ	transportrrr_ensure_fd_no_transportls
z TestLoop._ensure_fd_no_transportcGs |j||j|||S)zAdd a reader callback.)rr)r'rrr*rrr
add_readervs
zTestLoop.add_readercCs|j||j|S)zRemove a reader callback.)rr)r'rrrr
remove_reader{s
zTestLoop.remove_readercGs |j||j|||S)zAdd a writer callback..)rr)r'rrr*rrr
add_writers
zTestLoop.add_writercCs|j||j|S)zRemove a writer callback.)rr)r'rrrr
remove_writers
zTestLoop.remove_writercCs(tjt|_tjt|_dS)N)collectionsdefaultdictintrr)r'rrrrszTestLoop.reset_counterscsMtjx0|jD]%}|jj|}|j|qWg|_dS)N)r1	_run_oncerrrr)r'whenr)r7rrrs

zTestLoop._run_oncecs&|jj|tj|||S)N)rappendr1call_at)r'rrr*)r7rrrszTestLoop.call_atcCsdS)Nr)r'Z
event_listrrr_process_eventsszTestLoop._process_eventscCsdS)Nr)r'rrr_write_to_selfszTestLoop._write_to_self)r,r-r.__doc__rvrrrrrrrrrrrrrrrrrrrrr)r7rr
s*

rcKstjddg|S)Nspec__call__)rZMock)kwargsrrrrosroc@s"eZdZdZddZdS)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'))
    cCs"ttjt||tjS)N)boolresearchstrS)r'otherrrr__eq__szMockPattern.__eq__N)r,r-r.rrrrrrrsrcCs2tj|}|dkr.td|f|S)Nzunable to get the source of %r)r	Z_get_function_source
ValueError)funcsourcerrrget_function_sourcesrc@sjeZdZddddZdddZdd	Zd
dZdd
Zej	sfddZ
dS)TestCasecleanupTcCs9|dk	sttjd|r5|j|jdS)N)rr	set_event_loopZ
addCleanupr)r'rrrrrrs
zTestCase.set_event_loopNcCst|}|j||S)N)rr)r'rrrrr
new_test_loops
zTestCase.new_test_loopcCs|jt_dS)N)_get_running_loopr	)r'rrrunpatch_get_running_loopsz!TestCase.unpatch_get_running_loopcCs.tj|_ddt_tj|_dS)NcSsdS)NrrrrrrOsz TestCase.setUp.<locals>.<lambda>)r	rrZthreading_setup_thread_cleanup)r'rrrsetUpszTestCase.setUpcCsU|jtjd|jtjd|jtj|j	tj
dS)N)NNN)rr	rZassertEqualsysexc_infoZ
doCleanupsrZthreading_cleanuprZ
reap_children)r'rrrtearDowns


zTestCase.tearDowncOsGddd}|S)Nc@s(eZdZddZddZdS)z!TestCase.subTest.<locals>.EmptyCMcSsdS)Nr)r'rrr	__enter__sz+TestCase.subTest.<locals>.EmptyCM.__enter__cWsdS)Nr)r'excrrr__exit__sz*TestCase.subTest.<locals>.EmptyCM.__exit__N)r,r-r.rrrrrrEmptyCMsrr)r'r*rrrrrsubTestszTestCase.subTest)r,r-r.rrrrrrZPY34rrrrrrs
	rccs;tj}ztjtjddVWdtj|XdS)zrContext manager to disable asyncio logger.

    For example, it can be used to ignore warnings in debug mode.
    rN)rlevelZsetLevelloggingZCRITICAL)Z	old_levelrrrdisable_loggers
		rcCs=tjtj}||_||_||_d|j_|S)z'Create a mock of a non-blocking socket.g)rZ	MagicMocksocketprotorpfamilyZ
gettimeoutrk)rrprZsockrrrmock_nonblocking_sockets			rcCstjdddS)Nz'asyncio.sslproto._is_sslproto_availablerkF)rZpatchrrrrforce_legacy_ssl_supportsr)Krr
contextlibr%rr>rrrXrr`rQrZunittestrrZhttp.serverrZwsgiref.simple_serverrrrImportErrorr]rrr	r
rrZ
coroutinesr
logrr;rplatformZ
windows_utilsrrrr!r#r$r/r:rGrUhasattrrYrVr[r^r_rccontextmanagerrerfrirsZBaseSelectorrtZ
BaseEventLooprrorrrrrZIPPROTO_TCPZSOCK_STREAMZAF_INETrrrrrr<module>s

	
		

-