Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/test_asyncio/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/test_asyncio/__pycache__/utils.cpython-38.pyc
U

?��gQC�@sdZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlmZddlmZddlmZmZzddlZWnek
r�dZYnXddlmZddlmZddlmZdd	lmZdd
lmZddlmZddl m!Z!d
d�Z"e"d�Z#e"d�Z$e"d�Z%e"d�Z&ddddddddddd�
Z'dd�Z(d d!�d"d#�Z)d$d%�Z*d&d'�Z+d`d)d*�Z,d+d,�Z-Gd-d.�d.e�Z.Gd/d0�d0e�Z/Gd1d2�d2�Z0Gd3d4�d4e0e/�Z1d5d6�d7d8�Z2e3e	d9��rlGd:d;�d;e
j4e�Z5Gd<d=�d=e5e�Z6Gd>d?�d?e6�Z7Gd@dA�dAe0e7�Z8dBdC�Z9ej:dDdE��Z;ej:d5d6�dFdG��Z<ej:dHdd5dI�dJdK��Z=dLdM�Z>GdNdO�dOej?�Z@GdPdQ�dQejA�ZBdRdS�ZCGdTdU�dUeD�ZEGdVdW�dW�ZFdXdY�ZGGdZd[�d[ejH�ZHej:d\d]��ZIe	jJe	jKe	jLfd^d_�ZMdS)azUtilities shared by tests.�N)�mock)�
HTTPServer)�WSGIRequestHandler�
WSGIServer)�base_events)�events)�format_helpers)�futures)�tasks)�logger)�supportcCs^ttd�r*tj�tj|�}tj�|�r*|Stj�tj�t�d|�}tj�|�rR|St	|��dS)N�
TEST_HOME_DIRz..)
�hasattrr�os�path�joinr
�isfile�dirname�__file__�FileNotFoundError)�filename�fullname�r�6/opt/cppython/lib/python3.8/test/test_asyncio/utils.py�	data_file's
rz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)�)ZcountryNameZXY))�organizationNamezPython Software Foundation CA))�
commonNamez
our-ca-serverzOct 28 14:23:16 2037 GMTzAug 29 14:23:16 2018 GMTZCB2D80995A69525C)r))ZlocalityNamezCastle Anthrax))rzPython Software Foundation))r�	localhost))ZDNSr�)
ZOCSPZ	caIssuersZcrlDistributionPointsZissuerZnotAfterZ	notBeforeZserialNumberZsubjectZsubjectAltName�versioncCs*t�tj�}|�tt�d|_tj|_|S�NF)	�ssl�
SSLContextZPROTOCOL_TLS_SERVER�load_cert_chain�ONLYCERT�ONLYKEY�check_hostname�	CERT_NONE�verify_mode)Zserver_contextrrr�simple_server_sslcontextIs
r*T)�disable_verifycCs"t�tj�}d|_|rtj|_|Sr!)r"r#ZPROTOCOL_TLS_CLIENTr'r(r))r+Zclient_contextrrr�simple_client_sslcontextQs
r,cCstdkrdSt�tj�SdS�N)r"r#ZPROTOCOL_TLSrrrr�dummy_ssl_contextYsr.cCs<dd�}|�}|�|�}d|_z|�|�W5|��XdS)Nc�sdSr-rrrrr�onceaszrun_briefly.<locals>.onceF)Zcreate_taskZ_log_destroy_pending�close�run_until_complete)�loopr/�gen�trrr�run_briefly`s
r5�cCsLt��|}|�sH|dk	r6|t��}|dkr6t���|�t�d��qdS)Nrg����MbP?)�time�	monotonicr	�TimeoutErrorr1r
�sleep)r2Zpred�timeout�deadlinerrr�	run_untilnsr=cCs|�|j�|��dS)z�Legacy 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_soon�stopZrun_forever�r2rrr�run_oncexsr@c@seZdZdd�Zdd�ZdS)�SilentWSGIRequestHandlercCst��Sr-)�io�StringIO��selfrrr�
get_stderr�sz#SilentWSGIRequestHandler.get_stderrcGsdSr-r)rE�format�argsrrr�log_message�sz$SilentWSGIRequestHandler.log_messageN)�__name__�
__module__�__qualname__rFrIrrrrrA�srAcs(eZdZdZ�fdd�Zdd�Z�ZS)�SilentWSGIServer�cs"t���\}}|�|j�||fSr-��super�get_request�
settimeout�request_timeout�rE�requestZclient_addr��	__class__rrrQ�szSilentWSGIServer.get_requestcCsdSr-r�rErU�client_addressrrr�handle_error�szSilentWSGIServer.handle_error)rJrKrLrSrQrZ�
__classcell__rrrVrrM�srMc@seZdZdd�ZdS)�SSLWSGIServerMixincCsVt��}|�tt�|j|dd�}z|�|||�|��Wntk
rPYnXdS)NT)Zserver_side)	r"r#r$r%r&Zwrap_socketZRequestHandlerClassr0�OSError)rErUrY�contextZssockrrr�finish_request�sz!SSLWSGIServerMixin.finish_requestN)rJrKrLr_rrrrr\�sr\c@seZdZdS)�
SSLWSGIServerN�rJrKrLrrrrr`�sr`F)�use_sslc#s�dd���fdd�}|r|n|}||t����|��j�_tj�fdd�d�}|��z
�VW5������|�	�XdS)Ncss<t|d�}|r8|d�t|d��}|V|t|�8}qdS)NZCONTENT_LENGTHz
wsgi.inputi)�int�read�min�len)�environ�size�datarrrr2�s
z_run_test_server.<locals>.loopcs2d}dg}|||�|ddkr(�|�SdgSdS)Nz200 OK)zContent-typez
text/plainZ	PATH_INFOz/loopsTest messager)rgZstart_response�statusZheadersr?rr�app�s
z_run_test_server.<locals>.appcs�jdd�S)Ng�������?)Z
poll_interval)Z
serve_foreverr)�httpdrr�<lambda>��z"_run_test_server.<locals>.<lambda>)�target)
rAZset_appZserver_address�address�	threading�Thread�start�shutdownZserver_closer)rprb�
server_cls�server_ssl_clsrkZserver_classZ
server_threadr)rlr2r�_run_test_server�s


�
rw�AF_UNIXc@seZdZdd�ZdS)�UnixHTTPServercCstj�|�d|_d|_dS)N�	127.0.0.1�P)�socketserver�UnixStreamServer�server_bindZserver_nameZserver_portrDrrrr~�szUnixHTTPServer.server_bindN)rJrKrLr~rrrrry�srycs(eZdZdZdd�Z�fdd�Z�ZS)�UnixWSGIServerrNcCst�|�|��dSr-)ryr~Z
setup_environrDrrrr~�s
zUnixWSGIServer.server_bindcs"t���\}}|�|j�|dfS)N)rz�rOrTrVrrrQ�szUnixWSGIServer.get_request)rJrKrLrSr~rQr[rrrVrr�src@seZdZdd�ZdS)�SilentUnixWSGIServercCsdSr-rrXrrrrZ�sz!SilentUnixWSGIServer.handle_errorN)rJrKrLrZrrrrr��sr�c@seZdZdS)�UnixSSLWSGIServerNrarrrrr��sr�c
Cs&t���}|jW5QR�SQRXdSr-)�tempfile�NamedTemporaryFile�name)�filerrr�gen_unix_socket_path�s
r�ccs<t�}z
|VW5zt�|�Wntk
r4YnXXdSr-)r�r�unlinkr])rrrr�unix_socket_paths
r�c	cs,t��}t||ttd�EdHW5QRXdS�N)rprbrurv)r�rwr�r�)rbrrrr�run_test_unix_servers
�r�rz��host�portrbccst||f|ttd�EdHdSr�)rwrMr`r�rrr�run_test_servers
�r�cCsLi}t|�D](}|�d�r&|�d�r&qtdd�||<qtd|f|j|��S)N�__)�return_valueZTestProtocol)�dir�
startswith�endswith�MockCallback�type�	__bases__)�base�dctr�rrr�make_test_protocolsr�c@s6eZdZdd�Zddd�Zdd�Zdd	�Zd
d�ZdS)
�TestSelectorcCs
i|_dSr-��keysrDrrr�__init__'szTestSelector.__init__NcCst�|d||�}||j|<|S)Nr)�	selectors�SelectorKeyr�)rE�fileobjrri�keyrrr�register*s
zTestSelector.registercCs|j�|�Sr-)r��pop)rEr�rrr�
unregister/szTestSelector.unregistercCsgSr-r)rEr;rrr�select2szTestSelector.selectcCs|jSr-r�rDrrr�get_map5szTestSelector.get_map)N)rJrKrLr�r�r�r�r�rrrrr�%s

r�cs�eZdZdZd.�fdd�	Zdd�Zdd�Z�fd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Z�fd%d&�Zdd'��fd(d)�
Zd*d+�Zd,d-�Z�ZS)/�TestLoopa�Loop 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.
    Ncsvt���|dkr"dd�}d|_nd|_|�|_t|j�d|_d|_g|_t�|_	i|_
i|_|��t
��|_dS)Ncss
dVdSr-rrrrrr3PszTestLoop.__init__.<locals>.genFTrg��&�.>)rPr��_check_on_close�_gen�next�_timeZ_clock_resolution�_timersr��	_selector�readers�writers�reset_counters�weakref�WeakValueDictionary�_transports)rEr3rVrrr�Ls

zTestLoop.__init__cCs|jSr-�r�rDrrrr7csz
TestLoop.timecCs|r|j|7_dS)zMove test time forward.Nr�)rE�advancerrr�advance_timefszTestLoop.advance_timecsBt���|jr>z|j�d�Wntk
r4Yn
Xtd��dS)NrzTime generator is not finished)rPr0r�r��send�
StopIteration�AssertionErrorrDrVrrr0ks
zTestLoop.closecGst�|||d�|j|<dSr-)r�Handler��rE�fd�callbackrHrrr�_add_readeruszTestLoop._add_readercCs0|j|d7<||jkr(|j|=dSdSdS�N�TF)�remove_reader_countr��rEr�rrr�_remove_readerxs

zTestLoop._remove_readercGsh||jkrtd|�d���|j|}|j|krDtd|j�d|����|j|krdtd|j�d|����dS)N�fd z is not registeredzunexpected callback: z != zunexpected callback args: )r�r��	_callback�_args�rEr�r�rH�handlerrr�
assert_reader�s


�
�zTestLoop.assert_readercCs||jkrtd|�d���dS)Nr�z is registered)r�r�r�rrr�assert_no_reader�s
zTestLoop.assert_no_readercGst�|||d�|j|<dSr-)rr�r�r�rrr�_add_writer�szTestLoop._add_writercCs0|j|d7<||jkr(|j|=dSdSdSr�)�remove_writer_countr�r�rrr�_remove_writer�s

zTestLoop._remove_writercGs^||jkstd�|���|j|}|j|ks>td�|j|���|j|ksZtd�|j|���dS)Nzfd {} is not registeredz{!r} != {!r})r�r�rGr�r�r�rrr�
assert_writer�s
��zTestLoop.assert_writerc
Cs~t|t�sFzt|���}Wn*tttfk
rDtd�|��d�YnXz|j|}Wntk
rhYnXt	d�||���dS)NzInvalid file object: {!r}z.File descriptor {!r} is used by transport {!r})
�
isinstancerc�fileno�AttributeError�	TypeError�
ValueErrorrGr��KeyError�RuntimeError)rEr�Z	transportrrr�_ensure_fd_no_transport�s&
����z TestLoop._ensure_fd_no_transportcGs|�|�|j||f|��S)zAdd a reader callback.)r�r�r�rrr�
add_reader�s
zTestLoop.add_readercCs|�|�|�|�S)zRemove a reader callback.)r�r�r�rrr�
remove_reader�s
zTestLoop.remove_readercGs|�|�|j||f|��S)zAdd a writer callback..)r�r�r�rrr�
add_writer�s
zTestLoop.add_writercCs|�|�|�|�S)zRemove a writer callback.)r�r�r�rrr�
remove_writer�s
zTestLoop.remove_writercCst�t�|_t�t�|_dSr-)�collections�defaultdictrcr�r�rDrrrr��szTestLoop.reset_counterscs6t���|jD]}|j�|�}|�|�qg|_dSr-)rP�	_run_oncer�r�r�r�)rE�whenr�rVrrr��s


zTestLoop._run_once)r^cs&|j�|�t�j||f|�d|i�S)Nr^)r��appendrP�call_at)rEr�r�r^rHrVrrr��szTestLoop.call_atcCsdSr-r)rEZ
event_listrrr�_process_events�szTestLoop._process_eventscCsdSr-rrDrrr�_write_to_self�szTestLoop._write_to_self)N)rJrKrL�__doc__r�r7r�r0r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r[rrrVrr�9s,
r�cKstjfddgi|��S)N�spec�__call__)rZMock)�kwargsrrrr��sr�c@seZdZdZdd�ZdS)�MockPatternz�A 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'))
    cCstt�t|�|tj��Sr-)�bool�re�search�str�S�rE�otherrrr�__eq__�szMockPattern.__eq__N)rJrKrLr�r�rrrrr��sr�c@seZdZdd�Zdd�ZdS)�MockInstanceOfcCs
||_dSr-)�_type)rEr�rrrr��szMockInstanceOf.__init__cCst||j�Sr-)r�r�r�rrrr��szMockInstanceOf.__eq__N)rJrKrLr�r�rrrrr��sr�cCs$t�|�}|dkr td|f��|S)Nzunable to get the source of %r)rZ_get_function_sourcer�)�func�sourcerrr�get_function_source�s
r�c@sHeZdZedd��Zdd�dd�Zddd	�Zd
d�Zdd
�Zdd�Z	dS)�TestCasecCs�|j}|dk	r|jdd�|��t��}|dk	r�z|��}Wntk
rRYn.Xt|tj	�r�t
|j���}|D]}|�
�qrdS)NT)�wait)Z_default_executorrtr0rZmaybe_get_event_loop_policyZget_child_watcher�NotImplementedErrorr��asyncioZThreadedChildWatcher�listZ_threads�valuesr)r2�executorZpolicyZwatcher�threads�threadrrr�
close_loop�szTestCase.close_loopT)�cleanupcCs,|dk	st�t�d�|r(|�|j|�dSr-)r�r�set_event_loopZ
addCleanupr�)rEr2rrrrrs
zTestCase.set_event_loopNcCst|�}|�|�|Sr-)r�r)rEr3r2rrr�
new_test_loops
zTestCase.new_test_loopcCs|jt_dSr-)�_get_running_looprrDrrr�unpatch_get_running_loopsz!TestCase.unpatch_get_running_loopcCs tj|_dd�t_t��|_dS)NcSsdSr-rrrrrrm"rnz TestCase.setUp.<locals>.<lambda>)rrrZthreading_setup�_thread_cleanuprDrrr�setUp s
zTestCase.setUpcCsB|��t�d�|�t��d�|��tj|j	�t�
�dS)N)NNN)rrrZassertEqual�sys�exc_infoZ
doCleanupsrZthreading_cleanupr�
reap_childrenrDrrr�tearDown%s
zTestCase.tearDown)N)
rJrKrL�staticmethodr�rrrrr
rrrrr��s

r�c	cs2tj}zt�tjd�dVW5t�|�XdS)zrContext manager to disable asyncio logger.

    For example, it can be used to ignore warnings in debug mode.
    r�N)r�level�setLevel�logging�CRITICAL)Z	old_levelrrr�disable_logger3s

rcCs*t�tj�}||_||_||_d|j_|S)z'Create a mock of a non-blocking socket.g)rZ	MagicMock�socket�protor��family�
gettimeoutr�)rr�r�sockrrr�mock_nonblocking_socketAsr)r6)Nr�r�r��
contextlibrBrrr�r�rr|rr�rqr7Zunittestr�rZhttp.serverrZwsgiref.simple_serverrrr"�ImportErrorrrrr	r
Zasyncio.logr�testrrr%r&ZSIGNED_CERTFILEZ
SIGNING_CAZPEERCERTr*r,r.r5r=r@rArMr\r`rwrr}ryrr�r�r��contextmanagerr�r�r�r��BaseSelectorr�Z
BaseEventLoopr�r�r�r�r�r�r�r�IPPROTO_TCP�SOCK_STREAM�AF_INETrrrrr�<module>s�
�

	
#

%
6

�

F1le Man4ger