HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/test/test_asyncio/__pycache__/test_selector_events.cpython-310.pyc
o

�iܿ�@s2dZddlZddlZddlZddlmZzddlZWney%dZYnwddlZddlm	Z	ddlm
Z
ddlmZddlmZddl
mZejZd	d
�ZGdd�de	�Zddd�Zdd�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�Zedkr�e��dSdS)zTests for selector_events.py�N)�mock)�BaseSelectorEventLoop)�_SelectorTransport)�_SelectorSocketTransport)�_SelectorDatagramTransport)�utilscCst�d�dS�N)�asyncioZset_event_loop_policy�r
r
�C/usr/local/lib/python3.10/test/test_asyncio/test_selector_events.py�tearDownModulesrc@seZdZdd�Zdd�ZdS)�TestBaseSelectorEventLoopcC�&t��|_t��|_|jd7_dS�N��r�Mock�_ssock�_csockZ
_internal_fds��selfr
r
r�_make_self_pipe�

z)TestBaseSelectorEventLoop._make_self_pipecC�dSrr
rr
r
r�_close_self_pipe"�z*TestBaseSelectorEventLoop._close_self_pipeN)�__name__�
__module__�__qualname__rrr
r
r
rr
sr
r
cCst��|�Sr)�	bytearray�join)�lr
r
r�list_to_buffer&sr"cCs"|jdurdS|j��d|_dSr)�_sock�close)�	transportr
r
r�close_transport*s


r&cseZdZ�fdd�Zdd�Ze�edud�dd��Ze	�
d	d�e	�
d
d�dd���Zd
d�Zdd�Z
dd�Zdd�Zdd�Zdd�Ze	�
d�dd��Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Z d8d9�Z!d:d;�Z"�Z#S)<�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	CsTt��}t��|j_d|jj_t��|j_t��|j_t��|j_|j��}t	�
��3|j�|t�
�||�}|�td��|��Wd�n1sKwYt	�|j�Wd�n1s`wY|�|���|��|��|�|���|��|��|�|���|jj}|�d|���|�d|���|��t	�|j�dS)NFzSSL transport.*not.*initialized�sslr%)rrr-�_add_readerr2�_add_writer�_remove_reader�_remove_writer�
create_future�
test_utils�disable_logger�_make_ssl_transportr	r3ZassertRaisesRegex�RuntimeError�
is_reading�run_briefly�
assertTrue�
pause_reading�assertFalse�resume_readingr0rZassertIn�lowerr$)rr6�waiterr%�
class_namer
r
r�test_make_ssl_transportIs<


��
��z2BaseSelectorEventLoopTests.test_make_ssl_transportzasyncio.selector_events.sslzasyncio.sslproto.sslcCszt��}t��|j_t��|j_t��|j_t��|j_|�t��|j�	||||�Wd�dS1s6wYdSr)
rrr-r1�
add_writer�
remove_reader�
remove_writer�assertRaisesrAr@)rr6r
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>.EventLoopcSrrrrr
r
rr|rzHBaseSelectorEventLoopTests.test_close.<locals>.EventLoop._make_self_pipeN)rrrrr
r
r
r�	EventLoop{srQ�rrcSrrr
r
r
r
r�callback�rz7BaseSelectorEventLoopTests.test_close.<locals>.callback)rr*r-r.r�filenor,rrrr;�	_selectorr$rFZ	is_closedrD�assertIsNone�assert_called_withr=rOrAZrun_forever�run_until_completer1rL)	rrQZssockZcsockrMr*�f�fdrSr
r
r�
test_closezs:







z%BaseSelectorEventLoopTests.test_closecCs<t��|j_|jj��d|j_|j��|�|jj�dSr)rrr-rMrUr$rVrr
r
r�test_close_no_selector�s

z1BaseSelectorEventLoopTests.test_close_no_selectorcCs t|jjj_|�|j���dSr)�BlockingIOErrorr-r�recv�side_effectrV�_read_from_selfrr
r
r�test_read_from_self_tryagain��z7BaseSelectorEventLoopTests.test_read_from_self_tryagaincCs t|jjj_|�t|jj�dSr)�OSErrorr-rr^r_rOr`rr
r
r�test_read_from_self_exception�rbz8BaseSelectorEventLoopTests.test_read_from_self_exceptioncCsJt|jjj_t���|�|j���Wd�dS1swYdSr)	r]r-r�sendr_r>r?rV�_write_to_selfrr
r
r�test_write_to_self_tryagain�s
"�z6BaseSelectorEventLoopTests.test_write_to_self_tryagaincCs"t�|jjj_|�t|jj�dSr)rAr-rrer_rOrfrr
r
r�test_write_to_self_exception�sz7BaseSelectorEventLoopTests.test_write_to_self_exceptionzsocket.getaddrinfoc
Cs�d}tjtjfD]P}|�|��Atj|d�}dd�|_|j�|j�	||��}|j�
|�|�|d|d|j|j
|jd�|j�
|�|j�d�Wd�n1sSwYqdS)N)zneed-resolution.comi�)�typecWsdgS)N)NNNN�z	127.0.0.1rr
)�argsr
r
r�<lambda>��zZBaseSelectorEventLoopTests.test_sock_connect_resolve_using_socket_params.<locals>.<lambda>rrrj)�socket�SOCK_STREAM�
SOCK_DGRAMZsubTestr>Zmock_nonblocking_socketr_r-Zcreate_taskZsock_connectrXrW�familyri�proto�connect)rZm_gai�addrZ	sock_type�sockZconr
r
r�-test_sock_connect_resolve_using_socket_params�s �����zHBaseSelectorEventLoopTests.test_sock_connect_resolve_using_socket_paramscCs�t|jjj_dd�}|j�d|�|�|jjjj�|jjjj	d\}}\}}|�
d|�|�
tj|�|�
||j
�|�|�dS)NcS�dS�NTr
r
r
r
rrl��z<BaseSelectorEventLoopTests.test_add_reader.<locals>.<lambda>rr)�KeyErrorr-rU�get_keyr_r1rD�register�called�	call_args�assertEqual�	selectors�
EVENT_READ�	_callbackrV�r�cbrZ�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)NrcSrwrxr
r
r
r
rrl�ryzEBaseSelectorEventLoopTests.test_add_reader_existing.<locals>.<lambda>r)rrr��SelectorKey�EVENT_WRITEr-rUr{r,r1rD�cancelr}rFr|�modifyr~rr�r��r�reader�writerr�rZr�r�r�r
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)NrcSrwrxr
r
r
r
rrl�ryzLBaseSelectorEventLoopTests.test_add_reader_existing_writer.<locals>.<lambda>r)rrr�r�r�r-rUr{r,r1rFr|r}rDr�r~rr�r�)rr�r�rZr�r�r�r
r
r�test_add_reader_existing_writer�s�z:BaseSelectorEventLoopTests.test_add_reader_existing_writercC�Bt�ddtjd�|jjj_|�|j�d��|�	|jjj
j�dS�Nr)NN)r�r�r�r-rUr{r,rFrMrD�
unregisterr}rr
r
r�test_remove_reader��

�z-BaseSelectorEventLoopTests.test_remove_readercCs�t��}t��}t�ddtjtjB||f�|jjj_	|�
|j�d��|�|jjj
j�|�dtjd|ff|jjjjd�dS�Nrr)rrr�r�r�r�r-rUr{r,rDrMrFr�r}rr�r~�rr�r�r
r
r�test_remove_reader_read_write��
��z8BaseSelectorEventLoopTests.test_remove_reader_read_writecC�"t|jjj_|�|j�d��dSr)rzr-rUr{r_rFrMrr
r
r�test_remove_reader_unknown�
�z5BaseSelectorEventLoopTests.test_remove_reader_unknowncCs�t|jjj_dd�}|j�d|�|�|jjjj�|jjjj	d\}}\}}|�
d|�|�
tj|�|�
|�|�
||j�dS)NcSrwrxr
r
r
r
rrlryz<BaseSelectorEventLoopTests.test_add_writer.<locals>.<lambda>rr)rzr-rUr{r_rLrDr|r}r~rr�r�rVr�r�r
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)NrcSrwrxr
r
r
r
rrl(ryzEBaseSelectorEventLoopTests.test_add_writer_existing.<locals>.<lambda>r)rrr�r�r�r-rUr{r,rLrDr�r}rFr|r�r~rr�r�r�r
r
r�test_add_writer_existing#s�z3BaseSelectorEventLoopTests.test_add_writer_existingcCr�r�)r�r�r�r-rUr{r,rFrNrDr�r}rr
r
r�test_remove_writer4r�z-BaseSelectorEventLoopTests.test_remove_writercCs�t��}t��}t�ddtjtjB||f�|jjj_	|�
|j�d��|�|jjj
j�|�dtj|dff|jjjjd�dSr�)rrr�r�r�r�r-rUr{r,rDrNrFr�r}rr�r~r�r
r
r�test_remove_writer_read_write;r�z8BaseSelectorEventLoopTests.test_remove_writer_read_writecCr�r)rzr-rUr{r_rFrNrr
r
r�test_remove_writer_unknownIr�z5BaseSelectorEventLoopTests.test_remove_writer_unknownc	Csbt��}d|_t��|j_|j�t�ddtj|df�tjfg�|�	|jjj
�|jj�|�dS�NFr)rr�
_cancelledr-�
_add_callback�_process_eventsr�r�r�rDr}rW�rr�r
r
r�test_process_events_readNs���z3BaseSelectorEventLoopTests.test_process_events_readc	CsRt��}d|_t��|j_|j�t�ddtj|df�tjfg�|jj�	d�dS�NTr)
rr�	cancelledr-r;r�r�r�r�rWr�r
r
r�"test_process_events_read_cancelledZs���z=BaseSelectorEventLoopTests.test_process_events_read_cancelledc	CsRt��}d|_t��|j_|j�t�ddtjd|f�tjfg�|jj�	|�dSr�)
rrr�r-r�r�r�r�r�rW�rr�r
r
r�test_process_events_writees���z4BaseSelectorEventLoopTests.test_process_events_writec	CsRt��}d|_t��|j_|j�t�ddtjd|f�tjfg�|jj�	d�dSr�)
rrr�r-r<r�r�r�r�rWr�r
r
r�#test_process_events_write_cancelledps���z>BaseSelectorEventLoopTests.test_process_events_write_cancelledcCs�t��}t��t��f|j_d}tjj}||jd��}|jjt��||d�Wd�n1s0wY|j�t	�
d��|�|jj|�dS)N�dZ_accept_connection2)�backlogr)
rr�acceptr,�patch�objectr-Z_accept_connectionrXr	�sleepr�
call_count)rrur�Zmock_objZaccept2_mockr
r
r�test_accept_connection_multiple{s
��z:BaseSelectorEventLoopTests.test_accept_connection_multiple)$rrrr)r7�unittestZskipIfr8rKrr�rPr[r\rardrgrhrvr�r�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�NrR)r(r)�
new_test_loopr-r>�make_test_protocolr	r3�protocolrrrnrurTr,rr/r
rr)�s


zSelectorTransportTests.setUpcCs$t|j|j|jd�}|�t|�|Sr)rr-rur��
addCleanupr&�rr%r
r
r�create_transport�s
�z'SelectorTransportTests.create_transportcCs:|��}|�|j|j�|�|j|j�|�|jd�dSr�)r�ZassertIs�_loopr-r#ruZ_sock_fd�r�trr
r
r�	test_ctor�sz SelectorTransportTests.test_ctorcCs*|��}t��|_|��|j�d�dSr)r�rr�_force_close�abortrWr�r
r
r�
test_abort�s
z!SelectorTransportTests.test_abortcCsz|��}|��|�|���|�d|jjd�|j�d�|�|j	d�|��|�|j	d�|�d|jjd�dS)NrrR)
r�r$rD�
is_closingrr-�remove_reader_countr��connection_lost�
_conn_lostr�r
r
rr[�sz!SelectorTransportTests.test_closecCsJ|��}|j�d�|��|�|jj�t�|j�|�|j	j
j�dS�N�data)r��_buffer�extendr$rFr-�readersr>rCr�r�r}r�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�1rRr)r�r�r�r-r9r�sentinelr:r�rDr�rr"rFr��writersr�r�r
r
r�test_force_close�s

z'SelectorTransportTests.test_force_closezasyncio.log.logger.errorcCs:t�}|��}t��|_|�|�|��|j�|�dSr)rcr�rrr��_fatal_error�assert_not_calledrW)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@�eZdZdS)zISelectorTransportTests.test_fatal_error_custom_exception.<locals>.MyErrorN�rrrr
r
r
r�MyError��r��1Fatal error on transport
protocol:.*
transport:.*��exc_info)
�	Exceptionr�rrr�r�rWr>�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)
rcr�ZassertIsNotNoneZ	_protocolr�Z_call_connection_lostr�r�rWrur$rVr#)rr�r�r
r
r�test_connection_lost�s
z+SelectorTransportTests.test_connection_lostcCsv|��}|j�d�|�dtj�|�|jj�|�	d�|�|�
��|�|jj�|�dtj�|�|jj�dS)Nr�rR)r�r�r�r9rr�rDr-r�r�r�rFr�r
r
r�test__add_reader�s
z'SelectorTransportTests.test__add_reader)rrrr)r�r�r�r[r�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	r3r�rrrnru�sock_fdrTr,rr/r
rr)s


z"SelectorSocketTransportTests.setUpNcC�&t|j|j|j|d�}|�t|�|S�N�rI�rr-rur�r�r&�rrIr%r
r
r�socket_transport�

�z-SelectorSocketTransportTests.socket_transportcC�P|j��}|j|d�}|j�|�|j�d|j�t�|j�|jj	�
|�dS�Nr�rR�r-r=r�rX�
assert_reader�_read_readyr>rCr�Zconnection_maderW�rrIr�r
r
rr��
z&SelectorSocketTransportTests.test_ctorcCs4|j��}|j|d�|j�|�|�|���dSr�)r-r=r�rXrV�result)rrIr
r
r�test_ctor_with_waiter!s
z2SelectorSocketTransportTests.test_ctor_with_waitercCs�|��}t�|j�|�|j�|�|���|j�d|j	�|�
�|�
�|�|j�|�|���|j�d�|��|��|�|j�|�|���|j�d|j	�|�
�|�|���|j�d�dSr�)r�r>rCr-rFZ_pausedrDrBr�r�rEZassert_no_readerrGr$r�r
r
r�test_pause_resume_reading(s$z6SelectorSocketTransportTests.test_pause_resume_readingcC�d|��}t��|_t��|_t��|j_t�|jj	_
d|jj_
|��|jj	��|�|jj�dS�N�)r�rrr$r�r-�call_exception_handler�LookupErrorr��eof_receivedr_rur^r,r�rWrDr}r�r
r
r�test_read_eof_received_error?�


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_rur^r,r�rDr}r�r
r
r�test_data_received_errorNs

z5SelectorSocketTransportTests.test_data_received_errorcCs,|��}d|jj_|��|jj�d�dSr�)r�rur^r,r�r�rrWr�r
r
r�test_read_ready[s
z,SelectorSocketTransportTests.test_read_readycC�>|��}t��|_d|jj_|��|jj	�
�|j�
�dSr�)r�rrr$rur^r,r�r�rrWr�r
r
r�test_read_ready_eofc�

z0SelectorSocketTransportTests.test_read_ready_eofcC�L|��}t��|_d|jj_d|jj_|�	�|jj�
�|�|jj�dS)Nr�T)
r�rrr$rur^r,r�rr�rWrFr}r�r
r
r�test_read_ready_eof_keep_openm�


z:SelectorSocketTransportTests.test_read_ready_eof_keep_open�logging.exceptioncC�6t|jj_|��}t��|_|��|�	|jj
�dSr)r]rur^r_r�rrr�r�rFr}�rr�r%r
r
r�test_read_ready_tryagainx�


z5SelectorSocketTransportTests.test_read_ready_tryagaincCr
r)�InterruptedErrorrur^r_r�rrr�r�rFr}rr
r
r�$test_read_ready_tryagain_interrupted�rzASelectorSocketTransportTests.test_read_ready_tryagain_interruptedcC�bt�}|jj_|��}t��|_t�	��|�
�Wd�n1s$wY|j�|�dSr)�ConnectionResetErrorrur^r_r�rrr�r>r?r�rW�rr��errr%r
r
r�test_read_ready_conn_reset��


�z7SelectorSocketTransportTests.test_read_ready_conn_resetcC�<t�}|jj_|��}t��|_|��|j�	|d�dS�Nz$Fatal read error on socket transport)
rcrur^r_r�rrr�r�rWrr
r
r�test_read_ready_err��
�z0SelectorSocketTransportTests.test_read_ready_errcCs6d}t|�|jj_|��}|�|�|jj�|�dSr�)�lenrurer,r��writerW�r�datar%r
r
r�
test_write�s

z'SelectorSocketTransportTests.test_writecCsJtd�}t|�|jj_|��}|�|�|jj�|�|�|td��dSr�)	rrrurer,r�rrWrrr
r
r�test_write_bytearray�s
z1SelectorSocketTransportTests.test_write_bytearraycCs:td�}t|�|jj_|��}|�|�|jj�|�dSr�)�
memoryviewrrurer,r�rrWrr
r
r�test_write_memoryview�s

z2SelectorSocketTransportTests.test_write_memoryviewcCsF|��}|j�d�|�d�|�|jjj�|�t	dg�|j�dS)Nr�r��
r�r�r�rrFrurer}rr"r�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��rRsta)rurer,r�rr-�
assert_writer�_write_readyrr"r�rr
r
r�test_write_partial�s

z/SelectorSocketTransportTests.test_write_partialcCs\td�}d|jj_|��}|�|�|j�d|j�|�	t
dg�|j�|�	|td��dSr*)rrurer,r�rr-r,r-rr"r�rr
r
r�test_write_partial_bytearray�s

z9SelectorSocketTransportTests.test_write_partial_bytearraycCsLtd�}d|jj_|��}|�|�|j�d|j�|�	t
dg�|j�dSr*)r#rurer,r�rr-r,r-rr"r�rr
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�rrR)rurer,rTr�rr-r,r-rr"r�rr
r
r�test_write_partial_none�s


z4SelectorSocketTransportTests.test_write_partial_nonecCsHt|jj_d}|��}|�|�|j�d|j�|�	t
dg�|j�dS�Nr�rR)r]rurer_r�rr-r,r-rr"r�rr
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.)rcrurer_r�rrr�rrWr�Z
reset_mockrFr}r�warning)r�m_logrr r%r
r
r�test_write_exception�s&

�





z1SelectorSocketTransportTests.test_write_exceptioncCs|��}|�t|jd�dS)N�str)r�rO�	TypeErrorrr�r
r
r�test_write_strsz+SelectorSocketTransportTests.test_write_strcCs:|��}|��|�|jd�|�d�|�|jd�dS)Nrr�r+)r�r$rr�rr�r
r
r�test_write_closings

z/SelectorSocketTransportTests.test_write_closingcCs`d}t|�|jj_|��}|j�|�|j�d|j	�|�	�|�
|jjj�|�|jj
�dSr3)rrurer,r�r�r�r-r:r-rDr}rFr�rr
r
r�test_write_ready sz-SelectorSocketTransportTests.test_write_readycCs�d}t|�|jj_|��}d|_|j�|�|j�	d|j
�|�
�|�|jjj�|�
|jj�|jj��|jj�d�dS)Nr�TrR)rrurer,r��_closingr�r�r-r:r-rDr}rFr�r$rWr�r�rr
r
r�test_write_ready_closing+sz5SelectorSocketTransportTests.test_write_ready_closingcCs|��}|�t|j�dSr)r�rO�AssertionErrorr-r�r
r
r�test_write_ready_no_data9sz5SelectorSocketTransportTests.test_write_ready_no_datacCsbd}d|jj_|��}|j�|�|j�d|j�|��|j�	d|j�|�
tdg�|j�dSr*�rurer,r�r�r�r-r:r-r,rr"rr
r
r�test_write_ready_partial>�
z5SelectorSocketTransportTests.test_write_ready_partialcCsbd}d|jj_|��}|j�|�|j�d|j�|��|j�	d|j�|�
tdg�|j�dSr1rDrr
r
r�test_write_ready_partial_noneIrFz:SelectorSocketTransportTests.test_write_ready_partial_nonecCs`t|jj_|��}tddg�|_|j�d|j	�|�	�|j�
d|j	�|�tdg�|j�dS)Nr'r(rRs
data1data2)r]rurer_r�r"r�r-r:r-r,rr�r
r
r�test_write_ready_tryagainTs
z6SelectorSocketTransportTests.test_write_ready_tryagaincC�Ht�}|jj_|��}t��|_|j�	d�|�
�|j�|d�dS)Nr�r6)rcrurer_r�rrr�r�r�r-rW�rrr%r
r
r�test_write_ready_exception_s
�z7SelectorSocketTransportTests.test_write_ready_exceptioncCsT|��}|�|���|��|jj�tj�|��|�	|jjj
d�|��dSr)r�rDZ
can_write_eof�	write_eofru�shutdownrWrn�SHUT_WRrr�r$r�r
r
r�test_write_eofjsz+SelectorSocketTransportTests.test_write_eofcCs�|��}t|jj_|�d�|��|�|jt	dg��|�
|j�|�|jj
j�dd�|jj_|��|�
|jjj�|jj
�tj�|��dS)Nr�cSrw)N�r
)�_r
r
rrl{ryzDSelectorSocketTransportTests.test_write_eof_buffer.<locals>.<lambda>)r�r]rurer_rrLrr�r"rD�_eofrFrMr}r-rWrnrNr$r�r
r
r�test_write_eof_bufferss

z2SelectorSocketTransportTests.test_write_eof_buffercCs.|��}|��|j�t�d��|��dS�Nr)r�r$r-rXr	r�rLr�r
r
r�test_write_eof_after_close�sz7SelectorSocketTransportTests.test_write_eof_after_closezasyncio.base_events.loggercCs0t��}|j_|��}|��|�|j�dSr)rrr-r<r�r$rWr�)rr9rNr%r
r
r�"test_transport_close_remove_writer�sz?SelectorSocketTransportTests.test_transport_close_remove_writerr),rrrr)r�r�r�r�rrrrr
rr�rrrrr!r"r$r&r)r.r/r0r2r4r:r=r>r?rArCrErGrHrKrOrSrUrVr�r
r
r/rr�	sZ
	


	
	
	
	



	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
rrl�rmzDSelectorSocketTransportBufferedProtocolTests.setUp.<locals>.<lambda>rR)r(r)r�r-r>r�r	�BufferedProtocolr�rrY�
get_bufferr_rrrnrur�rTr,rr/rrr)�s


z2SelectorSocketTransportBufferedProtocolTests.setUpNcCr�r�r�r�r
r
rr��r�z=SelectorSocketTransportBufferedProtocolTests.socket_transportcCr�r�r�r�r
r
rr��r�z6SelectorSocketTransportBufferedProtocolTests.test_ctorcCsd|��}t��|_t��|j_t�|jj_	|�
�|�|jj�|�|jjj�|�
|jjj�dSr)r�rrr�r-r�r�r�r\r_r�rDr}rF�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�SrT)rrZr
r
rrl�szXSelectorSocketTransportBufferedProtocolTests.test_get_buffer_zerosized.<locals>.<lambda>)r�rrr�r-r�r�r\r_r�rDr}rFr]r�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�rPcs�Srr
rZrXr
rrl�ryzUSelectorSocketTransportBufferedProtocolTests.test_proto_type_switch.<locals>.<lambda>�
���)r>r�r	r3r�r�rur^r,r�rrWr[rr\r_Zset_protocol�	recv_intor])rr%Z	buf_protor
rXr�test_proto_type_switch�s


zCSelectorSocketTransportBufferedProtocolTests.test_proto_type_switchcCsn|��}t��|_t��|j_t�|jj_	d|j
j_|�
�|�|jj�|�|jjj�|�|jjj�dS)Nr`)r�rrr�r-r�r�r�r]r_rurbr,r�rDr}r\r�r
r
r�test_buffer_updated_error�s

zFSelectorSocketTransportBufferedProtocolTests.test_buffer_updated_errorcCr�rT)r�rrr$r�r-r�r�r�rr_rurbr,r�rWrDr}r�r
r
rr�rzISelectorSocketTransportBufferedProtocolTests.test_read_eof_received_errorcCs:|��}d|jj_|��|jj�d�|jj�d�dS)Nr`ra)	r�rurbr,r�r�r\rWr]r�r
r
rr�s

z<SelectorSocketTransportBufferedProtocolTests.test_read_readycCrrT)r�rrr$rurbr,r�r�rrWr�r
r
rrrz@SelectorSocketTransportBufferedProtocolTests.test_read_ready_eofcCr	)NrT)
r�rrr$rurbr,r�rr�rWrFr}r�r
r
rr

rzJSelectorSocketTransportBufferedProtocolTests.test_read_ready_eof_keep_openrcCr
r)r]rurbr_r�rrr�r�rFr}rr
r
rrrzESelectorSocketTransportBufferedProtocolTests.test_read_ready_tryagaincCr
r)rrurbr_r�rrr�r�rFr}rr
r
rr"rzQSelectorSocketTransportBufferedProtocolTests.test_read_ready_tryagain_interruptedcCrr)rrurbr_r�rrr�r>r?r�rWrr
r
rr,rzGSelectorSocketTransportBufferedProtocolTests.test_read_ready_conn_resetcCrr)
rcrurbr_r�rrr�r�rWrr
r
rr6rz@SelectorSocketTransportBufferedProtocolTests.test_read_ready_errr)rrrr)r�r�r^r_rcrdrrrr
rr�rrrrr�r
r
r/rrW�s(
	

	

	
	
	rWcseZdZ�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_setrR)r(r)r�r-r>r�r	ZDatagramProtocolr�rrrnrurTr,rr/r
rr)Es


z$SelectorDatagramTransportTests.setUpNcCs8|rdnt|jj_t|j|j|j|d�}|�t|�|S)N��address)	rcru�getpeernamer_rr-r�r�r&)rrgr%r
r
r�datagram_transportLs
�z1SelectorDatagramTransportTests.datagram_transportcCs.|��}d|jj_|��|jj�dd�dS)N)r���0.0.0.0i�r�rj)riru�recvfromr,r�r�Zdatagram_receivedrWr�r
r
rrTs
�z.SelectorDatagramTransportTests.test_read_readycCs6|��}t|jj_t��|_|��|�	|jj
�dSr)rir]rurlr_rrr�r�rFr}r�r
r
rr]s


z7SelectorDatagramTransportTests.test_read_ready_tryagaincCs<|��}t�}|jj_t��|_|��|j�	|d�dS)Nz&Fatal read error on datagram transport)
rirArurlr_rrr�r�rW�rr%rr
r
rrfs
�z2SelectorDatagramTransportTests.test_read_ready_errcCsJ|��}t�}|jj_t��|_|��|�	|jj
�|jj�
|�dSr)rircrurlr_rrr�r�rFr}r��error_receivedrWrmr
r
r�test_read_ready_oserrqs
z4SelectorDatagramTransportTests.test_read_ready_oserrcCsFd}|��}|�|d�|�|jjj�|�|jjjd|df�dS�Nr�rjr)ri�sendtorDrur}rr~rr
r
r�test_sendto{s�z*SelectorDatagramTransportTests.test_sendtocC�Jtd�}|��}|�|d�|�|jjj�|�|jjjd|df�dSrp)rrirqrDrur}rr~rr
r
r�test_sendto_bytearray���z4SelectorDatagramTransportTests.test_sendto_bytearraycCrsrp)r#rirqrDrur}rr~rr
r
r�test_sendto_memoryview�ruz5SelectorDatagramTransportTests.test_sendto_memoryviewcCsH|��}|j�d�|�dd�|�|jjj�|�dgt|j��dS)N�r��rki90r�r
�	rir��appendrqrFrur}r�listr�r
r
r�test_sendto_no_data�s�z2SelectorDatagramTransportTests.test_sendto_no_datacCsJ|��}|j�d�|�dd�|�|jjj�|�ddgt|j��dS)N�r'rxr(rx�r(rxryr�r
r
r�test_sendto_buffer�s��z1SelectorDatagramTransportTests.test_sendto_buffercC�htd�}|��}|j�d�|�|d�|�|jjj�|�ddgt	|j��|�
|jddt�dS�Nr(r}rxr~rr)rrir�rzrqrFrur}rr{r4�bytes�rZdata2r%r
r
r�test_sendto_buffer_bytearray����z;SelectorDatagramTransportTests.test_sendto_buffer_bytearraycCr�r�)r#rir�rzrqrFrur}rr{r4r�r�r
r
r�test_sendto_buffer_memoryview�r�z<SelectorDatagramTransportTests.test_sendto_buffer_memoryviewcCsJd}t|jj_|��}|�|d�|j�d|j�|�dgt	|j
��dS)Nr�rxrRrw)r]rurqr_rir-r,�
_sendto_readyrr{r�rr
r
r�test_sendto_tryagain�s
�z3SelectorDatagramTransportTests.test_sendto_tryagainr5cCs�d}t�}|jj_|��}t��|_|�|d�|�|jj	�|j�
|d�d|_d|_|�|�|�|�|�|�|�|�|�|�|j
�
d�dS)Nr�r
�'Fatal write error on datagram transportr)Z123r7)rArurqr_rirrr�rDr}rWr��_addressr8)rr9r rr%r
r
r�test_sendto_exception�s$
�




z4SelectorDatagramTransportTests.test_sendto_exceptioncCsLd}t|jj_|��}t��|_|�|d�|�|j	d�|�
|jj�dS)Nr�r
r)�ConnectionRefusedErrorrurqr_rirrr�rr�rFr}rr
r
r�test_sendto_error_received�s

z9SelectorDatagramTransportTests.test_sendto_error_receivedcCsPd}t|jj_|jdd�}t��|_|�|�|�	|jj
�|�|jj
j
�dS)Nr��rkrrf)r�rurer_rirrr�rqrFr}rDr�rnrr
r
r�$test_sendto_error_received_connected�s


zCSelectorDatagramTransportTests.test_sendto_error_received_connectedcCs|��}|�t|jdd�dS)Nr;r
)rirOr<rqr�r
r
r�test_sendto_str�sz.SelectorDatagramTransportTests.test_sendto_strcCs"|jdd�}|�t|jdd�dS)Nr�rfsstr)rkr+)rirO�
ValueErrorrqr�r
r
r�test_sendto_connected_addr�r�z9SelectorDatagramTransportTests.test_sendto_connected_addrcCs@|jdd�}|��|�|jd�|�dd�|�|jd�dS)N)rrfrr�r+)rir$rr�rqr�r
r
r�test_sendto_closings
z2SelectorDatagramTransportTests.test_sendto_closingcCs~d}t|�|jj_|��}|j�|df�|j�d|j	�|�	�|�
|jjj�|�|jjj
d|df�|�|jj�dS)Nr�rxrRr)rrurqr,rir�rzr-r:r�rDr}rr~rFr�rr
r
r�test_sendto_readys�z0SelectorDatagramTransportTests.test_sendto_readycCs�d}t|�|jj_|��}d|_|j�|df�|j�	d|j
�|�
�|jj�|d�|�
|jj�|jj��|jj�d�dS)Nr�Tr
rR)rrurer,rir@r�rzr-r:r�rqrWrFr�r$r�r�rr
r
r�test_sendto_ready_closingsz8SelectorDatagramTransportTests.test_sendto_ready_closingcCsB|��}|j�d|j�|��|�|jjj�|�|jj�dSr�)	rir-r:r�rFrurqr}r�r�r
r
r�test_sendto_ready_no_data#s
z8SelectorDatagramTransportTests.test_sendto_ready_no_datacCsdt|jj_|��}|j�ddg�|j�d|j	�|�	�|j�
d|j	�|�ddgt|j��dS)N)r'r
)r(r
rR)
r]rurqr_rir�r�r-r:r�r,rr{r�r
r
r�test_sendto_ready_tryagain*s
�z9SelectorDatagramTransportTests.test_sendto_ready_tryagaincCrI)N�r�r
r�)rArurqr_rirrr�r�rzr�rWrJr
r
r�test_sendto_ready_exception7s
�z:SelectorDatagramTransportTests.test_sendto_ready_exceptioncCsBt|jj_|��}t��|_|j�	d�|�
�|�|jj�dS)Nr�)
r�rurqr_rirrr�r�rzr�rFr}r�r
r
r� test_sendto_ready_error_receivedCs

z?SelectorDatagramTransportTests.test_sendto_ready_error_receivedcCsVt|jj_|jdd�}t��|_|j�	d�|�
�|�|jj�|�
|jjj�dS)Nr�rfr�)r�rurer_rirrr�r�rzr�rFr}rDr�rnr�r
r
r�+test_sendto_ready_error_received_connectionMs

zJSelectorDatagramTransportTests.test_sendto_ready_error_received_connectionz asyncio.base_events.logger.errorcCs8|jdd�}t�}|�|�|�|jjj�|��dS)Nr�rf)rir�r�rFr�rnr}r�)rr�r%rr
r
r�test_fatal_error_connectedXs

z9SelectorDatagramTransportTests.test_fatal_error_connectedcCsZGdd�dt�}|jdd�}|�}|�|�|�|jjj�|jt�	d�|t
t
fd�dS)Nc@r�)z[SelectorDatagramTransportTests.test_fatal_error_connected_custom_error.<locals>.MyExceptionNr�r
r
r
r�MyExceptionbr�r�r�rfr�r�)r�rir�rFr�rnr}rWr>r�r�)rr�r�r%rr
r
r�'test_fatal_error_connected_custom_error`s
�
�zFSelectorDatagramTransportTests.test_fatal_error_connected_custom_errorr)#rrrr)rirrrrorrrtrvr|rr�r�r�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r
r
r/rreCsB
		






re�__main__)r
)�__doc__r�rnr�rr8�ImportErrorr	Zasyncio.selector_eventsrrrrZtest.test_asynciorr>�ANYr�rr
r"r&ZTestCaser'r�r�rWrer�mainr
r
r
r�<module>sJ�
	\|
4-�