HEX
Server: LiteSpeed
System: Linux server.nevid-deploma.com 4.18.0-553.111.1.lve.el8.x86_64 #1 SMP Fri Mar 13 13:42:17 UTC 2026 x86_64
User: smilepac (1037)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/cppython/lib/python3.8/test/test_asyncio/__pycache__/test_selector_events.cpython-38.pyc
U

/D�g���@s2dZddlZddlZddlZddlmZzddlZWnek
rLdZYnXddlZddlm	Z	ddlm
Z
ddlmZddlmZddl
mZejZd	d
�ZGdd�de	�Zddd�Zdd�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�Zedk�r.e��dS)zTests for selector_events.py�N)�mock)�BaseSelectorEventLoop)�_SelectorTransport)�_SelectorSocketTransport)�_SelectorDatagramTransport)�utilscCst�d�dS�N)�asyncioZset_event_loop_policy�r
r
�E/opt/cppython/lib/python3.8/test/test_asyncio/test_selector_events.py�tearDownModulesrc@seZdZdd�Zdd�ZdS)�TestBaseSelectorEventLoopcCs&t��|_t��|_|jd7_dS�N��r�Mock�_ssock�_csockZ
_internal_fds��selfr
r
r�_make_self_pipes

z)TestBaseSelectorEventLoop._make_self_pipecCsdSrr
rr
r
r�_close_self_pipe"sz*TestBaseSelectorEventLoop._close_self_pipeN)�__name__�
__module__�__qualname__rrr
r
r
rr
sr
r
cCst��|�Sr)�	bytearray�join)�lr
r
r�list_to_buffer&srcCs"|jdkrdS|j��d|_dSr)�_sock�close)�	transportr
r
r�close_transport*s

r"cseZdZ�fdd�Zdd�Ze�edkd�dd��Ze	�
d	d�e	�
d
d�dd���Zd
d�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Z d7d8�Z!�Z"S)9�BaseSelectorEventLoopTestscs:t���t��|_g|jj_t|j�|_|�	|j�dSr)
�super�setUprr�selector�select�return_valuer
�loop�set_event_loopr��	__class__r
rr%5s



z BaseSelectorEventLoopTests.setUpcCsZt��}t��|j_d|jj_|j�|t���}|�|t	�|j�
�t|�t|�dS)NF)
rrr)�
add_reader�
_is_coroutineZ_make_socket_transportr	�Protocol�assertIsInstancerr �reprr")r�mr!r
r
r�test_make_socket_transport<s

z5BaseSelectorEventLoopTests.test_make_socket_transportNz
No ssl modulec
Cs,t��}t��|j_d|jj_t��|j_t��|j_t��|j_|j��}t	�
��H|j�|t�
�||�}|�td��|��W5QRXt	�|j�W5QRX|�|���|��|��|�|���|��|��|�|���|jj}|�d|���|�d|���|��t	�|j�dS)NFzSSL transport.*not.*initialized�sslr!)rrr)�_add_readerr.�_add_writer�_remove_reader�_remove_writer�
create_future�
test_utils�disable_logger�_make_ssl_transportr	r/ZassertRaisesRegex�RuntimeError�
is_reading�run_briefly�
assertTrue�
pause_reading�assertFalse�resume_readingr,rZassertIn�lowerr )rr2�waiterr!�
class_namer
r
r�test_make_ssl_transportIs>


��z2BaseSelectorEventLoopTests.test_make_ssl_transportzasyncio.selector_events.sslzasyncio.sslproto.sslc	Csdt��}t��|j_t��|j_t��|j_t��|j_|�t��|j�	||||�W5QRXdSr)
rrr)r-�
add_writer�
remove_reader�
remove_writer�assertRaisesr=r<)rr2r
r
r�)test_make_ssl_transport_without_ssl_erroroszDBaseSelectorEventLoopTests.test_make_ssl_transport_without_ssl_errorc	CshGdd�dt�}||j�|_|�|j�|jj}d|j_|jj}d|j_t�	�}|j_
|jj��t�	�|j_}|�
|j���|j��|�|j���|�|jj�|�|jj�|�|jj�|j��|j��|j��|�d�|j��|j��|j��}|�t|jj�|�t|jj|�d}dd�}|�t|jj||�|�t|jj||�dS)Nc@seZdZdd�ZdS)z8BaseSelectorEventLoopTests.test_close.<locals>.EventLoopcSs&t��|_t��|_|jd7_dSrrrr
r
rr|s

zHBaseSelectorEventLoopTests.test_close.<locals>.EventLoop._make_self_pipeN)rrrrr
r
r
r�	EventLoop{srM�rrcSsdSrr
r
r
r
r�callback�sz7BaseSelectorEventLoopTests.test_close.<locals>.callback)rr&r)r*r�filenor(rrrr7�	_selectorr rBZ	is_closedr@�assertIsNone�assert_called_withr9rKr=Zrun_forever�run_until_completer-rH)	rrMZssockZcsockrIr&�f�fdrOr
r
r�
test_closezs:







z%BaseSelectorEventLoopTests.test_closecCs<t��|j_|jj��d|j_|j��|�|jj�dSr)rrr)rIrQr rRrr
r
r�test_close_no_selector�s

z1BaseSelectorEventLoopTests.test_close_no_selectorcCs t|jjj_|�|j���dSr)�BlockingIOErrorr)r�recv�side_effectrR�_read_from_selfrr
r
r�test_read_from_self_tryagain�sz7BaseSelectorEventLoopTests.test_read_from_self_tryagaincCs t|jjj_|�t|jj�dSr)�OSErrorr)rrZr[rKr\rr
r
r�test_read_from_self_exception�sz8BaseSelectorEventLoopTests.test_read_from_self_exceptionc	Cs4t|jjj_t���|�|j���W5QRXdSr)	rYr)r�sendr[r:r;rR�_write_to_selfrr
r
r�test_write_to_self_tryagain�s
z6BaseSelectorEventLoopTests.test_write_to_self_tryagaincCs"t�|jjj_|�t|jj�dSr)r=r)rr`r[rKrarr
r
r�test_write_to_self_exception�sz7BaseSelectorEventLoopTests.test_write_to_self_exceptioncCs�t|jjj_dd�}|j�d|�|�|jjjj�|jjjj	d\}}\}}|�
d|�|�
tj|�|�
||j
�|�|�dS)NcSsdS�NTr
r
r
r
r�<lambda>��z<BaseSelectorEventLoopTests.test_add_reader.<locals>.<lambda>rr)�KeyErrorr)rQ�get_keyr[r-r@�register�called�	call_args�assertEqual�	selectors�
EVENT_READ�	_callbackrR�r�cbrV�mask�r�wr
r
r�test_add_reader�sz*BaseSelectorEventLoopTests.test_add_readercCs�t��}t��}t�ddtj||f�|jjj_dd�}|j�	d|�|�
|jj�|�
|jjjj�|�
|jjjj�|jjjjd\}}\}}|�d|�|�tjtjB|�|�||j�|�||�dS)NrcSsdSrdr
r
r
r
rre�rfzEBaseSelectorEventLoopTests.test_add_reader_existing.<locals>.<lambda>r)rrrm�SelectorKey�EVENT_WRITEr)rQrhr(r-r@�cancelrjrBri�modifyrkrlrnro�r�reader�writerrqrVrrrsrtr
r
r�test_add_reader_existing�s$�z3BaseSelectorEventLoopTests.test_add_reader_existingcCs�t��}t�ddtjd|f�|jjj_dd�}|j�	d|�|�
|jjjj�|�
|jjjj�|jjjjd\}}\}}|�d|�|�tjtjB|�|�||j�|�||�dS)NrcSsdSrdr
r
r
r
rre�rfzLBaseSelectorEventLoopTests.test_add_reader_existing_writer.<locals>.<lambda>r)rrrmrvrwr)rQrhr(r-rBrirjr@ryrkrlrnro)rr|rqrVrrrsrtr
r
r�test_add_reader_existing_writer�s �z:BaseSelectorEventLoopTests.test_add_reader_existing_writercCsBt�ddtjd�|jjj_|�|j�d��|�	|jjj
j�dS�Nr)NN)rmrvrnr)rQrhr(rBrIr@�
unregisterrjrr
r
r�test_remove_reader�s�z-BaseSelectorEventLoopTests.test_remove_readercCs�t��}t��}t�ddtjtjB||f�|jjj_	|�
|j�d��|�|jjj
j�|�dtjd|ff|jjjjd�dS�Nrr)rrrmrvrnrwr)rQrhr(r@rIrBr�rjrlryrk�rr{r|r
r
r�test_remove_reader_read_write�s 
�
��z8BaseSelectorEventLoopTests.test_remove_reader_read_writecCs"t|jjj_|�|j�d��dSr)rgr)rQrhr[rBrIrr
r
r�test_remove_reader_unknowns
�z5BaseSelectorEventLoopTests.test_remove_reader_unknowncCs�t|jjj_dd�}|j�d|�|�|jjjj�|jjjj	d\}}\}}|�
d|�|�
tj|�|�
|�|�
||j�dS)NcSsdSrdr
r
r
r
rrerfz<BaseSelectorEventLoopTests.test_add_writer.<locals>.<lambda>rr)rgr)rQrhr[rHr@rirjrkrlrmrwrRrorpr
r
r�test_add_writers
z*BaseSelectorEventLoopTests.test_add_writercCs�t��}t��}t�ddtj||f�|jjj_dd�}|j�	d|�|�
|jj�|�
|jjjj�|�
|jjjj�|jjjjd\}}\}}|�d|�|�tjtjB|�|�||�|�||j�dS)NrcSsdSrdr
r
r
r
rrerfzEBaseSelectorEventLoopTests.test_add_writer_existing.<locals>.<lambda>r)rrrmrvrnr)rQrhr(rHr@rxrjrBriryrkrlrwrorzr
r
r�test_add_writer_existings$�z3BaseSelectorEventLoopTests.test_add_writer_existingcCsBt�ddtjd�|jjj_|�|j�d��|�	|jjj
j�dSr)rmrvrwr)rQrhr(rBrJr@r�rjrr
r
r�test_remove_writer"s�z-BaseSelectorEventLoopTests.test_remove_writercCs�t��}t��}t�ddtjtjB||f�|jjj_	|�
|j�d��|�|jjj
j�|�dtj|dff|jjjjd�dSr�)rrrmrvrnrwr)rQrhr(r@rJrBr�rjrlryrkr�r
r
r�test_remove_writer_read_write)s 
�
��z8BaseSelectorEventLoopTests.test_remove_writer_read_writecCs"t|jjj_|�|j�d��dSr)rgr)rQrhr[rBrJrr
r
r�test_remove_writer_unknown7s
�z5BaseSelectorEventLoopTests.test_remove_writer_unknownc	Csbt��}d|_t��|j_|j�t�ddtj|df�tjfg�|�	|jjj
�|jj�|�dS�NFr)rr�
_cancelledr)�
_add_callback�_process_eventsrmrvrnr@rjrS�rr{r
r
r�test_process_events_read<s���z3BaseSelectorEventLoopTests.test_process_events_readc	CsRt��}d|_t��|j_|j�t�ddtj|df�tjfg�|jj�	d�dS�NTr)
rr�	cancelledr)r7r�rmrvrnrSr�r
r
r�"test_process_events_read_cancelledHs���z=BaseSelectorEventLoopTests.test_process_events_read_cancelledc	CsRt��}d|_t��|j_|j�t�ddtjd|f�tjfg�|jj�	|�dSr�)
rrr�r)r�r�rmrvrwrS�rr|r
r
r�test_process_events_writeSs���z4BaseSelectorEventLoopTests.test_process_events_writec	CsRt��}d|_t��|j_|j�t�ddtjd|f�tjfg�|jj�	d�dSr�)
rrr�r)r8r�rmrvrwrSr�r
r
r�#test_process_events_write_cancelled^s���z>BaseSelectorEventLoopTests.test_process_events_write_cancelledc	Cs|t��}t��t��f|j_d}tjj}||jd��}|jjt��||d�W5QRX|j�t	�
d��|�|jj|�dS)N�dZ_accept_connection2)�backlogr)
rr�acceptr(�patch�objectr)Z_accept_connectionrTr	�sleeprl�
call_count)r�sockr�Zmock_objZaccept2_mockr
r
r�test_accept_connection_multipleis�z:BaseSelectorEventLoopTests.test_accept_connection_multiple)#rrrr%r3�unittestZskipIfr4rGrr�rLrWrXr]r_rbrcrur}r~r�r�r�r�r�r�r�r�r�r�r�r�r��
__classcell__r
r
r+rr#3s:

%

	,r#cs�eZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	e
�d�dd��Ze
�d�dd��Z
dd�Zdd�Z�ZS)�SelectorTransportTestscs>t���|��|_t�tj�|_t	�
tj�|_d|jj
_dS�NrN)r$r%�
new_test_loopr)r:�make_test_protocolr	r/�protocolrr�socketr�rPr(rr+r
rr%}s


zSelectorTransportTests.setUpcCs$t|j|j|jd�}|�t|�|Sr)rr)r�r��
addCleanupr"�rr!r
r
r�create_transport�s
�z'SelectorTransportTests.create_transportcCs:|��}|�|j|j�|�|j|j�|�|jd�dSr�)r�ZassertIs�_loopr)rr�Z_sock_fd�r�trr
r
r�	test_ctor�sz SelectorTransportTests.test_ctorcCs*|��}t��|_|��|j�d�dSr)r�rr�_force_close�abortrSr�r
r
r�
test_abort�s
z!SelectorTransportTests.test_abortcCsz|��}|��|�|���|�d|jjd�|j�d�|�|j	d�|��|�|j	d�|�d|jjd�dS)NrrN)
r�r r@�
is_closingrlr)�remove_reader_countr��connection_lost�
_conn_lostr�r
r
rrW�sz!SelectorTransportTests.test_closecCsJ|��}|j�d�|��|�|jj�t�|j�|�|j	j
j�dS�N�data)r��_buffer�extendr rBr)�readersr:r?r�r�rjr�r
r
r�test_close_write_buffer�sz.SelectorTransportTests.test_close_write_buffercCs�|��}|j�d�|j�dtj�|j�dtj�|�d�|�	|�
��|�|jt��|�
|jj�|�
|jj�|�d�|�
|jj�|�d|jjd�dS)N�1rNr)r�r�r�r)r5r�sentinelr6r�r@r�rlrrBr��writersr�r�r
r
r�test_force_close�s

z'SelectorTransportTests.test_force_closezasyncio.log.logger.errorcCs:t�}|��}t��|_|�|�|��|j�|�dSr)r^r�rrr��_fatal_error�assert_not_calledrS)r�m_exc�excr�r
r
r�test_fatal_error�s

z'SelectorTransportTests.test_fatal_errorcCs\Gdd�dt�}|�}|��}t��|_|�|�|jt�d�|t	t	fd�|j�|�dS)Nc@seZdZdS)zISelectorTransportTests.test_fatal_error_custom_exception.<locals>.MyErrorN�rrrr
r
r
r�MyError�sr��1Fatal error on transport
protocol:.*
transport:.*��exc_info)
�	Exceptionr�rrr�r�rSr:�MockPattern�MOCK_ANY)rr�r�r�r�r
r
r�!test_fatal_error_custom_exception�s

��z8SelectorTransportTests.test_fatal_error_custom_exceptioncCsrt�}|��}|�|j�|�|j�|�|�|jj�|�|j	j
��|�|j�|�|j�|�|j�dSr)
r^r�ZassertIsNotNoneZ	_protocolr�Z_call_connection_lostr�r�rSr�r rRr)rr�r�r
r
r�test_connection_lost�s
z+SelectorTransportTests.test_connection_lostcCsv|��}|j�d�|�dtj�|�|jj�|�	d�|�|�
��|�|jj�|�dtj�|�|jj�dS)Nr�rN)r�r�r�r5rr�r@r)r�r�r�rBr�r
r
r�test__add_reader�s
z'SelectorTransportTests.test__add_reader)rrrr%r�r�r�rWr�r�rr�r�r�r�r�r�r
r
r+rr�{s
	


r�cs�eZdZ�fdd�ZdQdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Ze
�d�dd��Ze
�d�dd��Ze
�d�dd��Ze
�d�dd��Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Ze
�d3�d4d5��Zd6d7�Zd8d9�Zd:d;�Z d<d=�Z!d>d?�Z"d@dA�Z#dBdC�Z$dDdE�Z%dFdG�Z&dHdI�Z'dJdK�Z(dLdM�Z)e
�dN�dOdP��Z*�Z+S)R�SelectorSocketTransportTestscsDt���|��|_t�tj�|_t	�
tj�|_d|_
|jj_dSr�)r$r%r�r)r:r�r	r/r�rrr�r��sock_fdrPr(rr+r
rr%�s


z"SelectorSocketTransportTests.setUpNcCs&t|j|j|j|d�}|�t|�|S�N�rE�rr)r�r�r�r"�rrEr!r
r
r�socket_transports
�z-SelectorSocketTransportTests.socket_transportcCsP|j��}|j|d�}|j�|�|j�d|j�t�|j�|jj	�
|�dS�Nr�rN�r)r9r�rT�
assert_reader�_read_readyr:r?r�Zconnection_maderS�rrEr�r
r
rr�s
z&SelectorSocketTransportTests.test_ctorcCs4|j��}|j|d�|j�|�|�|���dSr�)r)r9r�rTrR�result)rrEr
r
r�test_ctor_with_waiters
z2SelectorSocketTransportTests.test_ctor_with_waitercCs�|��}t�|j�|�|j�|�|���|j�d|j	�|�
�|�
�|�|j�|�|���|j�d�|��|��|�|j�|�|���|j�d|j	�|�
�|�|���|j�d�dSr�)r�r:r?r)rBZ_pausedr@r>r�r�rAZassert_no_readerrCr r�r
r
r�test_pause_resume_readings$z6SelectorSocketTransportTests.test_pause_resume_readingcCsd|��}t��|_t��|_t��|j_t�|jj	_
d|jj_
|��|jj	��|�|jj�dS�Nrf)r�rrr r�r)�call_exception_handler�LookupErrorr��eof_receivedr[r�rZr(r�rSr@rjr�r
r
r�test_read_eof_received_error-s


z9SelectorSocketTransportTests.test_read_eof_received_errorcCs^|��}t��|_t��|j_t�|jj_	d|j
j_|�
�|�|jj�|�|jjj�dSr�)r�rrr�r)r�r�r��
data_receivedr[r�rZr(r�r@rjr�r
r
r�test_data_received_error<s

z5SelectorSocketTransportTests.test_data_received_errorcCs,|��}d|jj_|��|jj�d�dSr�)r�r�rZr(r�r�r�rSr�r
r
r�test_read_readyIs
z,SelectorSocketTransportTests.test_read_readycCs>|��}t��|_d|jj_|��|jj	�
�|j�
�dSr�)r�rrr r�rZr(r�r�r�rSr�r
r
r�test_read_ready_eofQs

z0SelectorSocketTransportTests.test_read_ready_eofcCsL|��}t��|_d|jj_d|jj_|�	�|jj�
�|�|jj�dS)NrfT)
r�rrr r�rZr(r�r�r�rSrBrjr�r
r
r�test_read_ready_eof_keep_open[s


z:SelectorSocketTransportTests.test_read_ready_eof_keep_open�logging.exceptioncCs6t|jj_|��}t��|_|��|�	|jj
�dSr)rYr�rZr[r�rrr�r�rBrj�rr�r!r
r
r�test_read_ready_tryagainfs


z5SelectorSocketTransportTests.test_read_ready_tryagaincCs6t|jj_|��}t��|_|��|�	|jj
�dSr)�InterruptedErrorr�rZr[r�rrr�r�rBrjr�r
r
r�$test_read_ready_tryagain_interruptedps


zASelectorSocketTransportTests.test_read_ready_tryagain_interruptedc	CsNt�}|jj_|��}t��|_t�	��|�
�W5QRX|j�|�dSr)�ConnectionResetErrorr�rZr[r�rrr�r:r;r�rS�rr��errr!r
r
r�test_read_ready_conn_resetzs

z7SelectorSocketTransportTests.test_read_ready_conn_resetcCs<t�}|jj_|��}t��|_|��|j�	|d�dS�Nz$Fatal read error on socket transport)
r^r�rZr[r�rrr�r�rSr�r
r
r�test_read_ready_err�s
�z0SelectorSocketTransportTests.test_read_ready_errcCs6d}t|�|jj_|��}|�|�|jj�|�dSr�)�lenr�r`r(r��writerS�r�datar!r
r
r�
test_write�s

z'SelectorSocketTransportTests.test_writecCsJtd�}t|�|jj_|��}|�|�|jj�|�|�|td��dSr�)	rr�r�r`r(r�r�rSrlr�r
r
r�test_write_bytearray�s
z1SelectorSocketTransportTests.test_write_bytearraycCs:td�}t|�|jj_|��}|�|�|jj�|�dSr�)�
memoryviewr�r�r`r(r�r�rSr�r
r
r�test_write_memoryview�s

z2SelectorSocketTransportTests.test_write_memoryviewcCsF|��}|j�d�|�d�|�|jjj�|�t	dg�|j�dS)Nr�rf�
r�r�r�r�rBr�r`rjrlrr�r
r
r�test_write_no_data�s

z/SelectorSocketTransportTests.test_write_no_datacCsH|��}|j�d�|�d�|�|jjj�|�t	ddg�|j�dS)N�data1�data2r�r�r
r
r�test_write_buffer�s
�z.SelectorSocketTransportTests.test_write_buffercCsHd}d|jj_|��}|�|�|j�d|j�|�t	dg�|j
�dS�Nr��rNsta)r�r`r(r�r�r)�
assert_writer�_write_readyrlrr�r�r
r
r�test_write_partial�s

z/SelectorSocketTransportTests.test_write_partialcCs\td�}d|jj_|��}|�|�|j�d|j�|�	t
dg�|j�|�	|td��dSr)rr�r`r(r�r�r)rrrlrr�r�r
r
r�test_write_partial_bytearray�s

z9SelectorSocketTransportTests.test_write_partial_bytearraycCsLtd�}d|jj_|��}|�|�|j�d|j�|�	t
dg�|j�dSr)r�r�r`r(r�r�r)rrrlrr�r�r
r
r�test_write_partial_memoryview�s

z:SelectorSocketTransportTests.test_write_partial_memoryviewcCsRd}d|jj_d|jj_|��}|�|�|j�d|j�|�	t
dg�|j�dS�Nr�rrN)r�r`r(rPr�r�r)rrrlrr�r�r
r
r�test_write_partial_none�s


z4SelectorSocketTransportTests.test_write_partial_nonecCsHt|jj_d}|��}|�|�|j�d|j�|�	t
dg�|j�dS�Nr�rN)rYr�r`r[r�r�r)rrrlrr�r�r
r
r�test_write_tryagain�s

z0SelectorSocketTransportTests.test_write_tryagain�asyncio.selector_events.loggercCs�t�}|jj_d}|��}t��|_|�|�|j�	|d�d|_
|j��|�|�|�|jjj
�|�|j
d�|�|�|�|�|�|�|�|�|j�	d�dS)Nr��%Fatal write error on socket transportrr�socket.send() raised exception.)r^r�r`r[r�rrr�r�rSr�Z
reset_mockrBrjrl�warning)r�m_logr�r�r!r
r
r�test_write_exception�s&

�





z1SelectorSocketTransportTests.test_write_exceptioncCs|��}|�t|jd�dS)N�str)r�rK�	TypeErrorr�r�r
r
r�test_write_strsz+SelectorSocketTransportTests.test_write_strcCs:|��}|��|�|jd�|�d�|�|jd�dS)Nrr�r)r�r rlr�r�r�r
r
r�test_write_closings

z/SelectorSocketTransportTests.test_write_closingcCs`d}t|�|jj_|��}|j�|�|j�d|j	�|�	�|�
|jjj�|�|jj
�dSr
)r�r�r`r(r�r�r�r)r6rr@rjrBr�r�r
r
r�test_write_readysz-SelectorSocketTransportTests.test_write_readycCs�d}t|�|jj_|��}d|_|j�|�|j�	d|j
�|�
�|�|jjj�|�
|jj�|jj��|jj�d�dS)Nr�TrN)r�r�r`r(r��_closingr�r�r)r6rr@rjrBr�r rSr�r�r�r
r
r�test_write_ready_closingsz5SelectorSocketTransportTests.test_write_ready_closingcCs|��}|�t|j�dSr)r�rK�AssertionErrorrr�r
r
r�test_write_ready_no_data'sz5SelectorSocketTransportTests.test_write_ready_no_datacCsbd}d|jj_|��}|j�|�|j�d|j�|��|j�	d|j�|�
tdg�|j�dSr�r�r`r(r�r�r�r)r6rrrlrr�r
r
r�test_write_ready_partial,s
z5SelectorSocketTransportTests.test_write_ready_partialcCsbd}d|jj_|��}|j�|�|j�d|j�|��|j�	d|j�|�
tdg�|j�dSrrr�r
r
r�test_write_ready_partial_none7s
z:SelectorSocketTransportTests.test_write_ready_partial_nonecCs`t|jj_|��}tddg�|_|j�d|j	�|�	�|j�
d|j	�|�tdg�|j�dS)Nr�r�rNs
data1data2)rYr�r`r[r�rr�r)r6rrrlr�r
r
r�test_write_ready_tryagainBs
z6SelectorSocketTransportTests.test_write_ready_tryagaincCsHt�}|jj_|��}t��|_|j�	d�|�
�|j�|d�dS)Nr�r
)r^r�r`r[r�rrr�r�r�rrS�rr�r!r
r
r�test_write_ready_exceptionMs
�z7SelectorSocketTransportTests.test_write_ready_exceptioncCsT|��}|�|���|��|jj�tj�|��|�	|jjj
d�|��dSr)r�r@Z
can_write_eof�	write_eofr��shutdownrSr��SHUT_WRrlr�r r�r
r
r�test_write_eofXsz+SelectorSocketTransportTests.test_write_eofcCs�|��}t|jj_|�d�|��|�|jt	dg��|�
|j�|�|jj
j�dd�|jj_|��|�
|jjj�|jj
�tj�|��dS)Nr�cSsdS)N�r
)�_r
r
rreirfzDSelectorSocketTransportTests.test_write_eof_buffer.<locals>.<lambda>)r�rYr�r`r[r�r!rlr�rr@�_eofrBr"rjrrSr�r#r r�r
r
r�test_write_eof_bufferas

z2SelectorSocketTransportTests.test_write_eof_buffercCs.|��}|��|j�t�d��|��dS�Nr)r�r r)rTr	r�r!r�r
r
r�test_write_eof_after_closeosz7SelectorSocketTransportTests.test_write_eof_after_closezasyncio.base_events.loggercCs0t��}|j_|��}|��|�|j�dSr)rrr)r8r�r rSr�)rrrJr!r
r
r�"test_transport_close_remove_writerusz?SelectorSocketTransportTests.test_transport_close_remove_writer)N),rrrr%r�r�r�r�r�r�r�r�r�rr�r�r�r�r�r�r�r�r�rrrrr	rrrrrrrrrrr r$r(r*r+r�r
r
r+rr��sX
	


	
	
	
	



	r�cs�eZdZ�fdd�Zd!dd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
e�d�dd��Ze�d�dd��Ze�d�dd��Ze�d�dd ��Z�ZS)"�,SelectorSocketTransportBufferedProtocolTestscs`t�������_t�tj��_t	d��_
�fdd��jj_t
�tj��_d�_�jj_dS)Nrcs�jSr��buf�Zhintrr
rre�rfzDSelectorSocketTransportBufferedProtocolTests.setUp.<locals>.<lambda>rN)r$r%r�r)r:r�r	�BufferedProtocolr�rr.�
get_bufferr[rrr�r�r�rPr(rr+rrr%�s


z2SelectorSocketTransportBufferedProtocolTests.setUpNcCs&t|j|j|j|d�}|�t|�|Sr�r�r�r
r
rr��s
�z=SelectorSocketTransportBufferedProtocolTests.socket_transportcCsP|j��}|j|d�}|j�|�|j�d|j�t�|j�|jj	�
|�dSr�r�r�r
r
rr��s
z6SelectorSocketTransportBufferedProtocolTests.test_ctorcCsd|��}t��|_t��|j_t�|jj_	|�
�|�|jj�|�|jjj�|�
|jjj�dSr)r�rrr�r)r�r�r�r1r[r�r@rjrB�buffer_updatedr�r
r
r�test_get_buffer_error�s
zBSelectorSocketTransportBufferedProtocolTests.test_get_buffer_errorcCsf|��}t��|_t��|j_dd�|jj_|�	�|�
|jj�|�
|jjj�|�|jj
j�dS)NcSstd�Sr))rr/r
r
rre�rfzXSelectorSocketTransportBufferedProtocolTests.test_get_buffer_zerosized.<locals>.<lambda>)r�rrr�r)r�r�r1r[r�r@rjrBr2r�r
r
r�test_get_buffer_zerosized�s
zFSelectorSocketTransportBufferedProtocolTests.test_get_buffer_zerosizedcs�t�tj�|_|��}d|jj_|�	�|jj
�d�t�tj�}t
d���fdd�|j_|�|�d|jj_|�	�|j�d�|j�d�dS)Nr�r%cs�Srr
r/r-r
rre�rfzUSelectorSocketTransportBufferedProtocolTests.test_proto_type_switch.<locals>.<lambda>�
���)r:r�r	r/r�r�r�rZr(r�r�rSr0rr1r[Zset_protocol�	recv_intor2)rr!Z	buf_protor
r-r�test_proto_type_switch�s


zCSelectorSocketTransportBufferedProtocolTests.test_proto_type_switchcCsn|��}t��|_t��|j_t�|jj_	d|j
j_|�
�|�|jj�|�|jjj�|�|jjj�dS)Nr5)r�rrr�r)r�r�r�r2r[r�r7r(r�r@rjr1r�r
r
r�test_buffer_updated_error�s

zFSelectorSocketTransportBufferedProtocolTests.test_buffer_updated_errorcCsd|��}t��|_t��|_t��|j_t�|jj	_
d|jj_
|��|jj	��|�|jj�dSr))r�rrr r�r)r�r�r�r�r[r�r7r(r�rSr@rjr�r
r
rr��s


zISelectorSocketTransportBufferedProtocolTests.test_read_eof_received_errorcCs:|��}d|jj_|��|jj�d�|jj�d�dS)Nr5r6)	r�r�r7r(r�r�r1rSr2r�r
r
rr��s

z<SelectorSocketTransportBufferedProtocolTests.test_read_readycCs>|��}t��|_d|jj_|��|jj	�
�|j�
�dSr))r�rrr r�r7r(r�r�r�rSr�r
r
rr��s

z@SelectorSocketTransportBufferedProtocolTests.test_read_ready_eofcCsL|��}t��|_d|jj_d|jj_|�	�|jj�
�|�|jj�dS)NrT)
r�rrr r�r7r(r�r�r�rSrBrjr�r
r
rr��s


zJSelectorSocketTransportBufferedProtocolTests.test_read_ready_eof_keep_openr�cCs6t|jj_|��}t��|_|��|�	|jj
�dSr)rYr�r7r[r�rrr�r�rBrjr�r
r
rr�s


zESelectorSocketTransportBufferedProtocolTests.test_read_ready_tryagaincCs6t|jj_|��}t��|_|��|�	|jj
�dSr)r�r�r7r[r�rrr�r�rBrjr�r
r
rr�s


zQSelectorSocketTransportBufferedProtocolTests.test_read_ready_tryagain_interruptedc	CsNt�}|jj_|��}t��|_t�	��|�
�W5QRX|j�|�dSr)r�r�r7r[r�rrr�r:r;r�rSr�r
r
rr�s

zGSelectorSocketTransportBufferedProtocolTests.test_read_ready_conn_resetcCs<t�}|jj_|��}t��|_|��|j�	|d�dSr�)
r^r�r7r[r�rrr�r�rSr�r
r
rr�$s
�z@SelectorSocketTransportBufferedProtocolTests.test_read_ready_err)N)rrrr%r�r�r3r4r8r9r�r�r�r�rr�r�r�r�r�r�r
r
r+rr,~s&
	

	

	
	
	r,cseZdZ�fdd�Zd>dd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Ze�d�dd ��Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Ze�d9�d:d;��Z e�d9�d<d=��Z!�Z"S)?�SelectorDatagramTransportTestscs@t���|��|_t�tj�|_t	j
tjd�|_d|jj
_dS)N)Zspec_setrN)r$r%r�r)r:r�r	ZDatagramProtocolr�rrr�r�rPr(rr+r
rr%3s


z$SelectorDatagramTransportTests.setUpNcCs8|rdnt|jj_t|j|j|j|d�}|�t|�|S)N��address)	r^r��getpeernamer[rr)r�r�r")rr<r!r
r
r�datagram_transport:s
�z1SelectorDatagramTransportTests.datagram_transportcCs.|��}d|jj_|��|jj�dd�dS)N)r���0.0.0.0i�r�r?)r>r��recvfromr(r�r�Zdatagram_receivedrSr�r
r
rr�Bs
�z.SelectorDatagramTransportTests.test_read_readycCs6|��}t|jj_t��|_|��|�	|jj
�dSr)r>rYr�rAr[rrr�r�rBrjr�r
r
rr�Ks


z7SelectorDatagramTransportTests.test_read_ready_tryagaincCs<|��}t�}|jj_t��|_|��|j�	|d�dS)Nz&Fatal read error on datagram transport)
r>r=r�rAr[rrr�r�rS�rr!r�r
r
rr�Ts
�z2SelectorDatagramTransportTests.test_read_ready_errcCsJ|��}t�}|jj_t��|_|��|�	|jj
�|jj�
|�dSr)r>r^r�rAr[rrr�r�rBrjr��error_receivedrSrBr
r
r�test_read_ready_oserr_s
z4SelectorDatagramTransportTests.test_read_ready_oserrcCsFd}|��}|�|d�|�|jjj�|�|jjjd|df�dS�Nr�r?r)r>�sendtor@r�rjrlrkr�r
r
r�test_sendtois�z*SelectorDatagramTransportTests.test_sendtocCsJtd�}|��}|�|d�|�|jjj�|�|jjjd|df�dSrE)rr>rFr@r�rjrlrkr�r
r
r�test_sendto_bytearrayqs�z4SelectorDatagramTransportTests.test_sendto_bytearraycCsJtd�}|��}|�|d�|�|jjj�|�|jjjd|df�dSrE)r�r>rFr@r�rjrlrkr�r
r
r�test_sendto_memoryviewys�z5SelectorDatagramTransportTests.test_sendto_memoryviewcCsH|��}|j�d�|�dd�|�|jjj�|�dgt|j��dS)N�r��r@i90rfr
�	r>r��appendrFrBr�rjrl�listr�r
r
r�test_sendto_no_data�s�z2SelectorDatagramTransportTests.test_sendto_no_datacCsJ|��}|j�d�|�dd�|�|jjj�|�ddgt|j��dS)N�r�rKr�rK�r�rKrLr�r
r
r�test_sendto_buffer�s��z1SelectorDatagramTransportTests.test_sendto_buffercCshtd�}|��}|j�d�|�|d�|�|jjj�|�ddgt	|j��|�
|jddt�dS�Nr�rPrKrQrr)rr>r�rMrFrBr�rjrlrNr0�bytes�rZdata2r!r
r
r�test_sendto_buffer_bytearray�s��z;SelectorDatagramTransportTests.test_sendto_buffer_bytearraycCshtd�}|��}|j�d�|�|d�|�|jjj�|�ddgt	|j��|�
|jddt�dSrS)r�r>r�rMrFrBr�rjrlrNr0rTrUr
r
r�test_sendto_buffer_memoryview�s��z<SelectorDatagramTransportTests.test_sendto_buffer_memoryviewcCsJd}t|jj_|��}|�|d�|j�d|j�|�dgt	|j
��dS)Nr�rKrNrJ)rYr�rFr[r>r)r�
_sendto_readyrlrNr�r�r
r
r�test_sendto_tryagain�s
�z3SelectorDatagramTransportTests.test_sendto_tryagainrcCs�d}t�}|jj_|��}t��|_|�|d�|�|jj	�|j�
|d�d|_d|_|�|�|�|�|�|�|�|�|�|�|j
�
d�dS)Nr�r
�'Fatal write error on datagram transportr)Z123r)r=r�rFr[r>rrr�r@rjrSr��_addressr)rrr�r�r!r
r
r�test_sendto_exception�s$
�




z4SelectorDatagramTransportTests.test_sendto_exceptioncCsLd}t|jj_|��}t��|_|�|d�|�|j	d�|�
|jj�dS)Nr�r
r)�ConnectionRefusedErrorr�rFr[r>rrr�rlr�rBrjr�r
r
r�test_sendto_error_received�s

z9SelectorDatagramTransportTests.test_sendto_error_receivedcCsPd}t|jj_|jdd�}t��|_|�|�|�	|jj
�|�|jj
j
�dS)Nr��r@rr;)r]r�r`r[r>rrr�rFrBrjr@r�rCr�r
r
r�$test_sendto_error_received_connected�s


zCSelectorDatagramTransportTests.test_sendto_error_received_connectedcCs|��}|�t|jdd�dS)Nrr
)r>rKrrFr�r
r
r�test_sendto_str�sz.SelectorDatagramTransportTests.test_sendto_strcCs"|jdd�}|�t|jdd�dS)Nr_r;sstr)r@r)r>rK�
ValueErrorrFr�r
r
r�test_sendto_connected_addr�s�z9SelectorDatagramTransportTests.test_sendto_connected_addrcCs@|jdd�}|��|�|jd�|�dd�|�|jd�dS)N)rr;rr�r)r>r rlr�rFr�r
r
r�test_sendto_closing�s
z2SelectorDatagramTransportTests.test_sendto_closingcCs~d}t|�|jj_|��}|j�|df�|j�d|j	�|�	�|�
|jjj�|�|jjj
d|df�|�|jj�dS)Nr�rKrNr)r�r�rFr(r>r�rMr)r6rXr@rjrlrkrBr�r�r
r
r�test_sendto_ready�s�z0SelectorDatagramTransportTests.test_sendto_readycCs�d}t|�|jj_|��}d|_|j�|df�|j�	d|j
�|�
�|jj�|d�|�
|jj�|jj��|jj�d�dS)Nr�Tr
rN)r�r�r`r(r>rr�rMr)r6rXrFrSrBr�r r�r�r�r
r
r�test_sendto_ready_closingsz8SelectorDatagramTransportTests.test_sendto_ready_closingcCsB|��}|j�d|j�|��|�|jjj�|�|jj�dSr�)	r>r)r6rXrBr�rFrjr�r�r
r
r�test_sendto_ready_no_datas
z8SelectorDatagramTransportTests.test_sendto_ready_no_datacCsdt|jj_|��}|j�ddg�|j�d|j	�|�	�|j�
d|j	�|�ddgt|j��dS)N)r�r
)r�r
rN)
rYr�rFr[r>r�r�r)r6rXrrlrNr�r
r
r�test_sendto_ready_tryagains
�z9SelectorDatagramTransportTests.test_sendto_ready_tryagaincCsHt�}|jj_|��}t��|_|j�	d�|�
�|j�|d�dS)N�r�r
rZ)r=r�rFr[r>rrr�r�rMrXrSrr
r
r�test_sendto_ready_exception%s
�z:SelectorDatagramTransportTests.test_sendto_ready_exceptioncCsBt|jj_|��}t��|_|j�	d�|�
�|�|jj�dS)Nri)
r]r�rFr[r>rrr�r�rMrXrBrjr�r
r
r� test_sendto_ready_error_received1s

z?SelectorDatagramTransportTests.test_sendto_ready_error_receivedcCsVt|jj_|jdd�}t��|_|j�	d�|�
�|�|jj�|�
|jjj�dS)Nr_r;ri)r]r�r`r[r>rrr�r�rMrXrBrjr@r�rCr�r
r
r�+test_sendto_ready_error_received_connection;s

zJSelectorDatagramTransportTests.test_sendto_ready_error_received_connectionz asyncio.base_events.logger.errorcCs8|jdd�}t�}|�|�|�|jjj�|��dS)Nr_r;)r>r]r�rBr�rCrjr�)rr�r!r�r
r
r�test_fatal_error_connectedFs

z9SelectorDatagramTransportTests.test_fatal_error_connectedcCsZGdd�dt�}|jdd�}|�}|�|�|�|jjj�|jt�	d�|t
t
fd�dS)Nc@seZdZdS)z[SelectorDatagramTransportTests.test_fatal_error_connected_custom_error.<locals>.MyExceptionNr�r
r
r
r�MyExceptionPsrnr_r;r�r�)r�r>r�rBr�rCrjrSr:r�r�)rr�rnr!r�r
r
r�'test_fatal_error_connected_custom_errorNs
��zFSelectorDatagramTransportTests.test_fatal_error_connected_custom_error)N)#rrrr%r>r�r�r�rDrGrHrIrOrRrVrWrYrr�r\r^r`rarcrdrerfrgrhrjrkrlrmror�r
r
r+rr:1s@
		






r:�__main__)r
)�__doc__rmr�r�rr4�ImportErrorr	Zasyncio.selector_eventsrrrrZtest.test_asynciorr:�ANYr�rr
rr"ZTestCaser#r�r�r,r:r�mainr
r
r
r�<module>sD

	J|
4-