Your IP : 216.73.216.213


Current Path : /opt/alt/python38/lib64/python3.8/test/test_asyncio/__pycache__/
Upload File :
Current File : //opt/alt/python38/lib64/python3.8/test/test_asyncio/__pycache__/test_windows_events.cpython-38.pyc

U

i�f*�@s
ddlZddlZddlZddlZddlZddlZddlZddlmZejdkrXe�	d��ddl
Z
ddlZddlZddlm
Z
ddlmZdd�ZGd	d
�d
ej�ZGdd�dej�ZGd
d�de�ZGdd�de�ZGdd�de�ZGdd�de�Zedk�re��dS)�N)�mockZwin32zWindows only)�windows_events)�utilscCst�d�dS�N)�asyncio�set_event_loop_policy�rr�J/opt/alt/python38/lib64/python3.8/test/test_asyncio/test_windows_events.py�tearDownModulesr
c@s$eZdZdd�Zdd�Zdd�ZdS)�
UpperProtocCs
g|_dSr)�buf��selfrrr	�__init__szUpperProto.__init__cCs
||_dSr)�trans)rrrrr	�connection_madeszUpperProto.connection_madecCs:|j�|�d|kr6|j�d�|j����|j��dS)N�
�)r�appendr�write�join�upper�close)r�datarrr	�
data_received szUpperProto.data_receivedN)�__name__�
__module__�__qualname__rrrrrrr	rsrc@s$eZdZdd�Zdd�Zdd�ZdS)�WindowsEventsTestCasecCs||_t|�dSr)�_unraisable�print)rZ
unraisablerrr	�_unraisablehook(sz%WindowsEventsTestCase._unraisablehookcCstj|_d|_|jt_dSr)�sys�unraisablehook�_prev_unraisablehookrr!r
rrr	�setUp.szWindowsEventsTestCase.setUpcCs|jt_|�|j�dSr)r$r"r#ZassertIsNonerr
rrr	�tearDown3szWindowsEventsTestCase.tearDownN)rrrr!r%r&rrrr	r'src@seZdZdd�ZdS)�ProactorLoopCtrlCc	Csrdd�}tj|d�}t��}z<z"|�|j�|��|�d�Wnt	k
rTYnXW5|�|�X|�
�dS)NcSst�d�t�tj�dS)N皙�����?)�time�sleep�signal�raise_signal�SIGINTrrrr	�SIGINT_after_delay;s
z9ProactorLoopCtrlC.test_ctrl_c.<locals>.SIGINT_after_delay��targetz%should not fall through 'run_forever')�	threading�ThreadrZget_event_loop�
close_loop�	call_soon�start�run_foreverZfail�KeyboardInterruptr)rr.�thread�looprrr	�test_ctrl_c9s
zProactorLoopCtrlC.test_ctrl_cN)rrrr:rrrr	r'7sr'c@seZdZdd�ZdS)�ProactorMultithreadingcsDd�dd����fdd�}tj|d�}|��|��|���dS)NFc�st�d�IdHdS)Nr)rr*rrrr	�coroQszAProactorMultithreading.test_run_from_nonmain_thread.<locals>.corocs$t��}|����|��d�dS)NT)rZnew_event_loop�run_until_completer�r9�r<Zfinishedrr	�funcTszAProactorMultithreading.test_run_from_nonmain_thread.<locals>.funcr/)r1r2r5r�
assertTrue)rr@r8rr?r	�test_run_from_nonmain_threadNsz3ProactorMultithreading.test_run_from_nonmain_threadN)rrrrBrrrr	r;Msr;csdeZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Z�Z
S)�
ProactorTestscs$t���t��|_|�|j�dSr)�superr%r�ProactorEventLoopr9Zset_event_loopr
��	__class__rr	r%ds

zProactorTests.setUpcCsht��\}}|j�|t���}tj|j�|d�|jd�}|��|j�	|�|�
|��d�|��dS)N�dr>r)�socketZ
socketpairr9Z_make_socket_transportr�ProtocolZ
ensure_futureZ	sock_recvrr=�assertEqual�result)r�a�br�frrr	�
test_closeiszProactorTests.test_closec	CsBdt��}t�|�}|�t��t�|�W5QRX|��dS)Nz\\.\pipe\test_double_bind-%s)�os�getpidr�
PipeServer�assertRaises�PermissionErrorr)r�ADDRESSZserver1rrr	�test_double_bindrs

zProactorTests.test_double_bindcCs |j�|���}|�|d�dS)N�done)r9r=�
_test_piperK)r�resrrr	�	test_pipeyszProactorTests.test_pipec	�szdt��}|�t��|j�tj|�IdHW5QRX|j�t	|�IdH\}|�
|tj�g}t
d�D]j}tj|jd�}tj||jd��|j��fdd�|�IdH\}}|�
|tj�|��|�|�||f�qht|�D] \}\}}	|	�d�|����q�t|�D]:\}\}}	|��IdH}
|�|
d�|����|	���q|��|�t��|j�tj|�IdHW5QRXdS)	Nz\\.\pipe\_test_pipe-%s�r>cs�Srrr�Zprotocolrr	�<lambda>�rz*ProactorTests._test_pipe.<locals>.<lambda>z	lower-{}
z	LOWER-{}
rX)rQrRrT�FileNotFoundErrorr9Zcreate_pipe_connectionrrJZstart_serving_piper�assertIsInstancerrS�range�StreamReaderZStreamReaderProtocolZ	TransportrKr�	enumerater�format�encode�readliner)rrVZserverZclients�iZ
stream_readerr�proto�r�wZresponserr]r	rY}sJ���
��zProactorTests._test_pipec
Csvt�}tj|_tjjtd|d��L}|jj�	d�}|j�
|�}|��|�t
j��|j�|�W5QRXW5QRXdS)NZConnectPipe)Zside_effectZpipe_address)�OSError�_overlappedZERROR_PIPE_BUSYZwinerrorrZpatch�objectr9�	_proactorZconnect_pipeZcreate_task�cancelrTr�CancelledErrorr=)r�excZconnectr<Ztaskrrr	�test_connect_pipe_cancel�s
�z&ProactorTests.test_connect_pipe_cancelcCst�dddd�}|�tj|�|jj�|d�}|j��}|j�	|�}|j��|}|�
|d�|�|���|�
d|ko�dkn|�t�|�|jj�|d�}|j��}|j�	|�}|j��|}|�
|d�|�
|���|�
d|ko�dkn|�|��dS)	NTFg�?g�������?g�������?�
rg333333�?)rl�CreateEvent�
addCleanup�_winapi�CloseHandler9rn�wait_for_handler)r=rK�assertFalserLrAZSetEventro)r�event�futr5rX�elapsedrrr	�test_wait_for_handle�s$
 

 z"ProactorTests.test_wait_for_handlec	Cs�t�dddd�}|�tj|�|jj�|d�}|��|j�	�}|�
tj��|j�
|�W5QRX|j�	�|}|�d|ko�dkn|�|jj�|�}|��|��dS)NTFrsrr()rlrtrurvrwr9rnrxror)rTrrpr=rA)rrzr{r5r|rrr	�test_wait_for_handle_cancel�s
 z)ProactorTests.test_wait_for_handle_cancelcCsrt��|j_|j�ddd��}|j��|j��|j��|j��|j�|�|�|j�|�	|jjj
�dS)NcSsdSrrrrrr	r^�rz;ProactorTests.test_read_self_pipe_restart.<locals>.<lambda>)rZMockr9Zcall_exception_handlerZrun_in_executor�stopr6r=r3ryZcalled)rrOrrr	�test_read_self_pipe_restart�s



	z)ProactorTests.test_read_self_pipe_restartcszt�����fdd�}tj|d�}t��d}�j�|j��jsf�j���j�	�t��|kr<qfq<��
�|��dS)Ncs(���s$�j�dd��t�d�qdS)NcSsdSrrrrrr	r^rzEProactorTests.test_loop_restart.<locals>.threadMain.<locals>.<lambda>g{�G�z�?)Zis_setr9Zcall_soon_threadsafer)r*r�rrrr	�
threadMainsz3ProactorTests.test_loop_restart.<locals>.threadMainr/rs)r1ZEventr2r)r9r4r5rrr6�setr)rr�ZthrZend_timerr�r	�test_loop_restarts

zProactorTests.test_loop_restart)rrrr%rPrWr[rYrrr}r~r�r��
__classcell__rrrFr	rCbs	&
"rCc@seZdZdd�Zdd�ZdS)�WinPolicyTestsc	sD�fdd�}t��}zt�t���t�|��W5t�|�XdS)Nc�s��t��tj�dSr)r`r�get_running_loopZSelectorEventLooprr
rr	�mains�z5WinPolicyTests.test_selector_win_policy.<locals>.main)r�get_event_loop_policyrZWindowsSelectorEventLoopPolicy�run�rr�Z
old_policyrr
r	�test_selector_win_policys�z'WinPolicyTests.test_selector_win_policyc	sD�fdd�}t��}zt�t���t�|��W5t�|�XdS)Nc�s��t��tj�dSr)r`rr�rErr
rr	r�,s�z5WinPolicyTests.test_proactor_win_policy.<locals>.main)rr�rZWindowsProactorEventLoopPolicyr�r�rr
r	�test_proactor_win_policy+s�z'WinPolicyTests.test_proactor_win_policyN)rrrr�r�rrrr	r�sr��__main__)rQr+rIr"r)r1Zunittestr�platformZSkipTestrlrvrrZtest.test_asynciorZ
test_utilsr
rJrZTestCaserr'r;rCr�rr�rrrr	�<module>s0

: