Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.12/test/test_asyncio/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.12/test/test_asyncio/__pycache__/test_sendfile.cpython-312.opt-1.pyc

�

(Μg�S���dZddlZddlZddlZddlZddlZddlZddlZddlmZddlm	Z	ddlm
Z
ddlmZddl
mZddl
mZdd	lmZ	ddlZd
�ZGd�dej,�ZGd
�dej,�ZGd�d�ZGd�de�ZGd�de�ZGd�dee�Zej:dk(r-Gd�deej<�ZGd�deej<�Z nwddl!Z!e"e!d�rGd�deej<�Z#e"e!d�rGd �d!eej<�Z$e"e!d"�rGd#�d$eej<�Z%Gd%�deej<�Ze&d&k(rejN�yy#e$rdZY��.wxYw)'z!Tests for sendfile functionality.�N)�base_events)�	constants)�mock)�support)�	os_helper)�
socket_helper)�utilsc�.�tjd�y�N)�asyncio�set_event_loop_policy���</usr/local/lib/python3.12/test/test_asyncio/test_sendfile.py�tearDownModulers���!�!�$�'rc�>��eZdZdd�Zd�Zd�Zd�Zd�Z�fd�Z�xZ	S)�MySendfileProtoc��d|_d|_d|_|�*|j�|_|j�|_t
�|_||_y)N�INITIALr)	�	transport�state�nbytes�
create_future�	connected�done�	bytearray�data�close_after)�self�looprs   r�__init__zMySendfileProto.__init__sN�������
������!�/�/�1�D�N��*�*�,�D�I��K��	�&��rc�V�|j|vrtd|j�d|����y)Nzstate: z, expected: )r�AssertionError)r�expecteds  r�
_assert_statezMySendfileProto._assert_state(s/���:�:�X�%� �7�4�:�:�.��X�L�!Q�R�R�&rc��||_|jd�d|_|jr|jj	d�yy)Nr�	CONNECTED)rr%rr�
set_result�rrs  r�connection_madezMySendfileProto.connection_made,s<��"������9�%� ��
��>�>��N�N�%�%�d�+�rc�4�|jd�d|_y)Nr'�EOF)r%r�rs r�eof_receivedzMySendfileProto.eof_received3s�����;�'���
rc��|jdd�d|_|jr|jjd�yy)Nr'r,�CLOSED)r%rrr(�r�excs  r�connection_lostzMySendfileProto.connection_lost7s7�����;��.���
��9�9��I�I� � ��&�rc�:��|jd�|xjt|�z
c_|jj	|�t
�|�|�|jr5|j|jk\r|jj�yyy)Nr')
r%r�lenr�extend�super�
data_receivedrr�close)rr�	__class__s  �rr8zMySendfileProto.data_received=su������;�'����s�4�y� ���	�	�����
���d�#�������t�/?�/?� ?��N�N� � �"�!@�r�Nr)
�__name__�
__module__�__qualname__r!r%r*r.r3r8�
__classcell__�r:s@rrrs'���'�S�,��'�#�#rrc�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�MyProtoc�v�d|_d|_t�|_|j	�|_d|_y�NF)�started�closedrrr�futr)rr s  rr!zMyProto.__init__Hs0���������K��	��%�%�'�����rc� �d|_||_y�NT)rErr)s  rr*zMyProto.connection_madeOs�����"��rc�:�|jj|�yr)rr6)rrs  rr8zMyProto.data_receivedSs���	�	����rc�H�d|_|jjd�yrI)rFrGr(r1s  rr3zMyProto.connection_lostVs����������D�!rc��8K�|j�d{���y7��wr)rGr-s r�wait_closedzMyProto.wait_closedZs�����h�h���s���N)r<r=r>r!r*r8r3rMrrrrBrBFs���#��"�rrBc�j��eZdZddzZdZd�Ze�fd��Ze�fd��Z�fd�Z	�fd�Z
d	�Z�xZS)
�SendfileBase�xi�c��t�r)�NotImplementedErrorr-s r�create_event_loopzSendfileBase.create_event_loopgs��!�!rc���ttjd�5}|j|j�ddd�t
�|��y#1swY�xYw)N�wb)�openr�TESTFN�write�DATAr7�
setUpClass)�cls�fpr:s  �rr[zSendfileBase.setUpClassjs>���
�)�"�"�D�
)�R��H�H�S�X�X��*�
����*�
)�s�A�Ac�h��tjtj�t�|��yr)r�unlinkrXr7�
tearDownClass�r\r:s �rr`zSendfileBase.tearDownClassps"�������)�)�*�
���rc�
��ttjd�|_|j	|jj
�|j
�|_|j|j�t�|�)�y)N�rb)rWrrX�file�
addCleanupr9rTr �set_event_loopr7�setUp�rr:s �rrgzSendfileBase.setUpusV�����)�)�4�0��	�����	�	���(��*�*�,��	����D�I�I�&�
��
�rc����|jj�stj|j�|j	�tj�t�|�!�yr)	r �	is_closed�
test_utils�run_briefly�
doCleanupsr�
gc_collectr7�tearDownrhs �rrozSendfileBase.tearDown|sF����y�y�"�"�$��"�"�4�9�9�-���������
���rc�8�|jj|�Sr)r �run_until_complete)r�coros  r�run_loopzSendfileBase.run_loop�s���y�y�+�+�D�1�1r)
r<r=r>rZ�BUF_SIZErT�classmethodr[r`rgrorsr?r@s@rrOrO^sQ���
�%�&�D��H�"�����
� �� ���2rrOc�p��eZdZe�fd��Ze�fd��Zdd�Zd�Zdd�Zd�Z	d�Z
d�Zd	�Zd
�Z
�xZS)
�SockSendfileMixinc�b��tj|_dt_t�|��y)Ni@)r�!SENDFILE_FALLBACK_READBUFFER_SIZE�_SockSendfileMixin__old_bufsizer7r[ras �rr[zSockSendfileMixin.setUpClass�s$���%�G�G���6?�	�3�
���rc�L��|jt_t�|��yr)rzrryr7r`ras �rr`zSockSendfileMixin.tearDownClass�s���69�6G�6G�	�3�
���rc���tjtjtj�}|jd�|r|j	|j
�|SrD)�socket�AF_INET�SOCK_STREAM�setblockingrer9)r�cleanup�socks   r�make_socketzSockSendfileMixin.make_socket�sB���}�}�V�^�^�V�-?�-?�@���������O�O�D�J�J�'��rc�v�|jtjtj|j�yr)�
setsockoptr}�
SOL_SOCKET�	SO_RCVBUFrt)rr�s  r�reduce_receive_buffer_sizez,SockSendfileMixin.reduce_receive_buffer_size�s$��	
����)�)�6�+;�+;�T�]�]�Krc��|jtjtj|j�|�|j|j��yy)N)�high)r�r}r��	SO_SNDBUFrt�set_write_buffer_limits)rr�rs   r�reduce_send_buffer_sizez)SockSendfileMixin.reduce_send_buffer_size�sD��
	
����)�)�6�+;�+;�T�]�]�K�� ��-�-�4�=�=�-�A�!rc�����t�j��tj�}�j	d��}|jtj|f��j�jj�fd�|�����j|��j	�}�j�jj|d|f���j|����fd�}�j|�|�fS)NF)r�c����Srr)�protos�r�<lambda>z8SockSendfileMixin.prepare_socksendfile.<locals>.<lambda>�s���Er)r�z	127.0.0.1c�����j�9�jj��j�j���j��j�j��yr)rr9rsrM)r�r�servers���rr�z7SockSendfileMixin.prepare_socksendfile.<locals>.cleanup�sR������*����%�%�'��
�
�e�/�/�1�2��L�L�N��M�M�&�,�,�.�/r)
rBr r�find_unused_portr��bind�HOSTrs�
create_serverr��sock_connectr�re)r�port�srv_sockr�r�r�r�s`    @@r�prepare_socksendfilez&SockSendfileMixin.prepare_socksendfile�s������	�	�"���-�-�/���#�#�E�#�2���
�
�}�)�)�4�0�1����t�y�y�6�6��� 7� *�+���'�'��1����!���
�
�d�i�i�,�,�T�K��3F�G�H��$�$�T�*�	0�	
���� ��U�{�rc��|j�\}}|j|jj||j��}|j�|j|j
��|j|t|j��|j|j|j�|j|jj�t|j��yr)r�rsr �
sock_sendfilerdr9rM�assertEqualr5rZr�tell�rr�r��rets    r�test_sock_sendfile_successz,SockSendfileMixin.test_sock_sendfile_success�s����/�/�1���e��m�m�D�I�I�3�3�D�$�)�)�D�E���
�
���
�
�e�'�'�)�*�����c�$�)�)�n�-�������T�Y�Y�/���������)�3�t�y�y�>�:rc��|j�\}}|j|jj||jdd��}|j�|j|j
��|j|j|jdd�|j|jj�d�|j|d�y)N��i�i�)r�rsr r�rdr9rMr�rrZr�r�s    r�(test_sock_sendfile_with_offset_and_countz:SockSendfileMixin.test_sock_sendfile_with_offset_and_count�s����/�/�1���e��m�m�D�I�I�3�3�D�$�)�)�48�$�@�A���
�
���
�
�e�'�'�)�*�������T�Y�Y�t�D�%9�:���������)�4�0�����d�#rc	��|j�\}}tj�5}|j|jj||dd��}ddd�|j
�|j|j��|jd�|j|jj�d�y#1swY�uxYwr;)r��tempfile�
TemporaryFilersr r�r9rMr�rdr�)rr�r��fr�s     r�test_sock_sendfile_zero_sizez.SockSendfileMixin.test_sock_sendfile_zero_size�s����/�/�1���e�
�
#�
#�
%���-�-��	�	� 7� 7��a�89�4�!A�B�C�&�	
�
�
���
�
�e�'�'�)�*�����a� ���������)�1�-�&�
%�s�.C
�
Cc���ddz}|j�\}}|j|jj||��|j|jj	||j
��}|j|jj||��|j
�|j|j��|j|t|j��||jz|z}|j|j|�|j|j
j�t|j��y)Nsmix_regular_sendrQ)
r�rsr �sock_sendallr�rdr9rMr�r5rZrr�)r�bufr�r�r�r$s      r�(test_sock_sendfile_mix_with_regular_sendz:SockSendfileMixin.test_sock_sendfile_mix_with_regular_send�s���!�X�.���/�/�1���e��
�
�d�i�i�,�,�T�3�7�8��m�m�D�I�I�3�3�D�$�)�)�D�E���
�
�d�i�i�,�,�T�3�7�8��
�
���
�
�e�'�'�)�*�����c�$�)�)�n�-�����?�S�(��������X�.���������)�3�t�y�y�>�:r)Tr)r<r=r>rur[r`r�r�r�r�r�r�r�r�r?r@s@rrwrw�sS�������
� �� ��L�
B��6;�	$�	.�;rrwc�Z�eZdZddd�d�Zej
ejdk(d�d��Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd�Zd�Zej
ejj)d�d�d��Zd�Zej
eed�d�d��Zd�Zy)�
SendfileMixinFr��is_sslrc�����
��tj�}t�j|���|r@ts�jd�t
j�}t
j�}nd}d}tjtjtj�}|jtj|f��j�jj�fd�||����
�j!|�|rtj}nd}tjtjtj�}|j#tj|f�t�j����j�jj%�fd�|||���\}	}
�j'||	�����
�fd	�}�j)|���fS)
N)r rz
No ssl modulec����Srr)�	srv_protos�rr�z0SendfileMixin.prepare_sendfile.<locals>.<lambda>	����Ir)r��ssl)r c����Srr)�	cli_protos�rr�z0SendfileMixin.prepare_sendfile.<locals>.<lambda>r�r)r�r��server_hostname)rc�8���jj��jj��j�j��j�j��j��j�j	��yr)rr9rsrrM)r�rr�r�s����rr�z/SendfileMixin.prepare_sendfile.<locals>.cleanupse������%�%�'����%�%�'��M�M�)�.�.�)��M�M�)�.�.�)��L�L�N��M�M�&�,�,�.�/r)rr�rr r��skipTestrk�simple_server_sslcontext�simple_client_sslcontextr}r~rr�r�rsr�r��connect�create_connectionr�re)rr�rr��srv_ctx�cli_ctxr�r��cli_sock�tr�prr�r�r�r�s`           @@@r�prepare_sendfilezSendfileMixin.prepare_sendfile�s����-�-�/��#����0;�=�	����
�
�o�.� �9�9�;�G� �9�9�;�G��G��G��=�=�����1C�1C�D���
�
�}�)�)�4�0�1����t�y�y�6�6��H�'� 7� ;�<���'�'��1��+�0�0�O�"�O��=�=�����1C�1C�D�����-�,�,�d�3�4�#����3�	����t�y�y�:�:��H��� ;� :�;���B�	
�$�$�X��$�<�	0�	
���� ��)�#�#r�win32zUDP sockets are not supportedc��|j|jjtjt
j���\}}	|jtd�5|j|jj||j��ddd�|jd|jj��|j�y#1swY�DxYw#|j�wxYw)N)�family�
not supportedr)rsr �create_datagram_endpointr�DatagramProtocolr}r~�assertRaisesRegex�RuntimeError�sendfilerdr�r�r9)rr�r�s   r�test_sendfile_not_supportedz)SendfileMixin.test_sendfile_not_supported%s�������I�I�.�.��(�(��~�~�
/�
'�(���B�	��'�'��o�F��
�
��I�I�&�&�r�4�9�9�5�7�G�
���Q��	�	��� 0�1�
�H�H�J�
G�F��
�H�H�J�s$�
C(�#6C�2C(�C%�!C(�(C:c��|j�\}}|j|jj|j|j
��}|jj
�|j|j�|j|t|j��|j|jt|j��|j|j|j�|j|j
j�t|j��yr�r�rsr r�rrdr9rr�r5rZrrr��rr�r�r�s    r�
test_sendfilezSendfileMixin.test_sendfile4s���#�4�4�6��	�9��m�m��I�I���y�2�2�D�I�I�>�@�����!�!�#��
�
�i�n�n�%�����c�$�)�)�n�-�����)�)�3�t�y�y�>�:����������3���������)�3�t�y�y�>�:rc����j�\}}�fd�}|�j_�j�jj	|j
�j��}|j
j��j|j��j|t�j���j|jt�j���j|j�j��j�jj�t�j��y)Nc�^��tjj�j||||�Sr�r�
BaseEventLoop�_sendfile_nativer ��transprd�offset�countrs    �r�sendfile_nativezCSendfileMixin.test_sendfile_force_fallback.<locals>.sendfile_nativeB�+����,�,�=�=��	�	�6�4���8�
8r)r�r r�rsr�rrdr9rr�r5rZrrr�)rr�r�r�r�s`    r�test_sendfile_force_fallbackz*SendfileMixin.test_sendfile_force_fallback?s����#�4�4�6��	�9�	8�
&5��	�	�"��m�m��I�I���y�2�2�D�I�I�>�@�����!�!�#��
�
�i�n�n�%�����c�$�)�)�n�-�����)�)�3�t�y�y�>�:����������3���������)�3�t�y�y�>�:rc����tjdk(r5t�jtj
�r�j
d��j�\}}�fd�}|�j_�jtjd�5�j�jj|j�jd���ddd�|jj��j|j ��j#|j$d��j#�jj'�d�y#1swY��xYw)Nr�zFails on proactor event loopc�^��tjj�j||||�Srr�r�s    �rr�zMSendfileMixin.test_sendfile_force_unsupported_native.<locals>.sendfile_nativeXr�rr�F��fallbackr)�sys�platform�
isinstancer r�ProactorEventLoopr�r�r�r��SendfileNotAvailableErrorrsr�rrdr9rr�rr�)rr�r�r�s`   r�&test_sendfile_force_unsupported_nativez4SendfileMixin.test_sendfile_force_unsupported_nativeRs����<�<�7�"��$�)�)�W�%>�%>�?��
�
�<�=�#�4�4�6��	�9�	8�
&5��	�	�"�
�
#�
#�G�$E�$E�$3�5��M�M��	�	�"�"�9�#6�#6��	�	�,1�#�3�
4�5�	���!�!�#��
�
�i�n�n�%�����)�)�1�-���������)�1�-�5�5�s
�AE�E"c��|jd��\}}|j|jj|j|j
��}|jj
�|j|j�|j|t|j��|j|jt|j��|j|j|j�|j|j
j�t|j��y)NT�r�r�r�s    r�test_sendfile_sslzSendfileMixin.test_sendfile_ssljs���#�4�4�D�4�A��	�9��m�m��I�I���y�2�2�D�I�I�>�@�����!�!�#��
�
�i�n�n�%�����c�$�)�)�n�-�����)�)�3�t�y�y�>�:����������3���������)�3�t�y�y�>�:rc���|j�\}}|jj�|jtd�5|j|jj|j|j��ddd�|j|j�|j|jd�|j|jj�d�y#1swY�kxYw)Nz
is closingr)
r�rr9r�r�rsr r�rdrr�rr��rr�r�s   r� test_sendfile_for_closing_transpz.SendfileMixin.test_sendfile_for_closing_transpus���#�4�4�6��	�9����!�!�#�
�
#�
#�L�,�
?��M�M�$�)�)�,�,�Y�-@�-@�$�)�)�L�M�@��
�
�i�n�n�%�����)�)�1�-���������)�1�-�	@�
?�s
�AC.�.C7c��|j�\}}ddz}ddz}|jj|�|j|jj|j|j��}|jj|�|jj�|j|j�|j|t|j��|j|j||jz|z�|j|jj�t|j��y)NsPREFIX__�s--SUFFIX�r�rrYrsr r�rdr9rr�r5rZrr��rr�r��PREFIX�SUFFIXr�s      r�test_sendfile_pre_and_post_dataz-SendfileMixin.test_sendfile_pre_and_post_data~s���#�4�4�6��	�9��t�#���t�#�����!�!�&�)��m�m��I�I���y�2�2�D�I�I�>�@�����!�!�&�)����!�!�#��
�
�i�n�n�%�����c�$�)�)�n�-��������$�)�)�);�f�)D�E���������)�3�t�y�y�>�:rc��|jd��\}}ddz}ddz}|jj|�|j|jj|j|j��}|jj|�|jj�|j|j�|j|t|j��|j|j||jz|z�|j|jj�t|j��y)NTr�szxcvbnmr�s
0987654321r�r�s      r�#test_sendfile_ssl_pre_and_post_dataz1SendfileMixin.test_sendfile_ssl_pre_and_post_data�s��#�4�4�D�4�A��	�9��d�"����%�����!�!�&�)��m�m��I�I���y�2�2�D�I�I�>�@�����!�!�&�)����!�!�#��
�
�i�n�n�%�����c�$�)�)�n�-��������$�)�)�);�f�)D�E���������)�3�t�y�y�>�:rc��|j�\}}|j|jj|j|j
dd��}|jj
�|j|j�|j|d�|j|jd�|j|j|jdd�|j|j
j�d�y)Nr��d�L�
r�rsr r�rrdr9rr�rrrZr�r�s    r�test_sendfile_partialz#SendfileMixin.test_sendfile_partial�s���#�4�4�6��	�9��m�m��I�I���y�2�2�D�I�I�t�S�I�K�����!�!�#��
�
�i�n�n�%�����c�"�����)�)�3�/����������4��)=�>���������)�4�0rc��|jd��\}}|j|jj|j|j
dd��}|jj
�|j|j�|j|d�|j|jd�|j|j|jdd�|j|j
j�d�y)NTr�r�r�r�r�r�s    r�test_sendfile_ssl_partialz'SendfileMixin.test_sendfile_ssl_partial�s���#�4�4�D�4�A��	�9��m�m��I�I���y�2�2�D�I�I�t�S�I�K�����!�!�#��
�
�i�n�n�%�����c�"�����)�)�3�/����������4��)=�>���������)�4�0rc��|jt|j���\}}|j|jj|j|j��}|jj�|j|j�|j|t|j��|j|jt|j��|j|j|j�|j|jj�t|j��y)N�r)r�r5rZrsr r�rrdr9rr�rrr�r�s    r�(test_sendfile_close_peer_after_receivingz6SendfileMixin.test_sendfile_close_peer_after_receiving�s���#�4�4��D�I�I�� 5� (��	�9��m�m��I�I���y�2�2�D�I�I�>�@�����!�!�#��
�
�i�n�n�%�����c�$�)�)�n�-�����)�)�3�t�y�y�>�:����������3���������)�3�t�y�y�>�:rc�x�|jdt|j���\}}|j|jj|j|j��}|j|j�|j|t|j��|j|jt|j��|j|j|j�|j|jj�t|j��y)NTr�)
r�r5rZrsr r�rrdrr�rrr�r�s    r�,test_sendfile_ssl_close_peer_after_receivingz:SendfileMixin.test_sendfile_ssl_close_peer_after_receiving�s���#�4�4��S����^� 5� 5��	�9��m�m��I�I���y�2�2�D�I�I�>�@���
�
�i�n�n�%�����c�$�)�)�n�-�����)�)�3�t�y�y�>�:����������3���������)�3�t�y�y�>�:r�sunoszDoesn't work on Solarisc�L�|jd��\}}|jt�5|j|jj|j|j��ddd�|j|j�|jd|jcxkxrt|j�knc|j�tjdk(r$t|jt j"�sc|jd|jj%�cxkxrt|j�knc|jj%��|j|jj'��y#1swY��0xYw)Nr�rr�)r��assertRaises�ConnectionErrorrsr r�rrdr�
assertTruerr5rZr�r�r�rr�r��
is_closingr�s   r�3test_sendfile_close_peer_in_the_middle_of_receivingzASendfileMixin.test_sendfile_close_peer_in_the_middle_of_receiving�s�� $�4�4��4�F��	�9�
�
�
��
/��M�M��	�	�"�"�9�#6�#6��	�	�B�
D�0�	
�
�
�i�n�n�%�����	� 0� 0�A�3�t�y�y�>�A�!�(�(�	*�����'��t�y�y�'�*C�*C�D��O�O�D�D�I�I�N�N�$4�E�s�4�9�9�~�E� �I�I�N�N�,�
.����	�+�+�6�6�8�9�0�
/�s�AF�F#c�N���fd�}|�j_�jd��\}}�jt�5	�j�jj
|j�j��	ddd��j|j��jd|j cxkxrt#�j$�knc|j ��jd�jj'�cxkxrt#�j$�knc�jj'��y#t$r<}|jtjk(rtjdk(rt��d}~wwxYw#1swY��xYw)Nc�^��tjj�j||||�Srr�r�s    �rr�zcSendfileMixin.test_sendfile_fallback_close_peer_in_the_middle_of_receiving.<locals>.sendfile_native�r�rr�r�darwin)r r�r�rr	rsr�rrd�OSError�errno�
EPROTOTYPEr�r�rr
rr5rZr�)rr�r�r��es`    r�<test_sendfile_fallback_close_peer_in_the_middle_of_receivingzJSendfileMixin.test_sendfile_fallback_close_peer_in_the_middle_of_receiving�s.���	8�
&5��	�	�"�#�4�4��4�F��	�9�
�
�
��
/�	
��
�
��I�I�&�&�y�':�':�D�I�I�F�H�0�	
�
�
�i�n�n�%�����	� 0� 0�A�3�t�y�y�>�A�!�(�(�	*������	�	��� 0�A�3�t�y�y�>�A��	�	���(�	*���
��7�7�e�.�.�.�3�<�<�8�3K�)�)���

��	0�
/�s*�F�?E�	F�7F�F�F�F$r�z"Don't have native sendfile supportc�������j�\}��jj�����fd�}�jj|��}�j	���jtd�5�jjd�ddd��j	|�}�j|t�j��y#1swY�@xYw)Nc���K��jd��jj�j�j��d{���S7��wr)r(r r�rrd)r�rGrs���rrrz=SendfileMixin.test_sendfile_prevents_bare_write.<locals>.coros:������N�N�4� ����+�+�I�,?�,?����K�K�K�K�s�AA�A
�	Azsendfile is in progresssdata)r�r r�create_taskrsr�r�rrYr�r5rZ)rr�rr�tr�r�rGs`    @@r�!test_sendfile_prevents_bare_writez/SendfileMixin.test_sendfile_prevents_bare_write�s���� $�4�4�6��	�9��i�i�%�%�'��	L�
�I�I�!�!�$�&�)���
�
�c��
�
#�
#�L�$=�?����%�%�g�.�?��m�m�A�������c�$�)�)�n�-�	?�?�s�?C�C#c�R�tj�}d�|j_tj
j|_|jtd�5|jj|jj|dd���ddd�y#1swYyxYw)Nc��yrDrrrrr�zPSendfileMixin.test_sendfile_no_fallback_for_fallback_transport.<locals>.<lambda>s��5rzfallback is disabledFr�)
r�Mockr�side_effectr�
_SendfileMode�FALLBACK�_sendfile_compatibler�r�r rqr�r)s  r�0test_sendfile_no_fallback_for_fallback_transportz>SendfileMixin.test_sendfile_no_fallback_for_fallback_transportsy���I�I�K�	�+8�	���(�)2�)@�)@�)I�)I�	�&�
�
#�
#�L�2H�
I��I�I�(�(��	�	�"�"�9�d�U�"�C�
E�J�
I�
I�s�8B�B&N)r<r=r>r��unittest�skipIfr�r�r�r�r�r�r�r�r�r�r�rrr�
startswithrr�hasattr�osrr!rrrr�r��s���*/�A�)$�V�X�_�_�S�\�\�W�,�.M�N��O��	;�;�&.�0	;�.�;�;�	1�	1�
;�	;��X�_�_�S�\�\�,�,�W�5�.�0�:�0�:� *�:�X�_�_���Z�0�0�9�;�.�;�.� Err�c��eZdZy)�SendfileTestsBaseN)r<r=r>rrrr(r(s��rr(r�c��eZdZd�Zy)�SelectEventLoopTestsc�*�tj�Sr)r�SelectorEventLoopr-s rrTz&SelectEventLoopTests.create_event_loop����,�,�.�.rN�r<r=r>rTrrrr*r*���	/rr*c��eZdZd�Zy)�ProactorEventLoopTestsc�*�tj�Sr)rr�r-s rrTz(ProactorEventLoopTests.create_event_loop$r-rNr.rrrr1r1!r/rr1�KqueueSelectorc��eZdZd�Zy)�KqueueEventLoopTestsc�P�tjtj��Sr)rr,�	selectorsr3r-s rrTz&KqueueEventLoopTests.create_event_loop.s!���0�0��,�,�.�0�0rNr.rrrr5r5+s��
0rr5�
EpollSelectorc��eZdZd�Zy)�EPollEventLoopTestsc�P�tjtj��Sr)rr,r7r8r-s rrTz%EPollEventLoopTests.create_event_loop6s���0�0��1H�1H�1J�K�KrNr.rrrr:r:3s��
Lrr:�PollSelectorc��eZdZd�Zy)�PollEventLoopTestsc�P�tjtj��Sr)rr,r7r<r-s rrTz$PollEventLoopTests.create_event_loop=s���0�0��1G�1G�1I�J�JrNr.rrrr>r>:s��
Krr>c��eZdZd�Zy)r*c�P�tjtj��Sr)rr,r7�SelectSelectorr-s rrTz&SelectEventLoopTests.create_event_loopDs���,�,�Y�-E�-E�-G�H�HrNr.rrrr*r*As��	Ir�__main__)(�__doc__rrr&r}r�r�r"rrr�testr�test.supportrr�test.test_asyncior	rkr��ImportErrorr�ProtocolrrBrOrwr�r(r��TestCaser*r1r7r%r5r:r>r<�mainrrr�<module>rLs���'���	�
�
�������"�&�1���
(�'#�g�&�&�'#�T�g����0(2�(2�Vj;��j;�Z\E�L�\E�~	�
�'8�	��<�<�7��/�0�)�2�2�/�/�!2�!+�!4�!4�/���y�*�+�	0�#4�#-�#6�#6�	0��y�/�*�	L�"3�",�"5�"5�	L��y�.�)�	K�!2�!+�!4�!4�	K�I�0�)�2�2�I��z���H�M�M�O���i��
�C��s�
E2�2E=�<E=

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists