HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/test/test_asyncio/__pycache__/test_selector_events.cpython-311.pyc
�

��Vc������dZddlZddlZddlZddlZddlmZ	ddlZn
#e$rdZYnwxYwddlZddl	m
Z
ddl	mZddl	mZddl	m
Z
ddlmZejZd	�ZGd
�de
��Zdd
�Zd�ZGd�dej��ZGd�dej��ZGd�dej��ZGd�dej��ZGd�dej��Zedkrej��dSdS)zTests for selector_events.py�N)�mock)�BaseSelectorEventLoop)�_SelectorTransport)�_SelectorSocketTransport)�_SelectorDatagramTransport)�utilsc�.�tjd��dS�N)�asyncio�set_event_loop_policy���:D:\Python311\Lib\test\test_asyncio\test_selector_events.py�tearDownModulers���!�$�'�'�'�'�'rc��eZdZd�Zd�ZdS)�TestBaseSelectorEventLoopc��tj��|_tj��|_|xjdz
c_dS�N��r�Mock�_ssock�_csock�
_internal_fds��selfs r�_make_self_pipez)TestBaseSelectorEventLoop._make_self_pipes6���i�k�k����i�k�k������a�����rc��dSr
r
rs r�_close_self_pipez*TestBaseSelectorEventLoop._close_self_pipe#s���rN)�__name__�
__module__�__qualname__rrr
rrrrs2������ � � �

�
�
�
�
rrr
c�D�t���|��Sr
)�	bytearray�join)�ls r�list_to_bufferr''s���;�;���A���rc�X�|j�dS|j���d|_dSr
)�_sock�close)�	transports r�close_transportr,+s2�������
�O�������I�O�O�Orc�<��eZdZ�fd�Zd�Zejdd��ejdd��d�����Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
ejd
��d���Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z�xZS)�BaseSelectorEventLoopTestsc���t�����tj��|_g|jj_t|j��|_|�	|j��dSr
)
�super�setUprr�selector�select�return_valuer�loop�set_event_loop�r�	__class__s �rr1z BaseSelectorEventLoopTests.setUp6s[���
���
�
�����	����
�,.��
��)�-�d�m�<�<��	����D�I�&�&�&�&�&rc�b�tj��}tj��|j_|j�|tj����}|�|t��|j�	��t|��t|��dSr
)rrr5�
add_reader�_make_socket_transportr�Protocol�assertIsInstancerr*�reprr,)r�mr+s   r�test_make_socket_transportz5BaseSelectorEventLoopTests.test_make_socket_transport=s����I�K�K��#�y�{�{��	���I�4�4�Q��8H�8J�8J�K�K�	����i�)A�B�B�B�	
�	�������Y�����	�"�"�"�"�"rzasyncio.selector_events.sslNzasyncio.sslproto.sslc��tj��}tj��|j_tj��|j_tj��|j_tj��|j_|�t��5|j�	||||��ddd��dS#1swxYwYdSr
)
rrr5r:�
add_writer�
remove_reader�
remove_writer�assertRaises�RuntimeError�_make_ssl_transport)rr?s  r�)test_make_ssl_transport_without_ssl_errorzDBaseSelectorEventLoopTests.test_make_ssl_transport_without_ssl_errorIs���
�I�K�K��#�y�{�{��	��#�y�{�{��	��"&�)�+�+��	��"&�)�+�+��	��
�
�
�|�
,�
,�	6�	6��I�)�)�!�Q��1�5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6�	6�	6s�"C
�
C�Cc���Gd�dt��}||j��|_|�|j��|jj}d|j_|jj}d|j_tj	��x}|j_
|jj���tj	��x|j_}|�
|j�����|j���|�|j�����|�|jj��|�|jj��|�|jj��|j���|j���|j���|�d��|j���|j���|j���}|�t(|jj��|�t(|jj|��d}d�}|�t(|jj||��|�t(|jj||��dS)Nc��eZdZd�ZdS)�8BaseSelectorEventLoopTests.test_close.<locals>.EventLoopc��tj��|_tj��|_|xjdz
c_dSrrrs rrzHBaseSelectorEventLoopTests.test_close.<locals>.EventLoop._make_self_pipeVs6��"�i�k�k���"�i�k�k����"�"�a�'�"�"�"�"rN)r r!r"rr
rr�	EventLooprKUs#������
(�
(�
(�
(�
(rrM�rrc��dSr
r
r
rr�callbackz7BaseSelectorEventLoopTests.test_close.<locals>.callback{s���Dr)rr2r5r6r�filenor4rrr�_remove_reader�	_selectorr*�assertFalse�	is_closed�
assertTrue�assertIsNone�assert_called_with�
create_futurerErF�run_forever�run_until_completer:rB)	rrM�ssock�csockrCr2�f�fdrPs	         r�
test_closez%BaseSelectorEventLoopTests.test_closeTs{��	(�	(�	(�	(�	(�-�	(�	(�	(��I�d�m�,�,��	����D�I�&�&�&��	� ��$%���!��	� ��$%���!�37�9�;�;�>�
��	�0��	��!�!�#�#�#�)-����4��	��h������,�,�.�.�/�/�/��	����������	�+�+�-�-�.�.�.����$�)�-�.�.�.����$�)�*�+�+�+����$�)�*�+�+�+���)�)�+�+�+�
��&�&�(�(�(�
��&�&�(�(�(��(�(��+�+�+�	
�	�������	������
�I�#�#�%�%�����,��	�(=�>�>�>����,��	�(D�a�H�H�H�
��	�	�	����,��	�(<�b�(�K�K�K����,��	�(<�b�(�K�K�K�K�Krc��tj��|j_|jj���d|j_|j���|�|jj��dSr
)rrr5rCrSr*rWrs r�test_close_no_selectorz1BaseSelectorEventLoopTests.test_close_no_selector�sd��"&�)�+�+��	���	��!�!�#�#�#�"��	���	���������$�)�-�.�.�.�.�.rc��t|jjj_|�|j�����dSr
)�BlockingIOErrorr5r�recv�side_effectrW�_read_from_selfrs r�test_read_from_self_tryagainz7BaseSelectorEventLoopTests.test_read_from_self_tryagain�s:��,;��	���)����$�)�3�3�5�5�6�6�6�6�6rc��t|jjj_|�t|jj��dSr
)�OSErrorr5rrerfrErgrs r�test_read_from_self_exceptionz8BaseSelectorEventLoopTests.test_read_from_self_exception�s3��,3��	���)����'�4�9�#<�=�=�=�=�=rc���t|jjj_tj��5|�|j�����ddd��dS#1swxYwYdSr
)	rdr5r�sendrf�
test_utils�disable_loggerrW�_write_to_selfrs r�test_write_to_self_tryagainz6BaseSelectorEventLoopTests.test_write_to_self_tryagain�s���,;��	���)�
�
&�
(�
(�	:�	:����d�i�6�6�8�8�9�9�9�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:����	:�	:�	:�	:�	:�	:s�-A)�)A-�0A-c��t��|jjj_|�t|jj��dSr
)rFr5rrmrfrErprs r�test_write_to_self_exceptionz7BaseSelectorEventLoopTests.test_write_to_self_exception�s7��,8�N�N��	���)����,��	�(@�A�A�A�A�Arzsocket.getaddrinfoc
�D�d}tjtjfD�]}|�|��5t	j|���}d�|_|j�|j�	||����}|j�
|��|�|d|d|j|j
|jd��|j�
|��|j�d��ddd��n#1swxYwY��dS)N)zneed-resolution.comi�)�typec��dgS)N)NNNN�z	127.0.0.1rr
)�argss r�<lambda>zZBaseSelectorEventLoopTests.test_sock_connect_resolve_using_socket_params.<locals>.<lambda>�s
��#M�"N�rrrrw)�socket�SOCK_STREAM�
SOCK_DGRAM�subTestrn�mock_nonblocking_socketrfr5�create_task�sock_connectr[rX�familyru�proto�connect)r�m_gai�addr�	sock_type�sock�cons      r�-test_sock_connect_resolve_using_socket_paramszHBaseSelectorEventLoopTests.test_sock_connect_resolve_using_socket_params�sp��,�� �,�f�.?�@�
	B�
	B�I����i�(�(�
B�
B�!�9�y�I�I�I��O�N��!��i�+�+�D�I�,B�,B�4��,N�,N�O�O���	�,�,�S�1�1�1��(�(���G�T�!�W�d�k�4�9�d�j�!�M�M�M��	�,�,�S�1�1�1���/�/�0@�A�A�A�
B�
B�
B�
B�
B�
B�
B�
B�
B�
B�
B����
B�
B�
B�
B��
	B�
	Bs�CD�D	�D	c���t|jjj_d�}|j�d|��|�|jjjj��|jjjj	d\}}\}}|�
d|��|�
tj|��|�
||j
��|�|��dS)Nc��dS�NTr
r
rrryz<BaseSelectorEventLoopTests.test_add_reader.<locals>.<lambda>����T�rrr)�KeyErrorr5rS�get_keyrfr:rV�register�called�	call_args�assertEqual�	selectors�
EVENT_READ�	_callbackrW�r�cbr_�mask�r�ws      r�test_add_readerz*BaseSelectorEventLoopTests.test_add_reader�s���2:��	��#�/�
�\���	���Q��#�#�#�����	�+�4�;�<�<�<��9�.�7�A�!�D���D�&�1�a�����B��������-�t�4�4�4�����Q�[�)�)�)����!�����rc��tj��}tj��}tjddtj||f��|jjj_d�}|j�	d|��|�
|jj��|�
|jjjj��|�
|jjjj��|jjjjd\}}\}}|�d|��|�tjtjz|��|�||j��|�||��dS)Nrc��dSr�r
r
rrryzEBaseSelectorEventLoopTests.test_add_reader_existing.<locals>.<lambda>�r�rr)rrr��SelectorKey�EVENT_WRITEr5rSr�r4r:rV�cancelr�rTr��modifyr�r�r�r��r�reader�writerr�r_r�r�r�s        r�test_add_reader_existingz3BaseSelectorEventLoopTests.test_add_reader_existing�sC������������3<�3H�
�q�)�'�&�&�)9�4;�4;��	��#�0�
�\���	���Q��#�#�#�����
�,�-�-�-������,�5�<�=�=�=�����	�+�2�9�:�:�:��9�.�5�?��B���D�&�1�a�����B��������.��1E�E�t�L�L�L�����Q�[�)�)�)������#�#�#�#�#rc��tj��}tjddtjd|f��|jjj_d�}|j�	d|��|�
|jjjj��|�
|jjjj��|jjjjd\}}\}}|�d|��|�tjtjz|��|�||j��|�||��dS)Nrc��dSr�r
r
rrryzLBaseSelectorEventLoopTests.test_add_reader_existing_writer.<locals>.<lambda>�r�rr)rrr�r�r�r5rSr�r4r:rTr�r�rVr�r�r�r�r�)rr�r�r_r�r�r�s       r�test_add_reader_existing_writerz:BaseSelectorEventLoopTests.test_add_reader_existing_writer�s �������3<�3H�
�q�)�'�$���49�49��	��#�0�
�\���	���Q��#�#�#������,�5�<�=�=�=�����	�+�2�9�:�:�:��9�.�5�?��B���D�&�1�a�����B��������.��1E�E�t�L�L�L�����Q�[�)�)�)������#�#�#�#�#rc��tjddtjd��|jjj_|�|j�d����|�	|jjj
j��dS�Nr)NN)r�r�r�r5rSr�r4rTrCrV�
unregisterr�rs r�test_remove_readerz-BaseSelectorEventLoopTests.test_remove_reader�sr��3<�3H�
�q�)�&��46�46��	��#�0������0�0��3�3�4�4�4�����	�+�6�=�>�>�>�>�>rc��tj��}tj��}tjddtjtjz||f��|jjj_	|�
|j�d����|�|jjj
j��|�dtjd|ff|jjjjd��dS�Nrr)rrr�r�r�r�r5rSr�r4rVrCrTr�r�r�r�r��rr�r�s   r�test_remove_reader_read_writez8BaseSelectorEventLoopTests.test_remove_reader_read_write�s�������������3<�3H�
�q�)�&��)>�>�
�V��4�4��	��#�0�	
����I�#�#�A�&�&�	(�	(�	(�	
�����,�7�>�?�?�?����
�	�%��f�~�6��I��&�0��3�	5�	5�	5�	5�	5rc��t|jjj_|�|j�d����dSr)r�r5rSr�rfrTrCrs r�test_remove_reader_unknownz5BaseSelectorEventLoopTests.test_remove_reader_unknown��G��2:��	��#�/�����I�#�#�A�&�&�	(�	(�	(�	(�	(rc���t|jjj_d�}|j�d|��|�|jjjj��|jjjj	d\}}\}}|�
d|��|�
tj|��|�
|��|�
||j��dS)Nc��dSr�r
r
rrryz<BaseSelectorEventLoopTests.test_add_writer.<locals>.<lambda>�r�rrr)r�r5rSr�rfrBrVr�r�r�r�r�r�rWr�r�s      r�test_add_writerz*BaseSelectorEventLoopTests.test_add_writer�s���2:��	��#�/�
�\���	���Q��#�#�#�����	�+�4�;�<�<�<��9�.�7�A�!�D���D�&�1�a�����B��������.��5�5�5����!��������Q�[�)�)�)�)�)rc��tj��}tj��}tjddtj||f��|jjj_d�}|j�	d|��|�
|jj��|�
|jjjj��|�
|jjjj��|jjjjd\}}\}}|�d|��|�tjtjz|��|�||��|�||j��dS)Nrc��dSr�r
r
rrryzEBaseSelectorEventLoopTests.test_add_writer_existing.<locals>.<lambda>r�rr)rrr�r�r�r5rSr�r4rBrVr�r�rTr�r�r�r�r�r�r�s        r�test_add_writer_existingz3BaseSelectorEventLoopTests.test_add_writer_existing�sC������������3<�3H�
�q�)�&���(8�4:�4:��	��#�0�
�\���	���Q��#�#�#�����
�,�-�-�-������,�5�<�=�=�=�����	�+�2�9�:�:�:��9�.�5�?��B���D�&�1�a�����B��������.��1E�E�t�L�L�L������#�#�#�����Q�[�)�)�)�)�)rc��tjddtjd��|jjj_|�|j�d����|�	|jjj
j��dSr�)r�r�r�r5rSr�r4rTrDrVr�r�rs r�test_remove_writerz-BaseSelectorEventLoopTests.test_remove_writersr��3<�3H�
�q�)�'��47�47��	��#�0������0�0��3�3�4�4�4�����	�+�6�=�>�>�>�>�>rc��tj��}tj��}tjddtjtjz||f��|jjj_	|�
|j�d����|�|jjj
j��|�dtj|dff|jjjjd��dSr�)rrr�r�r�r�r5rSr�r4rVrDrTr�r�r�r�r�r�s   r�test_remove_writer_read_writez8BaseSelectorEventLoopTests.test_remove_writer_read_writes�������������3<�3H�
�q�)�&��)>�>�
�V��4�4��	��#�0�	
����I�#�#�A�&�&�	(�	(�	(�	
�����,�7�>�?�?�?����
�	�$�v�t�n�5��I��&�0��3�	5�	5�	5�	5�	5rc��t|jjj_|�|j�d����dSr)r�r5rSr�rfrTrDrs r�test_remove_writer_unknownz5BaseSelectorEventLoopTests.test_remove_writer_unknown#r�rc	��tj��}d|_tj��|j_|j�t
jddtj|df��tjfg��|�	|jjj
��|jj�|��dS�NFr)rr�
_cancelledr5�
_add_callback�_process_eventsr�r�r�rVr�rX�rr�s  r�test_process_events_readz3BaseSelectorEventLoopTests.test_process_events_read(s��������!���"&�)�+�+��	���	�!�!��#��1�i�*�V�T�N�<�<��"�$�
%�	&�	&�	&�	
����	�/�6�7�7�7��	��2�2�6�:�:�:�:�:rc	�B�tj��}d|_tj��|j_|j�t
jddtj|df��tjfg��|jj�	d��dS�NTr)
rr�	cancelledr5rRr�r�r�r�rXr�s  r�"test_process_events_read_cancelledz=BaseSelectorEventLoopTests.test_process_events_read_cancelled4s�����������#'�9�;�;��	� ��	�!�!��#��1�i�*�V�T�N�<�<�
�
!�#�
$�	%�	%�	%�	
�	� �3�3�A�6�6�6�6�6rc	�B�tj��}d|_tj��|j_|j�t
jddtjd|f��tjfg��|jj�	|��dSr�)
rrr�r5r�r�r�r�r�rX�rr�s  r�test_process_events_writez4BaseSelectorEventLoopTests.test_process_events_write?s��������!���"&�)�+�+��	���	�!�!��#�A�q�)�*?�%)�6�N�4�4��#�%�
&�	'�	'�	'�	
�	��2�2�6�:�:�:�:�:rc	�B�tj��}d|_tj��|j_|j�t
jddtjd|f��tjfg��|jj�	d��dSr�)
rrr�r5�_remove_writerr�r�r�r�rXr�s  r�#test_process_events_write_cancelledz>BaseSelectorEventLoopTests.test_process_events_write_cancelledJs�����������#'�9�;�;��	� ��	�!�!��#�A�q�)�*?�%)�6�N�4�4��#�%�
&�	'�	'�	'�	
�	� �3�3�A�6�6�6�6�6rc��tj��}tj��tj��f|j_d}tjj}||jd��5}|j�tj��||���ddd��n#1swxYwY|j�tj
d����|�|jj|��dS)N�d�_accept_connection2)�backlogr)
rr�acceptr4�patch�objectr5�_accept_connectionr[r�sleepr��
call_count)rr�r��mock_obj�accept2_mocks     r�test_accept_connection_multiplez:BaseSelectorEventLoopTests.test_accept_connection_multipleUs���y�{�{��$(�I�K�K�����#=��� ����:�$��
�X�d�i�!6�
7�
7�	4�<��I�(�(��	���T�7�
)�
4�
4�
4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�	
�	�$�$�W�]�1�%5�%5�6�6�6������/��9�9�9�9�9s�(/B#�#B'�*B') r r!r"r1r@rr�rHr`rbrhrkrqrsr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��
__classcell__�r8s@rr.r.4s	�������'�'�'�'�'�
#�
#�
#��T�Z�-�t�4�4��T�Z�&��-�-�6�6�.�-�5�4�6�*L�*L�*L�X/�/�/�7�7�7�>�>�>�:�:�:�
B�B�B�
�T�Z�$�%�%�B�B�&�%�B�"
�
�
�$�$�$�"
$�
$�
$�?�?�?�5�5�5�(�(�(�

*�
*�
*�*�*�*�"?�?�?�5�5�5�(�(�(�

;�
;�
;�	7�	7�	7�	;�	;�	;�	7�	7�	7�:�:�:�:�:�:�:rr.c���eZdZ�fd�Zd�Zd�Zd�Zd�Zd�Zd�Z	e
jd��d	���Ze
jd��d
���Z
d�Zd�Z�xZS)
�SelectorTransportTestsc�(��t�����|���|_t	jtj��|_tj
tj��|_d|jj
_dS�NrN)r0r1�
new_test_loopr5rn�make_test_protocolrr<�protocolrrrzr�rQr4r7s �rr1zSelectorTransportTests.setUpisb���
���
�
�����&�&�(�(��	�"�5�g�6F�G�G��
��I�f�m�,�,��	�()��	��%�%�%rc�~�t|j|j|jd��}|�t
|��|Sr
)rr5r�r��
addCleanupr,�rr+s  r�create_transportz'SelectorTransportTests.create_transportps:��&�t�y�$�)�T�]�'+�-�-�	������3�3�3��rc���|���}|�|j|j��|�|j|j��|�|jd��dSr�)r��assertIs�_loopr5r)r��_sock_fd�r�trs  r�	test_ctorz SelectorTransportTests.test_ctorvs_��
�
"�
"�
$�
$���
�
�b�h��	�*�*�*��
�
�b�h��	�*�*�*��
�
�b�k�1�%�%�%�%�%rc��|���}tj��|_|���|j�d��dSr
)r�rr�_force_close�abortrXr�s  r�
test_abortz!SelectorTransportTests.test_abort|sI��
�
"�
"�
$�
$���)�+�+���
���
�
�
�
��*�*�4�0�0�0�0�0rc��|���}|���|�|�����|�d|jjd��|j�d��|�|j	d��|���|�|j	d��|�d|jjd��dS)NrrN)
r�r*rV�
is_closingr�r5�remove_reader_countr��connection_lost�
_conn_lostr�s  rr`z!SelectorTransportTests.test_close�s���
�
"�
"�
$�
$��
���
�
�
�����
�
���(�(�(�����D�I�9�!�<�=�=�=��
�%�%�d�+�+�+�������*�*�*�
���
�
�
�������*�*�*�����D�I�9�!�<�=�=�=�=�=rc�B�|���}|j�d��|���|�|jj��tj|j��|�|j	j
j��dS�N�data)r��_buffer�extendr*rTr5�readersrn�run_brieflyr�r�r�r�s  r�test_close_write_bufferz.SelectorTransportTests.test_close_write_buffer�s���
�
"�
"�
$�
$��
�
���'�"�"�"�
���
�
�
������*�+�+�+���t�y�)�)�)������6�=�>�>�>�>�>rc���|���}|j�d��|j�dt
j��|j�dt
j��|�d��|�	|�
����|�|jt����|�
|jj��|�
|jj��|�d��|�
|jj��|�d|jjd��dS)N�1rNr)r�r�rr5�_add_readerr�sentinel�_add_writerr�rVr�r�r'rTr�writersr�r�s  r�test_force_closez'SelectorTransportTests.test_force_close�s,��
�
"�
"�
$�
$��
�
���$�����	���a���/�/�/��	���a���/�/�/�
�����������
�
���(�(�(������^�%5�%5�6�6�6������*�+�+�+������*�+�+�+�	������������*�+�+�+�����D�I�9�!�<�=�=�=�=�=rzasyncio.log.logger.errorc��t��}|���}tj��|_|�|��|���|j�|��dSr
)rjr�rrr��_fatal_error�assert_not_calledrX)r�m_exc�excr�s    r�test_fatal_errorz'SelectorTransportTests.test_fatal_error�si���i�i��
�
"�
"�
$�
$���)�+�+���
�������
���!�!�!�
��*�*�3�/�/�/�/�/rc�b�Gd�dt��}|��}|���}tj��|_|�|��|�tjd��|ttf���|j�|��dS)Nc��eZdZdS)�ISelectorTransportTests.test_fatal_error_custom_exception.<locals>.MyErrorN�r r!r"r
rr�MyErrorr���������Drr�1Fatal error on transport
protocol:.*
transport:.*��exc_info)
�	Exceptionr�rrr�rrXrn�MockPattern�MOCK_ANY)rrrrr�s     r�!test_fatal_error_custom_exceptionz8SelectorTransportTests.test_fatal_error_custom_exception�s���	�	�	�	�	�i�	�	�	��g�i�i��
�
"�
"�
$�
$���)�+�+���
�������
� � ��"�E�
G�
G��x��2�	!�	4�	4�	4�
	��*�*�3�/�/�/�/�/rc���t��}|���}|�|j��|�|j��|�|��|jj�|��|j	j
���|�|j��|�|j��|�|j��dSr
)
rjr��assertIsNotNone�	_protocolr��_call_connection_lostr�r�rXr�r*rWr))rrr�s   r�test_connection_lostz+SelectorTransportTests.test_connection_lost�s����i�i��
�
"�
"�
$�
$�����R�\�*�*�*����R�X�&�&�&�
� � ��%�%�%��
�%�8�8��=�=�=��	��*�*�,�,�,����"�(�#�#�#����"�,�'�'�'����"�(�#�#�#�#�#rc��|���}|j�d��|�dtj��|�|jj��|�	d��|�|�
����|�|jj��|�dtj��|�|jj��dS)NrrN)r�r�rrrrrVr5rr�r�rTr�s  r�test__add_readerz'SelectorTransportTests.test__add_reader�s���
�
"�
"�
$�
$��
�
���$����
���q�$�-�(�(�(�����	�)�*�*�*�
�����������
�
���(�(�(������*�+�+�+�	���q�$�-�(�(�(������*�+�+�+�+�+r)r r!r"r1r�r�r�r`rr
rr�rrr"r$r�r�s@rr�r�gs�������*�*�*�*�*����&�&�&�1�1�1�>�>�>�?�?�?�>�>�>�"�T�Z�*�+�+�0�0�,�+�0��T�Z�*�+�+�
0�
0�,�+�
0�$�$�$�
,�
,�
,�
,�
,�
,�
,rr�c�H��eZdZ�fd�Zd,d�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Ze
jd��d
���Ze
jd��d���Ze
jd��d���Ze
jd��d���Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Ze
jd��d���Zd�Zd�Zd�Z d �Z!e"j#e$j%j&d!��d"���Z'd#�Z(d$�Z)d%�Z*d&�Z+d'�Z,d(�Z-d)�Z.e
jd*��d+���Z/�xZ0S)-�SelectorSocketTransportTestsc�6��t�����|���|_t	jtj��|_tj
tj��|_dx|_
|jj_dSr�)r0r1r�r5rnr�rr<r�rrrzr��sock_fdrQr4r7s �rr1z"SelectorSocketTransportTests.setUp�si���
���
�
�����&�&�(�(��	�"�5�g�6F�G�G��
��I�f�m�,�,��	�78�8���t�y�'�4�4�4rNc��t|j|j|j|���}|�t
|��|S�N��waiter�rr5r�r�r�r,�rr,r+s   r�socket_transportz-SelectorSocketTransportTests.socket_transport��B��,�T�Y��	�-1�]�6�K�K�K�	������3�3�3��rc�H�|j���}|�|���}|j�|��|j�d|j��t
j|j��|jj	�
|��dS�Nr+rN�r5rYr/r[�
assert_reader�_read_readyrnrr��connection_maderX�rr,r�s   rr�z&SelectorSocketTransportTests.test_ctor������(�(�*�*��
�
"�
"�&�
"�
1�
1���	�$�$�V�,�,�,��	����2�>�2�2�2���t�y�)�)�)��
�%�8�8��<�<�<�<�<rc���|j���}|�|���|j�|��|�|�����dSr*)r5rYr/r[rW�result)rr,s  r�test_ctor_with_waiterz2SelectorSocketTransportTests.test_ctor_with_waiter�sd����(�(�*�*�����V��,�,�,��	�$�$�V�,�,�,����&�-�-�/�/�*�*�*�*�*rc���|���}tj|j��|�|j��|�|�����|j�d|j	��|�
��|�
��|�|j��|�|�����|j�d��|���|���|�|j��|�|�����|j�d|j	��|�
��|�|�����|j�d��dSr�)r/rnrr5rT�_pausedrV�
is_readingr4r5�
pause_reading�assert_no_reader�resume_readingr*r�s  r�test_pause_resume_readingz6SelectorSocketTransportTests.test_pause_resume_readings���
�
"�
"�
$�
$����t�y�)�)�)������$�$�$�����
�
���(�(�(��	����2�>�2�2�2�
������
����������
�#�#�#���������)�)�)��	�"�"�1�%�%�%�
������
�����������$�$�$�����
�
���(�(�(��	����2�>�2�2�2�
���
�
�
���������)�)�)��	�"�"�1�%�%�%�%�%rc���|���}tj��|_tj��|_tj��|j_t��|jj	_
d|jj_
|���|jj	���|�|jj��dS�Nr)r/rrr*rr5�call_exception_handler�LookupErrorr��eof_receivedrfr�rer4r5rXrVr�r�s  r�test_read_eof_received_errorz9SelectorSocketTransportTests.test_read_eof_received_errors����)�)�+�+�	��)�+�+�	��!%����	��+/�9�;�;��	�(�1<����
�"�.�&)��	��#��������
�"�5�5�7�7�7����	�.�5�6�6�6�6�6rc��|���}tj��|_tj��|j_t
��|jj_	d|j
j_|�
��|�|jj��|�|jjj��dSr�)r/rrrr5rErFr��
data_receivedrfr�rer4r5rVr�r�s  r�test_data_received_errorz5SelectorSocketTransportTests.test_data_received_error(s����)�)�+�+�	�!%����	��+/�9�;�;��	�(�2=�-�-��
�#�/�&-��	��#����������	�.�5�6�6�6�����
�3�:�;�;�;�;�;rc��|���}d|jj_|���|jj�d��dSr�)r/r�rer4r5r�rJrXr�s  r�test_read_readyz,SelectorSocketTransportTests.test_read_ready5sP���)�)�+�+�	�&-��	��#��������
�#�6�6�w�?�?�?�?�?rc��|���}tj��|_d|jj_|���|jj	�
��|j�
��dSrD)r/rrr*r�rer4r5r�rGrXr�s  r�test_read_ready_eofz0SelectorSocketTransportTests.test_read_ready_eof=so���)�)�+�+�	��)�+�+�	��&)��	��#��������
�"�5�5�7�7�7���*�*�,�,�,�,�,rc�D�|���}tj��|_d|jj_d|jj_|�	��|jj�
��|�|jj��dS)NrT)
r/rrr*r�rer4r�rGr5rXrTr�r�s  r�test_read_ready_eof_keep_openz:SelectorSocketTransportTests.test_read_ready_eof_keep_openGs����)�)�+�+�	��)�+�+�	��&)��	��#�26��
�"�/��������
�"�5�5�7�7�7������/�0�0�0�0�0r�logging.exceptionc���t|jj_|���}tj��|_|���|�	|jj
��dSr
)rdr�rerfr/rrrr5rTr��rrr+s   r�test_read_ready_tryagainz5SelectorSocketTransportTests.test_read_ready_tryagainRs_��%4��	��"��)�)�+�+�	�!%����	������������/�6�7�7�7�7�7rc���t|jj_|���}tj��|_|���|�	|jj
��dSr
)�InterruptedErrorr�rerfr/rrrr5rTr�rTs   r�$test_read_ready_tryagain_interruptedzASelectorSocketTransportTests.test_read_ready_tryagain_interrupted\s_��%5��	��"��)�)�+�+�	�!%����	������������/�6�7�7�7�7�7rc�N�t��x}|jj_|���}tj��|_tj	��5|�
��ddd��n#1swxYwY|j�|��dSr
)�ConnectionResetErrorr�rerfr/rrr�rnror5rX�rr�errr+s    r�test_read_ready_conn_resetz7SelectorSocketTransportTests.test_read_ready_conn_resetfs���+?�+A�+A�A��d�i�n�(��)�)�+�+�	�!%����	��
�
&�
(�
(�	$�	$��!�!�#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$���1�1�#�6�6�6�6�6��B�B�Bc��t��x}|jj_|���}tj��|_|���|j�	|d��dS�Nz$Fatal read error on socket transport)
rjr�rerfr/rrrr5rXr[s    r�test_read_ready_errz0SelectorSocketTransportTests.test_read_ready_errpsx��+2�9�9�4��d�i�n�(��)�)�+�+�	�!%����	����������1�1�#&�#I�	K�	K�	K�	K�	Krc���d}t|��|jj_|���}|�|��|jj�|��dSr�)�lenr�rmr4r/�writerX�r�datar+s   r�
test_writez'SelectorSocketTransportTests.test_write|sZ����&)�$�i�i��	��#��)�)�+�+�	���������	��)�)�$�/�/�/�/�/rc�6�td��}t|��|jj_|���}|�|��|jj�|��|�|td����dSr�)	r$rcr�rmr4r/rdrXr�res   r�test_write_bytearrayz1SelectorSocketTransportTests.test_write_bytearray�s�����!�!��&)�$�i�i��	��#��)�)�+�+�	���������	��)�)�$�/�/�/�����y��1�1�2�2�2�2�2rc���td��}t|��|jj_|���}|�|��|jj�|��dSr�)�
memoryviewrcr�rmr4r/rdrXres   r�test_write_memoryviewz2SelectorSocketTransportTests.test_write_memoryview�sb���'�"�"��&)�$�i�i��	��#��)�)�+�+�	���������	��)�)�$�/�/�/�/�/rc�&�|���}|j�d��|�d��|�|jjj��|�tdg��|j��dS)Nr�r�
r/r�rrdrTr�rmr�r�r'r�s  r�test_write_no_dataz/SelectorSocketTransportTests.test_write_no_data�s����)�)�+�+�	��� � ��)�)�)��������������.�/�/�/������	�2�2�I�4E�F�F�F�F�Frc�(�|���}|j�d��|�d��|�|jjj��|�tddg��|j��dS)N�data1�data2rnr�s  r�test_write_bufferz.SelectorSocketTransportTests.test_write_buffer�s����)�)�+�+�	��� � ��*�*�*�����!�!�!�������.�/�/�/������8�(<�=�=�"�*�	,�	,�	,�	,�	,rc��d}d|jj_|���}|�|��|j�d|j��|�tdg��|j
��dS�Nr��rNsta)r�rmr4r/rdr5�
assert_writer�_write_readyr�r'r�res   r�test_write_partialz/SelectorSocketTransportTests.test_write_partial�sz����&'��	��#��)�)�+�+�	���������	����9�#9�:�:�:�������0�0�)�2C�D�D�D�D�Drc�p�td��}d|jj_|���}|�|��|j�d|j��|�	tdg��|j��|�	|td����dSru)r$r�rmr4r/rdr5rwrxr�r'r�res   r�test_write_partial_bytearrayz9SelectorSocketTransportTests.test_write_partial_bytearray�s�����!�!��&'��	��#��)�)�+�+�	���������	����9�#9�:�:�:�������0�0�)�2C�D�D�D�����y��1�1�2�2�2�2�2rc�*�td��}d|jj_|���}|�|��|j�d|j��|�	tdg��|j��dSru)rkr�rmr4r/rdr5rwrxr�r'r�res   r�test_write_partial_memoryviewz:SelectorSocketTransportTests.test_write_partial_memoryview�s����'�"�"��&'��	��#��)�)�+�+�	���������	����9�#9�:�:�:�������0�0�)�2C�D�D�D�D�Drc�2�d}d|jj_d|jj_|���}|�|��|j�d|j��|�	tdg��|j��dS�Nr�rrN)r�rmr4rQr/rdr5rwrxr�r'r�res   r�test_write_partial_nonez4SelectorSocketTransportTests.test_write_partial_none�s�����&'��	��#�()��	��%��)�)�+�+�	���������	����9�#9�:�:�:������	�2�2�I�4E�F�F�F�F�Frc��t|jj_d}|���}|�|��|j�d|j��|�	tdg��|j��dS�Nr�rN)rdr�rmrfr/rdr5rwrxr�r'r�res   r�test_write_tryagainz0SelectorSocketTransportTests.test_write_tryagain�sz��%4��	��"����)�)�+�+�	���������	����9�#9�:�:�:������	�2�2�I�4E�F�F�F�F�Fr�asyncio.selector_events.loggerc���t��x}|jj_d}|���}tj��|_|�|��|j�	|d��d|_
|j���|�|��|�|jjj
��|�|j
d��|�|��|�|��|�|��|�|��|j�	d��dS)Nr��%Fatal write error on socket transportrrv�socket.send() raised exception.)rjr�rmrfr/rrrrdrXr��
reset_mockrTr�r��warning)r�m_logr\rfr+s     r�test_write_exceptionz1SelectorSocketTransportTests.test_write_exception�s:��+2�9�9�4��d�i�n�(����)�)�+�+�	�!%����	�����������1�1�#&�#J�	L�	L�	L� !�	���	�������������������.�/�/�/�����-�q�1�1�1�����������������������������
�
�(�(�)J�K�K�K�K�Krc�p�|���}|�t|jd��dS)N�str)r/rE�	TypeErrorrdr�s  r�test_write_strz+SelectorSocketTransportTests.test_write_str�s3���)�)�+�+�	����)�Y�_�e�<�<�<�<�<rc���|���}|���|�|jd��|�d��|�|jd��dS)Nrr�rv)r/r*r�r�rdr�s  r�test_write_closingz/SelectorSocketTransportTests.test_write_closing�sm���)�)�+�+�	�����������-�q�1�1�1����� � � �����-�q�1�1�1�1�1rc��d}t|��|jj_|���}|j�|��|j�d|j	��|�	��|�
|jjj��|�|jj
��dSr�)rcr�rmr4r/r�rr5rrxrVr�rTr	res   r�test_write_readyz-SelectorSocketTransportTests.test_write_ready�s�����&)�$�i�i��	��#��)�)�+�+�	��� � ��&�&�&��	���a��!7�8�8�8���� � � �����	��-�.�.�.������*�+�+�+�+�+rc��d}t|��|jj_|���}d|_|j�|��|j�	d|j
��|�
��|�|jjj��|�
|jj��|jj���|jj�d��dS)Nr�TrN)rcr�rmr4r/�_closingr�rr5rrxrVr�rTr	r*rXr�r�res   r�test_write_ready_closingz5SelectorSocketTransportTests.test_write_ready_closings�����&)�$�i�i��	��#��)�)�+�+�	�!�	���� � ��&�&�&��	���a��!7�8�8�8���� � � �����	��-�.�.�.������*�+�+�+��	��*�*�,�,�,��
�%�8�8��>�>�>�>�>rz)Assertions are disabled in optimized modec�n�|���}|�t|j��dSr
)r/rE�AssertionErrorrxr�s  r�test_write_ready_no_dataz5SelectorSocketTransportTests.test_write_ready_no_datas2���)�)�+�+�	����.�)�*@�A�A�A�A�Arc��d}d|jj_|���}|j�|��|j�d|j��|���|j�	d|j��|�
tdg��|j��dSru�r�rmr4r/r�rr5rrxrwr�r'res   r�test_write_ready_partialz5SelectorSocketTransportTests.test_write_ready_partials�����&'��	��#��)�)�+�+�	��� � ��&�&�&��	���a��!7�8�8�8���� � � ��	����9�#9�:�:�:�������0�0�)�2C�D�D�D�D�Drc��d}d|jj_|���}|j�|��|j�d|j��|���|j�	d|j��|�
tdg��|j��dSrr�res   r�test_write_ready_partial_nonez:SelectorSocketTransportTests.test_write_ready_partial_none$s�����&'��	��#��)�)�+�+�	��� � ��&�&�&��	���a��!7�8�8�8���� � � ��	����9�#9�:�:�:������	�2�2�I�4E�F�F�F�F�Frc��t|jj_|���}tddg��|_|j�d|j	��|�	��|j�
d|j	��|�tdg��|j��dS)NrqrrrNs
data1data2)rdr�rmrfr/r'r�r5rrxrwr�r�s  r�test_write_ready_tryagainz6SelectorSocketTransportTests.test_write_ready_tryagain/s���%4��	��"��)�)�+�+�	�*�H�h�+?�@�@�	���	���a��!7�8�8�8���� � � ��	����9�#9�:�:�:�������8�8�)�:K�L�L�L�L�Lrc�.�t��x}|jj_|���}tj��|_|j�	d��|�
��|j�|d��dS)Nr�r�)rjr�rmrfr/rrrr�rrxrX�rr\r+s   r�test_write_ready_exceptionz7SelectorSocketTransportTests.test_write_ready_exception:s���+2�9�9�4��d�i�n�(��)�)�+�+�	�!%����	���� � ��)�)�)���� � � ���1�1�#&�#J�	L�	L�	L�	L�	Lrc��|���}|�|�����|���|jj�tj��|���|�	|jjj
d��|���dSr)r/rV�
can_write_eof�	write_eofr��shutdownrXrz�SHUT_WRr�r�r*r�s  r�test_write_eofz+SelectorSocketTransportTests.test_write_eofEs���
�
"�
"�
$�
$������(�(�*�*�+�+�+�
�������	��-�-�f�n�=�=�=�
�����������+�6��:�:�:�
���
�
�
�
�
rc��|���}t|jj_|�d��|���|�|jtdg����|�
|j��|�|jj
j��d�|jj_|���|�
|jjj��|jj
�t"j��|���dS)Nr�c��dS)N�r
)�_s rryzDSelectorSocketTransportTests.test_write_eof_buffer.<locals>.<lambda>Vs��q�r)r/rdr�rmrfrdr�r�r�r'rV�_eofrTr�r�rxrXrzr�r*r�s  r�test_write_eof_bufferz2SelectorSocketTransportTests.test_write_eof_bufferNs���
�
"�
"�
$�
$��%4��	��"�
�������
�����������^�W�I�%>�%>�?�?�?������ � � ������+�2�3�3�3�%0�[��	��"�
����������	��-�.�.�.��	��-�-�f�n�=�=�=�
���
�
�
�
�
rc���|���}|���|j�t	jd����|���dS�Nr)r/r*r5r[rr�r�r�s  r�test_write_eof_after_closez7SelectorSocketTransportTests.test_write_eof_after_close\sQ��
�
"�
"�
$�
$��
���
�
�
��	�$�$�W�]�1�%5�%5�6�6�6�
�������rzasyncio.base_events.loggerc���tj��x}|j_|���}|���|�|j��dSr
)rrr5r�r/r*rXr()rr�rDr+s    r�"test_transport_close_remove_writerz?SelectorSocketTransportTests.test_transport_close_remove_writerbsT��37�9�;�;�>�
��	�0��)�)�+�+�	��������(�(���6�6�6�6�6rr
)1r r!r"r1r/r�r;rBrHrKrMrOrQrr�rUrXr]rargrirlrorsryr{r}r�r�r�r�r�r�r��unittest�skipIf�sys�flags�optimizer�r�r�r�r�r�r�r�r�r�r�s@rr&r&�sM�������9�9�9�9�9�����=�=�=�+�+�+�&�&�&�.
7�
7�
7�<�<�<�@�@�@�-�-�-�	1�	1�	1��T�Z�#�$�$�8�8�%�$�8��T�Z�#�$�$�8�8�%�$�8��T�Z�#�$�$�7�7�%�$�7��T�Z�#�$�$�	K�	K�%�$�	K�0�0�0�3�3�3�0�0�0�G�G�G�,�,�,�E�E�E�	3�	3�	3�E�E�E�	G�	G�	G�G�G�G��T�Z�0�1�1�L�L�2�1�L�,=�=�=�2�2�2�	,�	,�	,�?�?�?��X�_�S�Y�'�)T�U�U�B�B�V�U�B�
	E�	E�	E�	G�	G�	G�	M�	M�	M�	L�	L�	L�����������T�Z�,�-�-�7�7�.�-�7�7�7�7�7rr&c�$��eZdZ�fd�Zdd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
ejd
��d���Zejd
��d���Zejd
��d���Zejd
��d���Z�xZS)�,SelectorSocketTransportBufferedProtocolTestsc����t����������_t	jtj���_td���_
�fd��jj_tjtj���_dx�_�jj_dS)Nrc����jSr
)�buf)�hintrs �rryzDSelectorSocketTransportBufferedProtocolTests.setUp.<locals>.<lambda>ss	���D�H�rrN)r0r1r�r5rnr�r�BufferedProtocolr�r$r��
get_bufferrfrrrzr�r(rQr4r7s`�rr1z2SelectorSocketTransportBufferedProtocolTests.setUpms�����
���
�
�����&�&�(�(��	�"�5�g�6N�O�O��
��Q�<�<���/D�/D�/D�/D��
� �,��I�f�m�,�,��	�78�8���t�y�'�4�4�4rNc��t|j|j|j|���}|�t
|��|Sr*r-r.s   rr/z=SelectorSocketTransportBufferedProtocolTests.socket_transportxr0rc�H�|j���}|�|���}|j�|��|j�d|j��t
j|j��|jj	�
|��dSr2r3r7s   rr�z6SelectorSocketTransportBufferedProtocolTests.test_ctor~r8rc���|���}tj��|_tj��|j_t
��|jj_	|�
��|�|jj��|�|jjj��|�
|jjj��dSr
)r/rrrr5rErFr�r�rfr5rVr�rT�buffer_updatedr�s  r�test_get_buffer_errorzBSelectorSocketTransportBufferedProtocolTests.test_get_buffer_error�s����)�)�+�+�	�!%����	��+/�9�;�;��	�(�/:�}�}��
� �,����������	�.�5�6�6�6�����
�0�7�8�8�8������5�<�=�=�=�=�=rc��|���}tj��|_tj��|j_d�|jj_|�	��|�
|jj��|�
|jjj��|�|jj
j��dS)Nc� �td��Sr�)r$)r�s rryzXSelectorSocketTransportBufferedProtocolTests.test_get_buffer_zerosized.<locals>.<lambda>�s��I�a�L�L�r)r/rrrr5rEr�r�rfr5rVr�rTr�r�s  r�test_get_buffer_zerosizedzFSelectorSocketTransportBufferedProtocolTests.test_get_buffer_zerosized�s����)�)�+�+�	�!%����	��+/�9�;�;��	�(�/H�/H��
� �,����������	�.�5�6�6�6�����
�0�7�8�8�8������5�<�=�=�=�=�=rc�R��tjtj��|_|���}d|jj_|�	��|jj
�d��tjtj��}td����fd�|j_|�|��d|jj_|�	��|j�d��|j�d��dS)Nr�r�c����Sr
r
)r�r�s �rryzUSelectorSocketTransportBufferedProtocolTests.test_proto_type_switch.<locals>.<lambda>�s����r�
���)rnr�rr<r�r/r�rer4r5rJrXr�r$r�rf�set_protocol�	recv_intor�)rr+�	buf_protor�s   @r�test_proto_type_switchzCSelectorSocketTransportBufferedProtocolTests.test_proto_type_switch�s����"�5�g�6F�G�G��
��)�)�+�+�	�&-��	��#��������
�#�6�6�w�?�?�?��1�'�2J�K�K�	���l�l��+;�+;�+;�+;�	��(����y�)�)�)�+-��	��(���������/�/��3�3�3�� �3�3�B�7�7�7�7�7rc���|���}tj��|_tj��|j_t
��|jj_	d|j
j_|�
��|�|jj��|�|jjj��|�|jjj��dS)Nr�)r/rrrr5rErFr�r�rfr�r�r4r5rVr�r�r�s  r�test_buffer_updated_errorzFSelectorSocketTransportBufferedProtocolTests.test_buffer_updated_error�s����)�)�+�+�	�!%����	��+/�9�;�;��	�(�3>�=�=��
�$�0�+-��	��(����������	�.�5�6�6�6�����
�0�7�8�8�8�����
�4�;�<�<�<�<�<rc���|���}tj��|_tj��|_tj��|j_t��|jj	_
d|jj_
|���|jj	���|�|jj��dSr�)r/rrr*rr5rErFr�rGrfr�r�r4r5rXrVr�r�s  rrHzISelectorSocketTransportBufferedProtocolTests.test_read_eof_received_error�s����)�)�+�+�	��)�+�+�	��!%����	��+/�9�;�;��	�(�1<����
�"�.�+,��	��(��������
�"�5�5�7�7�7����	�.�5�6�6�6�6�6rc���|���}d|jj_|���|jj�d��|jj�d��dS)Nr�r�)	r/r�r�r4r5r�r�rXr�r�s  rrMz<SelectorSocketTransportBufferedProtocolTests.test_read_ready�sj���)�)�+�+�	�+-��	��(��������
� �3�3�B�7�7�7��
�$�7�7��;�;�;�;�;rc��|���}tj��|_d|jj_|���|jj	�
��|j�
��dSr�)r/rrr*r�r�r4r5r�rGrXr�s  rrOz@SelectorSocketTransportBufferedProtocolTests.test_read_ready_eof�sp���)�)�+�+�	��)�+�+�	��+,��	��(��������
�"�5�5�7�7�7���*�*�,�,�,�,�,rc�D�|���}tj��|_d|jj_d|jj_|�	��|jj�
��|�|jj��dS)NrT)
r/rrr*r�r�r4r�rGr5rXrTr�r�s  rrQzJSelectorSocketTransportBufferedProtocolTests.test_read_ready_eof_keep_open�s����)�)�+�+�	��)�+�+�	��+,��	��(�26��
�"�/��������
�"�5�5�7�7�7������/�0�0�0�0�0rrRc���t|jj_|���}tj��|_|���|�	|jj
��dSr
)rdr�r�rfr/rrrr5rTr�rTs   rrUzESelectorSocketTransportBufferedProtocolTests.test_read_ready_tryagain�s`��*9��	��'��)�)�+�+�	�!%����	������������/�6�7�7�7�7�7rc���t|jj_|���}tj��|_|���|�	|jj
��dSr
)rWr�r�rfr/rrrr5rTr�rTs   rrXzQSelectorSocketTransportBufferedProtocolTests.test_read_ready_tryagain_interrupted�s`��*:��	��'��)�)�+�+�	�!%����	������������/�6�7�7�7�7�7rc�N�t��x}|jj_|���}tj��|_tj	��5|�
��ddd��n#1swxYwY|j�|��dSr
)rZr�r�rfr/rrr�rnror5rXr[s    rr]zGSelectorSocketTransportBufferedProtocolTests.test_read_ready_conn_resets���0D�0F�0F�F��d�i�!�-��)�)�+�+�	�!%����	��
�
&�
(�
(�	$�	$��!�!�#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$���1�1�#�6�6�6�6�6r^c��t��x}|jj_|���}tj��|_|���|j�	|d��dSr`)
rjr�r�rfr/rrrr5rXr[s    rraz@SelectorSocketTransportBufferedProtocolTests.test_read_ready_errsy��07�	�	�9��d�i�!�-��)�)�+�+�	�!%����	����������1�1�#&�#I�	K�	K�	K�	K�	Krr
)r r!r"r1r/r�r�r�r�r�rHrMrOrQrr�rUrXr]rar�r�s@rr�r�ks~�������	9�	9�	9�	9�	9�����=�=�=�>�>�>�>�>�>�8�8�8�.=�=�=�
7�
7�
7�<�<�<�-�-�-�	1�	1�	1��T�Z�#�$�$�8�8�%�$�8��T�Z�#�$�$�8�8�%�$�8��T�Z�#�$�$�7�7�%�$�7��T�Z�#�$�$�	K�	K�%�$�	K�	K�	K�	K�	Krr�c�L��eZdZ�fd�Zd!d�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zejd��d���Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zejd��d���Z ejd��d ���Z!�xZ"S)"�SelectorDatagramTransportTestsc�*��t�����|���|_t	jtj��|_tj
tj���|_d|jj
_dS)N)�spec_setrN)r0r1r�r5rnr�r�DatagramProtocolr�rrrzr�rQr4r7s �rr1z$SelectorDatagramTransportTests.setUp se���
���
�
�����&�&�(�(��	�"�5�g�6N�O�O��
��I�v�}�5�5�5��	�()��	��%�%�%rNc��|rdnt|jj_t	|j|j|j|���}|�t|��|S)N��address)	rjr��getpeernamerfrr5r�r�r,)rr�r+s   r�datagram_transportz1SelectorDatagramTransportTests.datagram_transport's[��4;�,H�D�D���	��)�.�t�y�$�)�/3�}�7>�@�@�@�	�	
�����3�3�3��rc��|���}d|jj_|���|jj�dd��dS)N)r���0.0.0.0i�r�r�)r�r��recvfromr4r5r��datagram_receivedrXr�s  rrMz.SelectorDatagramTransportTests.test_read_ready/s_���+�+�-�-�	�*F��	��'��������
�'�:�:��&�	(�	(�	(�	(�	(rc���|���}t|jj_tj��|_|���|�	|jj
��dSr
)r�rdr�r�rfrrrr5rTr�r�s  rrUz7SelectorDatagramTransportTests.test_read_ready_tryagain8s`���+�+�-�-�	�)8��	��&�!%����	������������/�6�7�7�7�7�7rc��|���}t��x}|jj_tj��|_|���|j�	|d��dS)Nz&Fatal read error on datagram transport)
r�rFr�r�rfrrrr5rX�rr+r\s   rraz2SelectorDatagramTransportTests.test_read_ready_errAsy���+�+�-�-�	�/;�~�~�=��d�i� �,�!%����	����������1�1�#&�#K�	M�	M�	M�	M�	Mrc�@�|���}t��x}|jj_tj��|_|���|�	|jj
��|jj�
|��dSr
)r�rjr�r�rfrrrr5rTr�r��error_receivedrXr�s   r�test_read_ready_oserrz4SelectorDatagramTransportTests.test_read_ready_oserrLs����+�+�-�-�	�/6�y�y�8��d�i� �,�!%����	������������/�6�7�7�7��
�$�7�7��<�<�<�<�<rc��d}|���}|�|d��|�|jjj��|�|jjjd|df��dS�Nr�r�r)r��sendtorVr�r�r�r�res   r�test_sendtoz*SelectorDatagramTransportTests.test_sendtoVs������+�+�-�-�	�����0�1�1�1�����	�(�/�0�0�0�����I��&�q�)�D�2C�+D�	F�	F�	F�	F�	Frc��td��}|���}|�|d��|�|jjj��|�|jjjd|df��dSr�)r$r�r�rVr�r�r�r�res   r�test_sendto_bytearrayz4SelectorDatagramTransportTests.test_sendto_bytearray^s�����!�!���+�+�-�-�	�����0�1�1�1�����	�(�/�0�0�0�����I��&�q�)�D�2C�+D�	F�	F�	F�	F�	Frc��td��}|���}|�|d��|�|jjj��|�|jjjd|df��dSr�)rkr�r�rVr�r�r�r�res   r�test_sendto_memoryviewz5SelectorDatagramTransportTests.test_sendto_memoryviewfs����'�"�"���+�+�-�-�	�����0�1�1�1�����	�(�/�0�0�0�����I��&�q�)�D�2C�+D�	F�	F�	F�	F�	Frc�(�|���}|j�d��|�dd��|�|jjj��|�dgt|j����dS)N�r��r�i90rr
�	r�r��appendr�rTr�r�r��listr�s  r�test_sendto_no_dataz2SelectorDatagramTransportTests.test_sendto_no_datans����+�+�-�-�	��� � �!>�?�?�?�����b�!�!�!������)�0�1�1�1����
*�+�T�)�2C�-D�-D�	F�	F�	F�	F�	Frc�*�|���}|j�d��|�dd��|�|jjj��|�ddgt|j����dS)N�rqr�rrr��rrr�r�r�s  r�test_sendto_bufferz1SelectorDatagramTransportTests.test_sendto_buffervs����+�+�-�-�	��� � �!?�@�@�@�����#5�6�6�6������)�0�1�1�1����
+�
+�
-���"�#�#�	%�	%�	%�	%�	%rc��td��}|���}|j�d��|�|d��|�|jjj��|�ddgt|j����|�
|jddt��dS�Nrrrr�rrr)r$r�r�r�r�rTr�r�r�r�r=�bytes�r�data2r+s   r�test_sendto_buffer_bytearrayz;SelectorDatagramTransportTests.test_sendto_buffer_bytearray�s����(�#�#���+�+�-�-�	��� � �!?�@�@�@����� 2�3�3�3������)�0�1�1�1����
+�
+�
-���"�#�#�	%�	%�	%�	
���i�/��2�1�5�u�=�=�=�=�=rc��td��}|���}|j�d��|�|d��|�|jjj��|�ddgt|j����|�
|jddt��dSr)rkr�r�r�r�rTr�r�r�r�r=rrs   r�test_sendto_buffer_memoryviewz<SelectorDatagramTransportTests.test_sendto_buffer_memoryview�s����8�$�$���+�+�-�-�	��� � �!?�@�@�@����� 2�3�3�3������)�0�1�1�1����
+�
+�
-���"�#�#�	%�	%�	%�	
���i�/��2�1�5�u�=�=�=�=�=rc��d}t|jj_|���}|�|d��|j�d|j��|�dgt|j
����dS)Nr�r�rNr�)rdr�r�rfr�r5rw�
_sendto_readyr�r�r�res   r�test_sendto_tryagainz3SelectorDatagramTransportTests.test_sendto_tryagain�s�����'6��	��$��+�+�-�-�	�����1�2�2�2��	����9�#:�;�;�;����
*�+�T�)�2C�-D�-D�	F�	F�	F�	F�	Frr�c�b�d}t��x}|jj_|���}tj��|_|�|d��|�|jj	��|j�
|d��d|_d|_|�|��|�|��|�|��|�|��|�|��|j
�
d��dS)Nr�r
�'Fatal write error on datagram transportr)�123r�)rFr�r�rfr�rrrrVr�rXr��_addressr�)rr�rfr\r+s     r�test_sendto_exceptionz4SelectorDatagramTransportTests.test_sendto_exception�s!����-9�^�^�;��d�i��*��+�+�-�-�	�!%����	������r�"�"�"����	�.�5�6�6�6���1�1�#&�#L�	N�	N�	N� !�	��%�	�������������������������������������
�
�(�(�)J�K�K�K�K�Krc�.�d}t|jj_|���}tj��|_|�|d��|�|j	d��|�
|jj��dS)Nr�r
r)�ConnectionRefusedErrorr�r�rfr�rrrr�r�rTr�res   r�test_sendto_error_receivedz9SelectorDatagramTransportTests.test_sendto_error_received�s�����'=��	��$��+�+�-�-�	�!%����	������r�"�"�"�����-�q�1�1�1�����/�6�7�7�7�7�7rc�B�d}t|jj_|�d���}tj��|_|�|��|�	|jj
��|�|jj
j
��dS)Nr��r�rr�)rr�rmrfr�rrrr�rTr�rVr�r�res   r�$test_sendto_error_received_connectedzCSelectorDatagramTransportTests.test_sendto_error_received_connected�s�����%;��	��"��+�+�N�+�C�C�	�!%����	�������������/�6�7�7�7�����
�4�;�<�<�<�<�<rc�r�|���}|�t|jdd��dS)Nr�r
)r�rEr�r�r�s  r�test_sendto_strz.SelectorDatagramTransportTests.test_sendto_str�s6���+�+�-�-�	����)�Y�%5�u�b�A�A�A�A�Arc�v�|�d���}|�t|jdd��dS)Nrr�sstr)r�rv)r�rE�
ValueErrorr�r�s  r�test_sendto_connected_addrz9SelectorDatagramTransportTests.test_sendto_connected_addr�sK���+�+�N�+�C�C�	�����	�(�&�.�	B�	B�	B�	B�	Brc���|�d���}|���|�|jd��|�dd��|�|jd��dS)N)rr�rr�rv)r�r*r�r�r�r�s  r�test_sendto_closingz2SelectorDatagramTransportTests.test_sendto_closing�sv���+�+�D�+�9�9�	�����������-�q�1�1�1�����$�'�'�'�����-�q�1�1�1�1�1rc���d}t|��|jj_|���}|j�|df��|j�d|j	��|�	��|�
|jjj��|�|jjj
d|df��|�|jj��dS)Nr�r�rNr)rcr�r�r4r�r�r�r5rr
rVr�r�r�rTr	res   r�test_sendto_readyz0SelectorDatagramTransportTests.test_sendto_ready�s�����(+�D�	�	��	��%��+�+�-�-�	��� � �$�(:�!;�<�<�<��	���a��!8�9�9�9����!�!�!�����	�(�/�0�0�0�����I��&�q�)�D�2D�+E�	G�	G�	G������*�+�+�+�+�+rc��d}t|��|jj_|���}d|_|j�|df��|j�	d|j
��|�
��|jj�|d��|�
|jj��|jj���|jj�d��dS)Nr�Tr
rN)rcr�rmr4r�r�r�r�r5rr
r�rXrTr	r*r�r�res   r�test_sendto_ready_closingz8SelectorDatagramTransportTests.test_sendto_ready_closing�s�����&)�$�i�i��	��#��+�+�-�-�	�!�	���� � �$���,�,�,��	���a��!8�9�9�9����!�!�!��	��+�+�D�"�5�5�5������*�+�+�+��	��*�*�,�,�,��
�%�8�8��>�>�>�>�>rc��|���}|j�d|j��|���|�|jjj��|�|jj��dSr�)	r�r5rr
rTr�r�r�r	r�s  r�test_sendto_ready_no_dataz8SelectorDatagramTransportTests.test_sendto_ready_no_data�s{���+�+�-�-�	��	���a��!8�9�9�9����!�!�!������)�0�1�1�1������*�+�+�+�+�+rc��t|jj_|���}|j�ddg��|j�d|j	��|�	��|j�
d|j	��|�ddgt|j����dS)N)rqr
)rrr
rN)
rdr�r�rfr�r�rr5rr
rwr�r�r�s  r�test_sendto_ready_tryagainz9SelectorDatagramTransportTests.test_sendto_ready_tryagains���'6��	��$��+�+�-�-�	��� � �.�.�!A�B�B�B��	���a��!8�9�9�9����!�!�!��	����9�#:�;�;�;����
�^�,���"�#�#�	%�	%�	%�	%�	%rc�.�t��x}|jj_|���}tj��|_|j�	d��|�
��|j�|d��dS)N�r�r
r)rFr�r�rfr�rrrr�r�r
rXr�s   r�test_sendto_ready_exceptionz:SelectorDatagramTransportTests.test_sendto_ready_exceptions���-9�^�^�;��d�i��*��+�+�-�-�	�!%����	���� � ��/�/�/����!�!�!���1�1�#&�#L�	N�	N�	N�	N�	Nrc�$�t|jj_|���}tj��|_|j�	d��|�
��|�|jj��dS)Nr*)
rr�r�rfr�rrrr�r�r
rTr�r�s  r� test_sendto_ready_error_receivedz?SelectorDatagramTransportTests.test_sendto_ready_error_receivedsw��'=��	��$��+�+�-�-�	�!%����	���� � ��/�/�/����!�!�!�����/�6�7�7�7�7�7rc�p�t|jj_|�d���}tj��|_|j�	d��|�
��|�|jj��|�
|jjj��dS)Nrr�r*)rr�rmrfr�rrrr�r�r
rTr�rVr�r�r�s  r�+test_sendto_ready_error_received_connectionzJSelectorDatagramTransportTests.test_sendto_ready_error_received_connection(s���%;��	��"��+�+�N�+�C�C�	�!%����	���� � ��/�/�/����!�!�!�����/�6�7�7�7�����
�4�;�<�<�<�<�<rz asyncio.base_events.logger.errorc���|�d���}t��}|�|��|�|jjj��|���dS)Nrr�)r�rrrTr�r�r�r
)rrr+r\s    r�test_fatal_error_connectedz9SelectorDatagramTransportTests.test_fatal_error_connected3sk���+�+�N�+�C�C�	�$�&�&�����s�#�#�#������5�<�=�=�=�
���!�!�!�!�!rc�J�Gd�dt��}|�d���}|��}|�|��|�|jjj��|�tj	d��|ttf���dS)Nc��eZdZdS)�[SelectorDatagramTransportTests.test_fatal_error_connected_custom_error.<locals>.MyExceptionNrr
rr�MyExceptionr4=rrr5rr�rr)rr�rrTr�r�r�rXrnrr)rrr5r+r\s     r�'test_fatal_error_connected_custom_errorzFSelectorDatagramTransportTests.test_fatal_error_connected_custom_error;s���	�	�	�	�	�)�	�	�	��+�+�N�+�C�C�	��k�m�m�����s�#�#�#������5�<�=�=�=�
� � ��"�E�
G�
G�!�8�X�6�	!�	8�	8�	8�	8�	8rr
)#r r!r"r1r�rMrUrar�r�r�r�r�rr	rrrr�rrrrrr r"r$r&r(r+r-r/r1r6r�r�s@rr�r�sM�������*�*�*�*�*�����(�(�(�8�8�8�	M�	M�	M�=�=�=�F�F�F�F�F�F�F�F�F�F�F�F�%�%�%�
>�
>�
>�
>�
>�
>�
F�
F�
F��T�Z�0�1�1�L�L�2�1�L�,
8�
8�
8�
=�
=�
=�B�B�B�B�B�B�
2�2�2�,�,�,�?�?�?�,�,�,�%�%�%�
N�
N�
N�8�8�8�	=�	=�	=��T�Z�2�3�3�"�"�4�3�"��T�Z�2�3�3�
8�
8�4�3�
8�
8�
8�
8�
8rr��__main__)r
)�__doc__r�r�rzr�r�ssl�ImportErrorr�asyncio.selector_eventsrrrr�test.test_asynciorrn�ANYrrrr'r,�TestCaser.r�r&r�r�r �mainr
rr�<module>r@s���"�"�
�
�
�
�����
�
�
�
�������������J�J�J�J������
�C�C�C���������9�9�9�9�9�9�6�6�6�6�6�6�<�<�<�<�<�<�>�>�>�>�>�>�1�1�1�1�1�1��8��(�(�(�
�
�
�
�
� 5�
�
�
��������p:�p:�p:�p:�p:��!4�p:�p:�p:�f	y,�y,�y,�y,�y,�Z�0�y,�y,�y,�xE7�E7�E7�E7�E7�:�#6�E7�E7�E7�PpK�pK�pK�pK�pK�:�3F�pK�pK�pK�fh8�h8�h8�h8�h8�Z�%8�h8�h8�h8�V	�z����H�M�O�O�O�O�O��s��)�)