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_tasks.cpython-312.opt-2.pyc

�

(Μg!���>�	ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl	m
Z
ddlmZddlZddlm
Z
ddlmZddlmZddlmZddlmZd	�Zd
�ZdHd�Zd�ZGd
�d�ZGd�d�ZGd�d�Zd�ZGd�d�Ze	j>e e
d�xr	e ed�d�Gd�deeejB��Z"e	j>e e
d�xr	e ed�d�eGd�deejB���Z#e	j>e ed�d�eGd�deejB���Z$e	j>e e
d�d�eGd�d eejB���Z%e	j>e ed�d�Gd!�d"eejB��Z&e	j>e e
d�d�Gd#�d$eejB��Z'Gd%�d&eeejB�Z(eGd'�d(eejB��Z)e	j>e ed�d�Gd)�d*ejB��Z*Gd+�d,�Z+Gd-�d.ejBe+�Z,e	j>e ed/�d�Gd0�d1ejBe+��Z-Gd2�d3�Z.Gd4�d5e.ejB�Z/e	j>e ed�xr	e ed6�d�Gd7�d8e.ejB��Z0Gd9�d:ejB�Z1Gd;�d<�Z2Gd=�d>e2ejB�Z3Gd?�d@e2ejB�Z4GdA�dBejB�Z5GdC�dDejB�Z6GdE�dFejB�Z7e8dGk(re	jr�yy)I�N)�mock)�GenericAlias)�futures)�tasks)�utils)�support)�assert_python_okc�.�tjd�y�N)�asyncio�set_event_loop_policy���9/usr/local/lib/python3.12/test/test_asyncio/test_tasks.py�tearDownModulers���!�!�$�'rc��K�y�wrrrrr�coroutine_functionrs	�������c�p�|rd|z}nd|z}|�|d}d|�d|�d|�d|d�d	|d
��
Sd|�d|�d|�d�S)Nz%sz%s, defined���zcoro=<z() z at z
> created at r�:��>r)�qualname�state�src�source_traceback�	generator�frames      r�format_coroutiner  sY����u�����%���#� ��$���U�C��q��5��8�=�	>�$�
*2�5�#�>�>rc�h�	d}	|j}|�n|}|dz
}�t|�|j|fS)Nrr)�__context__�type�args)�exc�depth�contexts   r�get_innermost_contextr(-sL���
�E�
��/�/���?����
��
��
�
��I�s�x�x��'�'rc��eZdZd�Zd�Zy)�Dummyc��y)Nz<Dummy>r��selfs r�__repr__zDummy.__repr__?s��rc��yrr)r-r$s  r�__call__zDummy.__call__B���rN)�__name__�
__module__�__qualname__r.r0rrrr*r*=s���
rr*c�$�eZdZd�Zd�Zd�Zd�Zy)�CoroLikeObjectc��td���N�*)�
StopIteration)r-�vs  r�sendzCoroLikeObject.sendGs
���B��rc��yrr)r-r%s  r�throwzCoroLikeObject.throwJr1rc��yrrr,s r�closezCoroLikeObject.closeMr1rc��|Srrr,s r�	__await__zCoroLikeObject.__await__Ps���rN)r2r3r4r<r>r@rBrrrr6r6Fs�� �
�
�rr6c�"��eZdZdZdZdud�Zd�Z�fd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d �Z#d!�Z$d"�Z%d#�Z&d$�Z'd%�Z(d&�Z)d'�Z*d(�Z+d)�Z,d*�Z-d+�Z.d,�Z/d-�Z0d.�Z1d/�Z2d0�Z3d1�Z4d2�Z5d3�Z6d4�Z7d5�Z8d6�Z9d7�Z:d8�Z;d9�Z<d:�Z=d;�Z>d<�Z?d=�Z@d>�ZAd?�ZBd@�ZCdA�ZDdB�ZEdC�ZFdD�ZGdE�ZHdF�ZIdG�ZJdH�ZKdI�ZLdJ�ZMdK�ZNdL�ZOdM�ZPdN�ZQdO�ZRdP�ZSdQ�ZTdR�ZUdS�ZVdT�ZWdU�ZXdV�ZYdW�ZZdX�Z[dY�Z\dZ�Z]d[�Z^d\�Z_d]�Z`d^�Zad_�Zbd`�Zcedj�da�db��Zfdc�Zgdd�Zhde�Zidf�Zjedj�da�dg��Zkdh�Zldi�Zmdj�Zndk�Zodl�Zpdm�Zqdn�Zrdo�Zsdp�Ztdq�Zudr�Zvds�Zwdt�Zx�xZyS)v�
BaseTaskTestsNc�@�|jj||||��S)N)�loop�namer')�	__class__�Task)r-rF�cororGr's     r�new_taskzBaseTaskTests.new_taskYs ���~�~�"�"�4�d��w�"�O�Orc�:�|jj|��S�N�rF)rH�Future�r-rFs  r�
new_futurezBaseTaskTests.new_future\s���~�~�$�$�$�$�/�/rc����t�����j��_�jj	�j
��fd��j_y)Nc�:���j�j�Sr)rQrFr,s�r�<lambda>z%BaseTaskTests.setUp.<locals>.<lambda>cs���$�/�/�$�)�)�*Dr)�super�setUp�
new_test_looprF�set_task_factoryrK�
create_future�r-rHs`�rrVzBaseTaskTests.setUp_s>���
��
���&�&�(��	��	�	�"�"�4�=�=�1�"D��	�	�rc��|jjt}|j|jtf�|j|t�yr)rHrI�str�assertEqual�__args__�assertIsInstancer�r-�tasks  r�test_generic_aliasz BaseTaskTests.test_generic_aliases<���~�~�"�"�3�'����������/����d�L�1rc��d�}|j|j|��}|jt|d��|j	|j
d�|j
d�|j	|j
d�|jtj�5}|jj|�ddd�|j	djjd�y#1swY�3xYw)Nc��K�y�wrrrrrrJz;BaseTaskTests.test_task_cancel_message_getter.<locals>.corok�	�����r�_cancel_message�
my messager)
rKrF�
assertTrue�hasattrr]rf�cancel�assertRaisesr�CancelledError�run_until_complete�	exceptionr$�r-rJ�t�cms    r�test_task_cancel_message_getterz-BaseTaskTests.test_task_cancel_message_getterjs���	��M�M�$�)�)�T�V�,�������#4�5�6�����*�*�D�1�	���������*�*�L�9�
�
�
�w�5�5�
6�"��I�I�(�(��+�7�	
����r�|�|�'8�'8��';�<�7�
6�s�(C6�6C?c��d�}|j|j|��}|jd�d|_|j	|jd�|jtj�5}|jj|�ddd�|j	djjd�y#1swY�3xYw)Nc��K�y�wrrrrrrJz;BaseTaskTests.test_task_cancel_message_setter.<locals>.corozrerrgzmy new messager)rKrFrjrfr]rkrrlrmrnr$ros    r�test_task_cancel_message_setterz-BaseTaskTests.test_task_cancel_message_setterys���	��M�M�$�)�)�T�V�,��	�����,�������*�*�,<�=�
�
�
�w�5�5�
6�"��I�I�(�(��+�7�	
���)�2�<�<�+<�+<�Q�+?�@�7�
6�s�8C�Cc����Gd�d���fd�}|jjtjt	d�D�cgc]#}|j|j|����%c}��ycc}w)Nc��eZdZd�Zy)�1BaseTaskTests.test_task_del_collect.<locals>.Evilc�,�tj�yr)�gc�collectr,s r�__del__z9BaseTaskTests.test_task_del_collect.<locals>.Evil.__del__�s���
�
�rN)r2r3r4r|rrr�Evilrx�s��
rr}c���K���S�wrr)r}s�r�runz0BaseTaskTests.test_task_del_collect.<locals>.run�s������6�M�s��d)rFrmr�gather�rangerK)r-r�_r}s   @r�test_task_del_collectz#BaseTaskTests.test_task_del_collect�sc���	�	�	�	
�	�	�$�$��N�N�9>�s���9C�A��
�
�d�i�i���/���
�	��s�(A3c�8�tj�}|j|�}d�}	|jtd�5|j
j
||��ddd�|j�y#1swY�xYw#|j�wxYw)Nc��$K�|�d{���y7��wrr��futs rrz1BaseTaskTests.test_other_loop_future.<locals>.run�s
�����I�I�s���zTask .* got Future .* attached)r�new_event_looprQ�assertRaisesRegex�RuntimeErrorrFrmr@)r-�
other_loopr�rs    r�test_other_loop_futurez$BaseTaskTests.test_other_loop_future�s����+�+�-�
��o�o�j�)��	�	��'�'��(I�K��	�	�,�,�S��X�6�K�
����	K�K��
����s#�B�"A;�"B�;B�B�Bc�����fd�}tj|�|j���|jtd�5|jj��ddd�y#1swYyxYw)Nc��&�K���d{���y7��wrr)ras�r�testz6BaseTaskTests.test_task_awaits_on_itself.<locals>.test�s������J�J�����rNzTask cannot await on itself)r�
ensure_futurerFr�r�rm)r-r�ras  @r�test_task_awaits_on_itselfz(BaseTaskTests.test_task_awaits_on_itself�s[���	��$�$�T�V�$�)�)�<��
�
#�
#�L�$A�C��I�I�(�(��.�C�C�C���A(�(A1c��d�}|j|j|��}|jj|�|j|j	��|j|j
�d�|j|j|j�|j|j�|j�tj�}|j|�|j||��}|j|j|�|j|�|j�y)Nc��K�y�w�N�okrrrr�notmuchz.BaseTaskTests.test_task_class.<locals>.notmuch��	�����rr�)rKrFrmrh�doner]�result�assertIs�_loop�get_looprr��set_event_loopr@)r-r�rprFs    r�test_task_classzBaseTaskTests.test_task_class�s���	��M�M�$�)�)�W�Y�/���	�	�$�$�Q�'��������!��������T�*��
�
�a�g�g�t�y�y�)��
�
�a�j�j�l�D�I�I�.��%�%�'�����D�!��M�M�$��	�*���
�
�a�g�g�t�$�����"��
�
�rc���d��tj��|j��}|j|j|j�|jj|�|j
|j��|j|j�d���}|j|j�|jtd�5tj|�ddd��fd�}|jj|��}|j|j|j�|jj|�|j
|j��|j|j�d�tj|j�|jtjd�tj���}|j|j|j�|jj|�|j
|j��|j|j�d�y#1swY���xYw)Nc��K�y�wr�rrrrr�z;BaseTaskTests.test_ensure_future_coroutine.<locals>.notmuch�r�rrNr��no current event loopc��@�K�tj���S�wr)rr�)r�s�rr�z8BaseTaskTests.test_ensure_future_coroutine.<locals>.test�s������(�(���3�3���)rr�rFr�r�rmrhr�r]r��
addCleanupr@r�r�r�)r-rp�ar�r�s    @r�test_ensure_future_coroutinez*BaseTaskTests.test_ensure_future_coroutine�s����	��!�!�'�)�$�)�)�<���
�
�a�g�g�t�y�y�)��	�	�$�$�Q�'��������!��������T�*��I�������� �
�
#�
#�L�2I�
J��!�!�!�$�K�	4��I�I�(�(���0���
�
�a�g�g�t�y�y�)��	�	�$�$�Q�'��������!��������T�*�	���t�y�y�)�����.�.��5��!�!�'�)�,���
�
�a�g�g�t�y�y�)��	�	�$�$�Q�'��������!��������T�*�%K�
J�s�#J�J
c��|j|j�}|jd�tj|�}|jj|�|j
|j��|j|j�d�|j||�tj�}|j|�|jt�5tj||��}ddd�|j�tj||j��}|j||�y#1swY�MxYw)N�korN)rQrF�
set_resultrr�rmrhr�r]r�r�r�r�rk�
ValueErrorr@)r-�f_orig�frFs    r�test_ensure_future_futurez'BaseTaskTests.test_ensure_future_future�s���������+�����$���!�!�&�)���	�	�$�$�Q�'��������!��������T�*��
�
�a�� ��%�%�'�����D�!�
�
�
�z�
*��%�%�f�4�8�A�+�	
�
�
���!�!�&�t�y�y�9���
�
�a�� �
+�
*�s�(E�Ec��d�}|j|j|��}tj|�}|jj	|�|j|j
��|j|j�d�|j||�tj�}|j|�|jt�5tj||��}ddd�|j�tj||j��}|j||�y#1swY�MxYw)Nc��K�y�wr�rrrrr�z6BaseTaskTests.test_ensure_future_task.<locals>.notmuch�r�rr�rN)rKrFrr�rmrhr�r]r�r�r�r�rkr�r@)r-r��t_origrprFs     r�test_ensure_future_taskz%BaseTaskTests.test_ensure_future_task�s���	����t�y�y�'�)�4���!�!�&�)���	�	�$�$�Q�'��������!��������T�*��
�
�a�� ��%�%�'�����D�!�
�
�
�z�
*��%�%�f�4�8�A�+�	
�
�
���!�!�&�t�y�y�9���
�
�a�� �
+�
*�s� E�E
c��Gd�d�}d�}tj�}|j|�tj||��|��}|j	|�|j|j
�d�y)Nc��eZdZd�Zd�Zy)�6BaseTaskTests.test_ensure_future_awaitable.<locals>.Awc��||_yr�rJ�r-rJs  r�__init__z?BaseTaskTests.test_ensure_future_awaitable.<locals>.Aw.__init__s	�� ��	rc�6�|jj�Sr)rJrBr,s rrBz@BaseTaskTests.test_ensure_future_awaitable.<locals>.Aw.__await__
s���y�y�*�*�,�,rN)r2r3r4r�rBrrr�Awr�s��
!�
-rr�c��K�y�wr�rrrrrJz8BaseTaskTests.test_ensure_future_awaitable.<locals>.coro
r�rrNr�)rr�r�r�rmr]r�)r-r�rJrFr�s     r�test_ensure_future_awaitablez*BaseTaskTests.test_ensure_future_awaitablesk��	-�	-�	��%�%�'�����D�!��#�#�B�t�v�J�T�:������$��������t�,rc��Gd�d�}tj�}|j|�tj|�|��}|j	|�|j|j
��|j|j�d�|j|j�tj�|j�y)Nc��eZdZd�Zy)�;BaseTaskTests.test_ensure_future_task_awaitable.<locals>.Awc�L�tjdd��j�S)Nrr��r�)r�sleeprBr,s rrBzEBaseTaskTests.test_ensure_future_task_awaitable.<locals>.Aw.__await__s���}�}�Q�t�4�>�>�@�@rN)r2r3r4rBrrrr�r�s��
Arr�rNr�)rr�r�r�rmrhr�r]r�r_�get_coro�types�
CoroutineTyper@)r-r�rFras    r�!test_ensure_future_task_awaitablez/BaseTaskTests.test_ensure_future_task_awaitables���	A�	A��%�%�'�����D�!��$�$�R�T��5������%�����	�	��$���������-����d�m�m�o�u�/B�/B�C��
�
�rc��|jt�5tjd�ddd�y#1swYyxYwr�)rk�	TypeErrorrr�r,s r�test_ensure_future_neitherz(BaseTaskTests.test_ensure_future_neither$s*��
�
�
�y�
)��!�!�$�'�*�
)�
)�s�5�>c��tj�}|j|j�}|j	t
d�5tj||��ddd�|j�y#1swY�xYw)NzRThe future belongs to a different loop than the one specified as the loop argumentrN)rr�rQrFr�r�r�r@)r-rFr�s   r�test_ensure_future_error_msgz*BaseTaskTests.test_ensure_future_error_msg(sd���%�%�'���O�O�D�I�I�&��
�
#�
#�J�18�9�
�!�!�!�$�/�9�	
�
�
��	9�9�s�A7�7Bc�t�����d��fd����fd�����fd�}�jj|��y)Nc��0�K����d{���y7��wrr)�bars�r�fooz)BaseTaskTests.test_get_stack.<locals>.foo4s������%�K�K�s���c��L�K��jd��}	�j|djjd�d}t	j
�}�j
d|��|jd�|j�}�j|d�y#d}wxYw�w)Nr)�limitrr�)r��filezfoo\(\) running)
�	get_stackr]�f_code�co_name�io�StringIO�print_stack�seek�read�assertRegex)r�r��tb�Tr-s   ��rr�z)BaseTaskTests.test_get_stack.<locals>.bar7s���������!��$�A�
�� � ��1����!4�!4�e�<����;�;�=�D�
�M�M���M�-��I�I�a�L�����B����R�!3�4����s�B$�)B�AB$�B!�!B$c��r�K�tj���j�����d{���y7��wrM)rr�rF)r�r�r-s���r�runnerz,BaseTaskTests.test_get_stack.<locals>.runnerFs&������%�%�c�e�$�)�)�<�A��G�G�s�,7�5�7�rFrm)r-r�r�r�r�s` @@@r�test_get_stackzBaseTaskTests.test_get_stack1s-�����	�
	5�	�
	
�	�	�$�$�V�X�.rc��|jjd�d�}|j|jd�|j	|j
d�|j|jt�tj|�\}}|�d|��}|�}d}|j|jd�|j|j
|�|j|j|�}|jt��t|d||jd�	�}|jt|�d
|z�|j�|jt|�d|z�|j!t"j$|jj&|�t|d||j�}|jt|�d
|z�|j|j|��}|jj'|�t|d||j�}|jt|�d|z�y)NFc��K�y�w�N�abcrrrrr�z-BaseTaskTests.test_task_repr.<locals>.notmuchP�	�����rr�z#\w+.test_task_repr.<locals>.notmuchrz-BaseTaskTests.test_task_repr.<locals>.notmuch�runningT)rz0<Task pending name='TestTask' %s cb=[<Dummy>()]>z3<Task cancelling name='TestTask' %s cb=[<Dummy>()]>r�z#<Task cancelled name='TestTask' %s>z/<Task finished name='TestTask' %s result='abc'>)rF�	set_debugr]r2r�r4r3�
test_utils�get_function_sourcerK�add_done_callbackr*r �_source_traceback�reprrjrkrrlrm)	r-r��filename�linenor�gen�
coro_qualnamerprJs	         r�test_task_reprzBaseTaskTests.test_task_reprMs����	�	���E�"�	�	
����)�)�9�5�����-�-�?�	A�����+�+�X�6�%�9�9�'�B���&�!�6�*���i��G�
�������y�1�����)�)�=�9�
�M�M�$�)�)�S�)��	���E�G�$��
�y�#� !� 3� 3�t�E������a��K�d�R�	T�	
���
�����a��N�QU�U�	W�	
���'�0�0��)�)�6�6��	;��
�v�s� !� 3� 3�5������a��>��E�	G�
�M�M�$�)�)�W�Y�/���	�	�$�$�Q�'��
�v�s� !� 3� 3�5������a��J�T�Q�	Src��d�}|j|j|�d�}|j|j|�d�}|jt|�t|��t	j
dt|��}|j
|�t	j
dt|��}|j
|�|jt|jd��t|jd���|jj|�|jj|�y)Nc��K�y�w�N�{rrrrr�z;BaseTaskTests.test_task_repr_autogenerated.<locals>.notmuch��	�����rz ^<Task pending name='Task-(\d+)'r)rKrF�assertNotEqualr��re�match�assertIsNotNone�
assertLess�int�grouprm)r-r��t1�t2�match1�match2s      r�test_task_repr_autogeneratedz*BaseTaskTests.test_task_repr_autogenerated�s���	��]�]�4�9�9�g�i��
6��
�]�]�4�9�9�g�i��
6�����D��H�d�2�h�/����=�t�B�x�H�����V�$����=�t�B�x�H�����V�$�	
����F�L�L��O�,�c�&�,�,�q�/�.B�C��	�	�$�$�R�(��	�	�$�$�R�(rc�(�d�}|j|j|�d��}|j|j�d�|j	d�|j|j�d�|jj|�y)Nc��K�y�wr�rrrrr�z8BaseTaskTests.test_task_set_name_pylong.<locals>.notmuch�r�ri�h�:�rG�	987654321i�[�	123456789)rKrFr]�get_name�set_namerm�r-r�rps   r�test_task_set_name_pylongz'BaseTaskTests.test_task_set_name_pylong�sm��	�
�M�M�$�)�)�W�Y�Y�M�?���������{�3�	�
�
�9���������{�3��	�	�$�$�Q�'rc���d�}|j|j|��}|jdh�|j|j	�d�|jj|�y)Nc��K�y�wr�rrrrr�z:BaseTaskTests.test_task_repr_name_not_str.<locals>.notmuch�r�r�z{6})rKrFr
r]rrmrs   r�test_task_repr_name_not_strz)BaseTaskTests.test_task_repr_name_not_str�sT��	�
�M�M�$�)�)�W�Y�/��	�
�
�A�3���������u�-��	�	�$�$�Q�'rc	���|jjd�d�}|j|j�}|j|j||��}t	j
|j�|j
t|�dtjt|��z�|jd�|jj|�y)NFc��"K�|�d{���S7��wrrr�s r�wait_forz7BaseTaskTests.test_task_repr_wait_for.<locals>.wait_for�s�����9��9����
�z<Task .* wait_for=%s>)rFr�rQrKr��run_brieflyr�r�r��escaper�rm)r-rr�ras    r�test_task_repr_wait_forz%BaseTaskTests.test_task_repr_wait_for�s����	�	���E�"�	��o�o�d�i�i�(���}�}�T�Y�Y���
�6�����t�y�y�)�����d��0�2�9�9�T�#�Y�3G�G�	I�	���t���	�	�$�$�T�*rc������fd�}d��d��|�}|j|jj|�d�y)Nc��Z�K����d{���}���d{���}||zS7�7��wrr)r��b�inner1�inner2s  ��r�outerz-BaseTaskTests.test_task_basics.<locals>.outer�s+������h��A��h��A��Q�3�J����s�+�'�+�)�
+�+c��K�y�wr8rrrrrz.BaseTaskTests.test_task_basics.<locals>.inner1��	�����rc��K�y�w)Ni�rrrrrz.BaseTaskTests.test_task_basics.<locals>.inner2�r�ri)r]rFrm)r-r rprrs   @@r�test_task_basicszBaseTaskTests.test_task_basics�s:���	�
	�	�
�G��������5�5�a�8�$�?rc�����tj���j��d�����fd�}	�j�|��}�j	|��j�y#�j�wxYw)Nc��K�t��wr�r�rrr�raise_errorzFBaseTaskTests.test_exception_chaining_after_await.<locals>.raise_error�s��������	c��~�K�	td��#t$r�}�j����}	|�d{���7ns#t$rb}�jt	|�t
�|j}�jt	|�|jftdf�Yd}~nd}~wwxYwYd}~yYd}~yd}~wwxYw�w)N�)r+)�KeyError�	ExceptionrKr]r#r�r"r$)r%ra�chainedrFr(r-s   ���rrz>BaseTaskTests.test_exception_chaining_after_await.<locals>.run�s������

*��q�k�!���
*��}�}�T�;�=�9��*��J�J�� �*��$�$�T�#�Y�
�;�!�o�o�G��$�$�d�7�m�W�\�\�%B�!�4�(�*�*��*��*�	��
*�sT�B=��	B:�B5�=�9�=�B5�	B(�AB#�B5�#B(�(B5�+
B=�5B:�:B=)rr�r�rKrmr@)r-rrarFr(s`  @@r�#test_exception_chaining_after_awaitz1BaseTaskTests.test_exception_chaining_after_await�sc����%�%�'�����D�!�	�	*�	��=�=��s�u�-�D��#�#�D�)��J�J�L��D�J�J�L�s�(A-�-A?c�0�����d�tj���j��d������fd�}	�j�|��}�j	|��j��j
�d�y#�j�wxYw)Nc��K�|��wrr)r%s r�process_exczYBaseTaskTests.test_exception_chaining_after_await_with_context_cycle.<locals>.process_exc�s�����I���c���K�	td��#t$r_}�j��|��}	|�d{���7n0#t$r}||ju�d|_Yd}~nd}~wwxYwYd}~yYd}~yd}~wwxYw�w)Nr�)r,r-rK�
BaseExceptionr")r%ra�	has_cyclerFr2r-s  ����rrzQBaseTaskTests.test_exception_chaining_after_await_with_context_cycle.<locals>.run�sw�����	
+��s�m�#���
+��}�}�T�;�s�+;�<��+��J�J��$�+�!$����!7�I�&*�C�O�O��+��$�	��
+�sS�A;��	A8�A3�>�:�>�A3�	A&�A!�A3�!A&�&A3�)
A;�3A8�8A;F)rr�r�rKrmr@r])r-rrar6rFr2s`  @@@r�6test_exception_chaining_after_await_with_context_cyclezDBaseTaskTests.test_exception_chaining_after_await_with_context_cycle�s{����	��%�%�'�����D�!�	�	+�	��=�=��s�u�-�D��#�#�D�)��J�J�L�����E�*��
�J�J�L�s�(B�Bc��tj�}d�}	|j||��}|j|j	��|jdt
|��|j|j��|j|j	��|jdt
|��|j|j��|jtj�5|j|�ddd�|j�y#1swY�xYw#|j�wxYw)Nc��JK�tjd��d{���y7��w�N�
�rr�rrrraz+BaseTaskTests.test_cancelling.<locals>.task������-�-��#�#�#���#�!�#� cancelling )rr�rK�assertFalse�
cancelling�assertNotInr�rhrj�assertInrkrlrmr@�r-rFrarps    r�test_cancellingzBaseTaskTests.test_cancellings����%�%�'��	$�	��
�
�d�D�F�+�A����Q�\�\�^�,����^�T�!�W�5��O�O�A�H�H�J�'��O�O�A�L�L�N�+��M�M�.�$�q�'�2�

�O�O�A�H�H�J�'��"�"�7�#9�#9�:��'�'��*�;�
�J�J�L�;�:��
�J�J�L�s$�C(D8�D,�D8�,D5�1D8�8E
c�@�tj�}d�}	|j||��}|jtjd��|j|j
��|jdt|��|j|j�d�|j|j��|jtjd��|jdt|��|j|j�d�|j|j��|j|j
��|j|j�d�|j|j��|jtj�5|j|�ddd�|j|j��|j|j!��|j#�|j|j��|j|j!��|j%�y#1swY��xYw#|j%�wxYw)Nc��K�	tjd��d{���y7�#tj$rCtj�j	�tjd��d{���7YywxYw�wr:)rr�rl�current_task�uncancelrrrraz/BaseTaskTests.test_uncancel_basic.<locals>.tasksX����
(��m�m�B�'�'�'���)�)�
(��$�$�&�/�/�1��m�m�B�'�'�'�
(�s>�A=�$�"�$�A=�$�A
A:�1A4�2A:�7A=�9A:�:A=�{�G�z�?r?rr)rr�rKrmr�rhrjrCr�r]rAr@�	cancelledrBrkrlr�rIr@rDs    r�test_uncancel_basicz!BaseTaskTests.test_uncancel_basics����%�%�'��	(�	��
�
�d�D�F�+�A��#�#�G�M�M�$�$7�8�
�O�O�A�H�H�J�'��M�M�.�$�q�'�2����Q�\�\�^�Q�/����Q�[�[�]�+��#�#�G�M�M�$�$7�8�
���^�T�!�W�5����Q�\�\�^�Q�/����Q�[�[�]�+�
�O�O�A�H�H�J�'����Q�\�\�^�Q�/����Q�[�[�]�+��"�"�7�#9�#9�:��'�'��*�;��O�O�A�K�K�M�*��O�O�A�F�F�H�%�
�J�J�L��O�O�A�K�K�M�*��O�O�A�F�F�H�%��J�J�L�;�:��
�J�J�L�s%�F/J�I?�BJ�?J�J�Jc���tj�}dtdtf�fd�}	�j||dd���}|j	|�\}}}�j|��j
|��j|��j|j�d��j||dd���}|j	|�\}}}�j
|��j|��j|��j|j�d�|j�y#|j�wxYw)Nr��timeoutc������K�tj���j�}d�d}d}��fd�}|j||�}		tj|��d{���d}|j��rF�j
�dk(r3ttj��tjurt�d}tjd��d{����||fS7��#|j��rH�j
�dk(r4ttj��tjurt�wwwxYw#t$r�	j��Y��wxYw7���w)NFc�*��d��j�y�NT�rj)ra�	timed_outs��r�
on_timeoutzdBaseTaskTests.test_uncancel_structured_blocks.<locals>.make_request_with_timeout.<locals>.on_timeout]s��� �	����
rTr)
rrHr��
call_laterr�rjrIr#�sysrnrl�TimeoutErrorrh)
r�rNrF�structured_block_finished�outer_code_reachedrT�timeout_handlerarSr-s
       @@�r�make_request_with_timeoutzPBaseTaskTests.test_uncancel_structured_blocks.<locals>.make_request_with_timeoutUsK������'�'�)�D��=�=�?�D��I�(-�%�!&��
�
"�_�_�W�j�A�N�+
+�(+�!�-�-��.�.�.�04�-�"�)�)�+�!� �M�M�O�q�0� �����1�W�5K�5K�K�>+�*�
"&���-�-��"�"�"��7�9K�K�K�[/��#�)�)�+�!� �M�M�O�q�0� �����1�W�5K�5K�K�>+�*�?L�1�"��D �
+����	�*�
+��

#�s\�AE(�
C'�"C%�#C'�)AE�E(�E&�	E(�%C'�'AE�E�E#� E(�"E#�#E(�$@皙�����?)r�rNr)
rr��floatrKrmrhr@r]rAr@)r-rFr[rrSrXrYrs`       r�test_uncancel_structured_blocksz-BaseTaskTests.test_uncancel_structured_blocksEs0����%�%�'��>	L�e�>	L�e�>	L�@	����t�%>�T�SV�%W�X�B��'�'��+�
E�I�0�2D�
�O�O�I�&����6�7��O�O�.�/�
���R�]�]�_�a�0����t�%>�Q�PT�%U�V�B��'�'��+�
E�I�0�2D�
���Y�'��O�O�5�6��O�O�.�/����R�]�]�_�a�0��J�J�L��D�J�J�L�s�DD>�>Ec�����fd�}�j|�}d�}�j||��}|j|j��j	t
j�5|j|�ddd��j|j���j|j���j|j��y#1swY�gxYw)Nc3�B�K�d��}�jd|�d��y�w�Nr\r��assertAlmostEqual��whenr-s �rr�z&BaseTaskTests.test_cancel.<locals>.gen��!������D��"�"�4��.��G���c��JK�tjd��d{���y7��w)Nr\�r<rrrraz'BaseTaskTests.test_cancel.<locals>.task�s �����-�-��%�%�%��
&�r>)rWrK�	call_soonrjrkrrlrmrhr�rKr@)r-r�rFrarps`    r�test_cancelzBaseTaskTests.test_cancel�s����	�
�!�!�#�&��	�
�M�M�$���'�����q�x�x� �
�
�
�w�5�5�
6��#�#�A�&�7��������!�������
�&��������$�	7�
6�s�,C$�$C-c�<���	�
�gd�}|D]�\�}�j���5tj��	�j�	�d��
��	��
fd�}�j	�	|��}�jtj�5}�	j|�ddd�j}�j|j|�t|�}�j|tj|df�ddd���y#1swY�jxYw#1swY��xYw)N�)rr)rr)�rgro)��rp��cancel_argsc��JK�tjd��d{���y7��wr:r<rrrr�zHBaseTaskTests.test_cancel_with_message_then_future_result.<locals>.sleep������!�-�-��+�+�+�r>c���K��j����}tjd��d{���|j��tj|g��d{���\}}|j�y7�E7��w�Nr)rKrr�rj�waitr��rar��pendingrsrFr-r�s   ����rrJzGBaseTaskTests.test_cancel_with_message_then_future_result.<locals>.coro�sb������=�=��u�w�7�D�!�-�-��*�*�*��D�K�K��-�*1�,�,��v�*>�$>�M�D�'��K�K�M�+��$>��!�0A=�A9�,A=� A;�!A=�;A=r��subTestrr�r�rKrkrlrmrnr]r$r(�r-�cases�
expected_argsrJrarqr%�actualrsrFr�s`       @@@r�+test_cancel_with_message_then_future_resultz9BaseTaskTests.test_cancel_with_message_then_future_result�s����
��+0�&�K�����+��6��-�-�/���#�#�D�)�,�"��}�}�T�4�6�2���&�&�w�'=�'=�>�"��+�+�D�1�?��l�l��� � ����=�9�.�s�3��� � ���+�+�]�A�>�@�+7�6�+0� ?�>��7�6��%�A'D�
D�AD�D�
D�D	c�<���	�
�gd�}|D]�\�}�j���5tj��	�j�	�d��
��	��
fd�}�j	�	|��}�jtj�5}�	j|�ddd�j}�j|j|�t|�}�j|tj|df�ddd���y#1swY�jxYw#1swY��xYw)Nrnrrc��JK�tjd��d{���y7��wr:r<rrrr�zKBaseTaskTests.test_cancel_with_message_then_future_exception.<locals>.sleep�rur>c���K��j����}tjd��d{���|j��tj|g��d{���\}}|j�y7�E7��wrw�rKrr�rjrxrnrys   ����rrJzJBaseTaskTests.test_cancel_with_message_then_future_exception.<locals>.coro�sc������=�=��u�w�7�D�!�-�-��*�*�*��D�K�K��-�*1�,�,��v�*>�$>�M�D�'��N�N�$�+��$>�r{rr|r~s`       @@@r�.test_cancel_with_message_then_future_exceptionz<BaseTaskTests.test_cancel_with_message_then_future_exception�s����
��+0�&�K�����+��6��-�-�/���#�#�D�)�,�%��}�}�T�4�6�2���&�&�w�'=�'=�>�"��+�+�D�1�?��l�l��� � ����=�9�.�s�3��� � ���+�+�]�A�>�@�+7�6�+0� ?�>��7�6�r�c�������tj���j���j���fd������fd�}�j	�|��}�jt�5}�j|�ddd�j}�j|jd�t|�}�j|tjddf�y#1swY�`xYw)Nc��n�K��jd�tjd��d{���y7��wr:)r�rr�r�s�rr�z@BaseTaskTests.test_cancellation_exception_context.<locals>.sleeps%������N�N�4� ��-�-��#�#�#�s�*5�3�5c����K��j����}��d{����j|jd�	|�d{���y7�,7�#tj$r}td�|�d}~wwxYw�w)N�msgrK)rKrkrjrrlr�)�
inner_task�exr�rFr-r�s  ����rrJz?BaseTaskTests.test_cancellation_exception_context.<locals>.coroso��������t�U�W�5�J��I�I��N�N�:�,�,�e�4�
6� � � �
��!���)�)�
6� ��-�2�5��
6�sE�A8�A
� A8�A�A�A�A8�A�A5�$A0�0A5�5A8)rK)r�r)
rr�r�rYrKrkr�rmrnr]r$r(rl)	r-rJrarqr%r�r�rFr�s	`     @@@r�#test_cancellation_exception_contextz1BaseTaskTests.test_cancellation_exception_contexts�����%�%�'�����D�!�� � �"��	$�	6��}�}�T�4�6�*��
�
�
�z�
*�b��#�#�D�)�+��l�l��������>�2�&�s�+������
�
#�
#�X�q�1�	3�
+�
*�s�3C$�$C-c������tj���j��d�����fd�}�j�|��}�j	tj
�5}�j
|�ddd�j}�j|jd�t|�}�j|tj
ddf�y#1swY�`xYw)Nc��JK�tjd��d{���y7��wr:r<rrrr�zJBaseTaskTests.test_cancel_with_message_before_starting_task.<locals>.sleep'r=r>c����K��j����}|jd�tj|g��d{���\}}|j	�y7��w)Nrg)rKrjrrxrn)rar�rzrFr-r�s   ���rrJzIBaseTaskTests.test_cancel_with_message_before_starting_task.<locals>.coro*sK������=�=��u�w�/�D��K�K��%�")�,�,��v�"6�6�M�D�'��N�N��7�s�AA �A�A ror)rr�r�rKrkrlrmrnr]r$r()r-rJrarqr%r�rFr�s`     @@r�-test_cancel_with_message_before_starting_taskz;BaseTaskTests.test_cancel_with_message_before_starting_task#s�����%�%�'�����D�!�	$�	��}�}�T�4�6�*��
�
�
�w�5�5�
6�"��#�#�D�)�7��l�l��������?�3�&�s�+������
�
#�
#�_�a�8�	:�
7�
6�s�)C�C#c���d�}|j|j|��}tj|j�|j	�|jtj|jj|�|j|j��|j|j��|j|j	��y)Nc��K�tjd��d{���tjd��d{���y7�"7��w)Nrrjr<rrrraz-BaseTaskTests.test_cancel_yield.<locals>.task<s6�����-�-��"�"�"��-�-��"�"�"��
#��"���A�>�A�A�A�A)
rKrFr�rrjrkrrlrmrhr�rKr@)r-rarps   r�test_cancel_yieldzBaseTaskTests.test_cancel_yield;s���	�

�M�M�$�)�)�T�V�,�����t�y�y�)�	���
�����"�"�D�I�I�$@�$@�!�	E��������!�������
�&��������$rc���|j|j���fd�}|j|j|��}tj|j��j�|j
tj�5|jj|�ddd�|j�j��|j|j��y#1swY�HxYw)Nc��&�K���d{���y7��w�Nrjr�r�s�rraz4BaseTaskTests.test_cancel_inner_future.<locals>.taskM�������G�G��
�r�)rQrFrKr�rrjrkrrlrmrhrK�r-rarpr�s   @r�test_cancel_inner_futurez&BaseTaskTests.test_cancel_inner_futureJs�����O�O�D�I�I�&��	�
�M�M�$�)�)�T�V�,�����t�y�y�)�	���
�
�
�
�w�5�5�
6��I�I�(�(��+�7�������
�&�������
�&�7�
6�s�C4�4C=c�^��|j|j���fd�}|j|j|��}tj|j��j�|j�|j
tj�5|jj|�ddd�|j|j��|j�j��|j|j��y#1swY�gxYw)Nc��&�K���d{���y7��wr�rr�s�rrazBBaseTaskTests.test_cancel_both_task_and_inner_future.<locals>.task\r�r�)
rQrFrKr�rrjrkrrlrmrhr�rKr�s   @r�&test_cancel_both_task_and_inner_futurez4BaseTaskTests.test_cancel_both_task_and_inner_futureYs�����O�O�D�I�I�&��	�
�M�M�$�)�)�T�V�,�����t�y�y�)�	���
�	���
�
�
�
�w�5�5�
6��I�I�(�(��+�7�	
�������!�������
�&�������
�&�7�
6�s�!D#�#D,c�����|j|j��|j|j����fd�}|j|j|��}tj|j�|j|j���jd�tj|j�|j|j��|j�|j�j��|jj|�}|j|d�|j|j��y)Nc��r�K���d{���	��d{���y7�7�#tj$rYywxYw�wr8�rrl)�fut1�fut2s��rraz5BaseTaskTests.test_cancel_task_catching.<locals>.taskqs:������J�J�
��
�
�
�����)�)�
��
�s0�7��7����7��4�7�4�7r9�rQrFrKr�rr��_fut_waiterr�rjrhrKrmr]r@)r-rarp�resr�r�s    @@r�test_cancel_task_catchingz'BaseTaskTests.test_cancel_task_catchingms�������t�y�y�)�����t�y�y�)��	�
�M�M�$�)�)�T�V�,�����t�y�y�)��
�
�a�m�m�T�*���������t�y�y�)��
�
�a�m�m�T�*�	���
�������(�)��i�i�*�*�1�-������b�!��������'rc������|j|j��|j|j��|j|j�����fd�}|j|j|��}tj|j�|j|j���jd�tj|j�|j|j��|j�|j�j��tj|j�|j|j���jd�|jj|�}|j|d�|j�j��|j|j��y)Nc���K���d{���	��d{�����d{���}|S7�7�#tj$rY�%wxYw7�#�wrr�)r�r�r��fut3s ���rraz5BaseTaskTests.test_cancel_task_ignoring.<locals>.task�sL������J�J�
��
�
��*�C��J�

�����)�)�
��
���s?�A�%�A�)�'�)�A�A�A�)�?�A�?�Ar9r�)r-rarpr�r�r�r�s    @@@r�test_cancel_task_ignoringz'BaseTaskTests.test_cancel_task_ignoring�sC������t�y�y�)�����t�y�y�)�����t�y�y�)��	�
�M�M�$�)�)�T�V�,�����t�y�y�)��
�
�a�m�m�T�*���������t�y�y�)��
�
�a�m�m�T�*�	���
�������(�)����t�y�y�)��
�
�a�m�m�T�*�������i�i�*�*�1�-������b�!�������)�*��������'rc����tj�}�j|���fd�}�j||����j	�j���j
tj|j���j�j���j�j���j	�j��j	�j��y)Nc���K��j��j�j�tjd��d{���y7��w)Nr�rj)rjrh�_must_cancelrr��r-rps��rraz4BaseTaskTests.test_cancel_current_task.<locals>.task�s:�����
�H�H�J��O�O�A�N�N�+��-�-��$�$�$��
%�s�AA�A
�A�
rr�r�rKr@rKrkrlrmrhr�r�rjrDs`  @r�test_cancel_current_taskz&BaseTaskTests.test_cancel_current_task�s�����%�%�'�����D�!�	�
�M�M�$���'���������'�����"�"�D�$;�$;�Q�	@��������!�������
�&�������(��������$rc����	tj�}�j|���fd�}�j||����j	�j���j
tj|j���j�j���j�j���j	�j��j	�j��y)Nc��d�K��j��j�j�y�wr�)rjrhr�r�s��rraz.BaseTaskTests.test_cancel_at_end.<locals>.task�s#�����
�H�H�J��O�O�A�N�N�+��s�-0r�rDs`  @r�test_cancel_at_endz BaseTaskTests.test_cancel_at_end�s����9��%�%�'�����D�!�	�

�M�M�$���'���������'�����"�"�D�$;�$;�Q�	@��������!�������
�&�������(��������$rc��������tj���j�fd��dx���j����fd�������fd�}�j	�|����jtj�5�j��ddd��j�j���j�j���j�j��y#1swY�gxYw)Nc�$���j�Sr)r@rNs�rrTz8BaseTaskTests.test_cancel_awaited_task.<locals>.<lambda>�s����
�
�rc��&�K���d{���y7��wrrr�s�r�nestedz6BaseTaskTests.test_cancel_awaited_task.<locals>.nested��������I�I�r�c���K��j�����tjd��d{����j���d{���y7�7��wrw�rKrr�rj)rFr��nested_taskr-ras�����rrJz4BaseTaskTests.test_cancel_awaited_task.<locals>.coro�sN������-�-��f�h�7�K��-�-��"�"�"�
�K�K�M����

#��
��!�0A�A�A�
A�A�A)
rr�r�rQrKrkrlrmrhrK)r-rJr�rFr�r�ras` @@@@@r�test_cancel_awaited_taskz&BaseTaskTests.test_cancel_awaited_task�s�����%�%�'�����,�-�!�!��{��o�o�d�#��	�
	�
	��}�}�T�4�6�*��
�
�
�w�5�5�
6��#�#�D�)�7�	
������(�)�����-�-�/�0�����
�
��(�7�
6�s�D�D	c�0�||vrtd|�d|�d���y)Nztext z not found in:
>>>z<<<�r�)r-�text�substrs   r�assert_text_containsz"BaseTaskTests.assert_text_contains�s*�������v�j�0C�D�6��M�N�N�rc�~����tj���j��d�����fd�}�j�|��}	�j	|��jd�y#tj$r;tj�}�j|d��j|d�YywxYw)Nc��JK�tjd��d{���y7��wr:r<rrrr�zEBaseTaskTests.test_cancel_traceback_for_future_result.<locals>.nested�������-�-��#�#�#�r>c���K��j����}tjd��d{���|j�|�d{���y7�7��wrwr�)rarFr�r-s ���rrJzCBaseTaskTests.test_cancel_traceback_for_future_result.<locals>.coro�sD������=�=��v�x�0�D��-�-��"�"�"��K�K�M��J�J�
#���r��CancelledError did not occur�await asyncio.sleep(10)zawait task  # search target�
rr�r�rKrm�failrl�	traceback�
format_excr��r-rJrar�rFr�s`   @@r�'test_cancel_traceback_for_future_resultz5BaseTaskTests.test_cancel_traceback_for_future_result�s�����%�%�'�����D�!�	$�	��}�}�T�4�6�*��	6��#�#�D�)�
�I�I�4�5��
�%�%�	I��%�%�'�B��%�%�b�*C�D��%�%�b�*G�H�		I���A.�.AB<�;B<c�~����tj���j��d�����fd�}�j�|��}	�j	|��jd�y#tj$r;tj�}�j|d��j|d�YywxYw)Nc��JK�tjd��d{���y7��wr:r<rrrr�zHBaseTaskTests.test_cancel_traceback_for_future_exception.<locals>.nestedr�r>c���K��j����}tjd��d{���|j�tj|g��d{���\}}|j�y7�F7��wrwr�)rar�rzrFr�r-s   ���rrJzFBaseTaskTests.test_cancel_traceback_for_future_exception.<locals>.coros^������=�=��v�x�0�D��-�-��"�"�"��K�K�M�")�,�,��v�"6�6�M�D�'��N�N��
#��6�s!�0A>�A:�-A>�!A<�"A>�<A>r�r�z!task.exception()  # search targetr�r�s`   @@r�*test_cancel_traceback_for_future_exceptionz8BaseTaskTests.test_cancel_traceback_for_future_exceptions�����%�%�'�����D�!�	$�	��}�}�T�4�6�*��		6��#�#�D�)�
�I�I�4�5���%�%�	5��%�%�'�B��%�%�b�*C�D��%�%�b�3�
5�		5�r�c�L�����fd�}�j|��d���fd�}�j�|��}�jt�5}�j	|�ddd��jt
j�d��j|j���j�d��jd�j��|j��jtj�j|�y#1swY��xYw)Nc3��K�d��}�jd|�d��}�jd|�d��}�jd|�d��y�w)Nr]皙�����?�333333�?rcres �rr�z:BaseTaskTests.test_stop_while_run_in_complete.<locals>.gen+sO������D��"�"�3��-��9�D��"�"�3��-��9�D��"�"�3��-��I���AArc���K��dkr>tjd��d{����dz
��dk(r�j��dkr�=yy7�&�w)Nr;r]r�)rr��stop)rF�xs��rraz;BaseTaskTests.test_stop_while_run_in_complete.<locals>.task8sE������b�&��m�m�C�(�(�(��Q�����6��I�I�K�	�b�&�(�s�A
�A�#A
�A
z+Event loop stopped before Future completed.r�r�)rWrKrkr�rmr]r\rnr@r�rd�timerjrrl)r-r�rarprqrFr�s`    @@r�test_stop_while_run_in_completez-BaseTaskTests.test_stop_while_run_in_complete)s����	��!�!�#�&��
��	 �
�M�M�$���'��
�
�
�|�
,���#�#�A�&�-�����R�\�\�*�F�	H��������"�����A�����s�D�I�I�K�0�	���
����'�0�0�$�2I�2I�1�M�-�
,�s�D�D#c���d�}|j|j|��}|jtd�5d|_ddd�|jj|�y#1swY�%xYw)Nc��K�y�wrrrrrrJz.BaseTaskTests.test_log_traceback.<locals>.coroMrerzcan only be set to FalseT)rKrFr�r��_log_tracebackrm�r-rJras   r�test_log_tracebackz BaseTaskTests.test_log_tracebackLsZ��	��}�}�T�Y�Y���/��
�
#�
#�J�0J�
K�"&�D��L��	�	�$�$�T�*�L�
K�s�A'�'A0c�8�����fd�}�j|�}�j|tjd����j|tjd������fd�}|j	�j||���}�j|d��j
d|j��|j	�j||���}�j
d|j���j|d�y)Nc3�n�K�d��}�jd|�d��}�jd|�d��y�w�Nr]r�333333�?rcres �rr�z$BaseTaskTests.test_wait.<locals>.genW�8������D��"�"�3��-��7�D��"�"�4��.��J���25r]r�c����K�tj��g��d{���\}}�j|t��g���j|t��y7�?�wr8�rrxr]�set�r�rzr�rr-s  ���rr�z$BaseTaskTests.test_wait.<locals>.foocsR�����")�,�,��1�v�"6�6�M�D�'����T�3��1�v�;�/����W�c�e�,��7�s�A �A�AA r9�rWrKrr�rmr]rdr��r-r�rFr�r�r�rs`    @@r�	test_waitzBaseTaskTests.test_waitUs����	��!�!�#�&���M�M�$��
�
�c� 2�3���M�M�$��
�
�d� 3�4��	��%�%�d�m�m�D�#�%�&@�A������b�!����t�T�Y�Y�[�1��%�%�d�m�m�D�#�%�&@�A�����t�T�Y�Y�[�1�����b�!rc��d�}|jj|d��}|j|jtj|||jj|d��g��}|jj|�\}}|j
|�|jtd�|D��ddh�y)Nc��K�|S�wrr��ss rrJz:BaseTaskTests.test_wait_duplicate_coroutines.<locals>.corot������H�r3r��spamc3�<K�|]}|j����y�wrr���.0r�s  r�	<genexpr>z?BaseTaskTests.test_wait_duplicate_coroutines.<locals>.<genexpr>~s����6��A�Q�X�X�Z����)	rF�create_taskrKrrxrmr@r]r�)r-rJ�crar�rzs      r�test_wait_duplicate_coroutinesz,BaseTaskTests.test_wait_duplicate_coroutinesrs���	��I�I�!�!�$�v�,�/���}�}��I�I��L�L�!�Q��	�	� 5� 5�d�6�l� C�D�E�G���	�	�4�4�T�:�
��g�����!�����6��6�6���8H�Irc�`�|jt|jjt	j
t
���t	jd�}t	j
|gd��}|jt|jj|�|j�y)Nr\r��return_when)	rkr�rFrmrrxr�r�r@)r-�
sleep_coro�	wait_coros   r�test_wait_errorszBaseTaskTests.test_wait_errors�s}�������	�	�4�4��L�L����	!�
�]�]�4�(�
��L�L�*��2�>�	����*��)�)�6�6�	�	C�	���rc����fd�}�j|�}�j|tjd��}�j|tjd��}�j|tj||gtj
���}|j
|�\}}�j|h|��j|h|��j|j���j|j���j|j���jd|j��|jd�|j
tj||g��y)Nc3�n�K�d��}�jd|�d��}�jd|�d��y�w)Nr\rr]rcres �rr�z4BaseTaskTests.test_wait_first_completed.<locals>.gen�s8������D��"�"�4��.��7�D��"�"�3��-��I�r�r\r]rr;)rWrKrr�rx�FIRST_COMPLETEDrmr]r@r�rh�assertIsNoner�rdr��advance_time)r-r�rFr�rrar�rzs`       r�test_wait_first_completedz'BaseTaskTests.test_wait_first_completed�s+���	��!�!�#�&���M�M�$��
�
�d� 3�4���M�M�$��
�
�c� 2�3���}�}���L�L�!�Q��W�-D�-D�E�G���/�/��5�
��g����!��d�#����!��g�&��������"��������!����!�(�(�*�%����s�D�I�I�K�0�	
���"��������a��V� 4�5rc�r�d�}d�}|j|j|��}|j|j|��}|j|jtj||gtj���}|jj|�\}}|j
||h|�|j|j��|j|j��|j|j��|j|j��y)Nc��JK�tjd��d{���y7��wrwr<rrr�coro1z2BaseTaskTests.test_wait_really_done.<locals>.coro1�s�����-�-��"�"�"�r>c��K�tjd��d{���tjd��d{���y7�"7��wrwr<rrr�coro2z2BaseTaskTests.test_wait_really_done.<locals>.coro2�s3�����-�-��"�"�"��-�-��"�"�"�
#��"�r�r)rKrFrrxrrmr]rhr�rr�)r-rrr�rrar�rzs        r�test_wait_really_donez#BaseTaskTests.test_wait_really_done�s���	#�	#�
�M�M�$�)�)�U�W�-���M�M�$�)�)�U�W�-���}�}��I�I��L�L�!�Q��W�-D�-D�E�G���	�	�4�4�T�:�
��g����!�Q���&��������!����!�(�(�*�%��������!����!�(�(�*�%rc�@���fd�}�j|�}�j|tjd��}d�}�j||��}�j|tj||gtj
���}|j
|�\}}�j|h|��j|h|��jd|j��|jd�|j
tj||g��y)Nc3�B�K�d��}�jd|�d��y�wrbrcres �rr�z4BaseTaskTests.test_wait_first_exception.<locals>.gen�rgrhr\c�� K�td���w)N�err)�ZeroDivisionErrorrrrr%z4BaseTaskTests.test_wait_first_exception.<locals>.exc�s����#�E�*�*�s�rrr;�rWrKrr�rx�FIRST_EXCEPTIONrmr]rdr�r
�	r-r�rFr�r%rrar�rzs	`        r�test_wait_first_exceptionz'BaseTaskTests.test_wait_first_exception�s����	�
�!�!�#�&��
�M�M�$��
�
�d� 3�4��	+�
�M�M�$���&���}�}���L�L�!�Q��W�-D�-D�E�G���/�/��5�
��g����!��d�#����!��g�&����q�$�)�)�+�.�	
���"��������a��V� 4�5rc� ���fd�}�j|�}�j|tjd��}d�}�j||��}tj||gtj
��}|j
|�\}}�j|h|��j|h|��jd|j��|jd�|j
tj||g��y)Nc3�n�K�d��}�jd|�d��}�jd|�d��y�w)Nr\rrJrcres �rr�z<BaseTaskTests.test_wait_first_exception_in_wait.<locals>.gen��8������D��"�"�4��.��7�D��"�"�4��.��J�r�r\c��^K�tjd��d{���td��7��w)NrJr�rr�rrrrr%z<BaseTaskTests.test_wait_first_exception_in_wait.<locals>.exc�s(�����-�-��%�%�%�#�E�*�*�
&���-�+�-rrJr;rrs	`        r�!test_wait_first_exception_in_waitz/BaseTaskTests.test_wait_first_exception_in_wait�s����	��!�!�#�&��
�M�M�$��
�
�d� 3�4��	+�
�M�M�$���&���|�|�Q��F��0G�0G�H���/�/��5�
��g����!��d�#����!��g�&����t�T�Y�Y�[�1�	
���"��������a��V� 4�5rc�������fd�}�j|�}�j|tjd���d�}�j||������fd�}|j	�j||����jd|j
��|j	�j||����jd|j
��y)Nc3�n�K�d��}�jd|�d��}�jd|�d��y�wr�rcres �rr�z3BaseTaskTests.test_wait_with_exception.<locals>.gen�r�r�r]c��^K�tjd��d{���td��7��w)Nr��reallyr"rrr�sleeperz7BaseTaskTests.test_wait_with_exception.<locals>.sleeper
s(�����-�-��%�%�%�#�H�-�-�
&�r#c���K�tj��g��d{���\}}�jt|�d��j|t	��t	d�|D��}�jt|�d�y7�j�w)Nr�c3�BK�|]}|j���|���y�wr)rnr�s  rr�zFBaseTaskTests.test_wait_with_exception.<locals>.foo.<locals>.<genexpr>s����F�D�q�A�K�K�M�,E��D�s��r)rrxr]�lenr�)r�rz�errorsr�rr-s   ���rr�z3BaseTaskTests.test_wait_with_exception.<locals>.fooso�����")�,�,��1�v�"6�6�M�D�'����S��Y��*����W�c�e�,��F�D�F�F�F����S��[�!�,�	7�s�B�B	�A+Br�)rWrKrr�rmrdr�)r-r�rFr)r�r�rs`    @@r�test_wait_with_exceptionz&BaseTaskTests.test_wait_with_exception�s����	��!�!�#�&���M�M�$��
�
�c� 2�3��	.�
�M�M�$��	�*��	-�	
����
�
�d�C�E� :�;����t�T�Y�Y�[�1�����
�
�d�C�E� :�;����t�T�Y�Y�[�1rc�������fd�}�j|�}�j|tjd����j|tjd������fd�}|j	�j||����jd|j
��|jd�|j	tj��g��y)Nc3��K�d��}�jd|�d��}�jd|�d��}�jd|�d��y�w)Nr]rr��)\��(�?rcres �rr�z1BaseTaskTests.test_wait_with_timeout.<locals>.gensO������D��"�"�3��-��7�D��"�"�4��.��7�D��"�"�4��.��J�r�r]r�c����K�tj��gd���d{���\}}�j|t�g���j|t�g��y7�@�w)Nr1�rNr�r�s  ���rr�z1BaseTaskTests.test_wait_with_timeout.<locals>.foo-sT�����")�,�,��1�v�t�"D�D�M�D�'����T�3��s�8�,����W�c�1�#�h�/�E�s�A#�A!�AA#r1r;)	rWrKrr�rmrdr�r
rx)r-r�rFr�r�rs`   @@r�test_wait_with_timeoutz$BaseTaskTests.test_wait_with_timeouts����	��!�!�#�&���M�M�$��
�
�c� 2�3���M�M�$��
�
�d� 3�4��	0�
	
����
�
�d�C�E� :�;����t�T�Y�Y�[�1�	
���"��������a��V� 4�5rc�:���fd�}�j|�}�j|tjd��}�j|tjd��}|j	tj
||gd���\}}�j
|t|g���j
|t|g���jd|j��|jd�|j	tj
||g��y)Nc3��K�d��}�jd|�d��}�jd|�d��}�jd|�d��y�wr�rcres �rr�z8BaseTaskTests.test_wait_concurrent_complete.<locals>.gen;sO������D��"�"�3��-��7�D��"�"�4��.��7�D��"�"�3��-��I�r�r]r�r3r;)rWrKrr�rmrxr]r�rdr�r
)r-r�rFr�rr�rzs`      r�test_wait_concurrent_completez+BaseTaskTests.test_wait_concurrent_complete9s����	��!�!�#�&���M�M�$��
�
�c� 2�3���M�M�$��
�
�d� 3�4���/�/��L�L�!�Q���-�/�
��g�	
����s�A�3�x�(�����#�q�c�(�+����s�D�I�I�K�0�	
���"��������a��V� 4�5rc������fd�}�j|�}�j|tjd����j|tjd������fd�}|j	�j||���}�j|d��j
d|j��y)Nc3�n�K�d��}�jd|�d��}�jd|�d��y�wr�rcres �rr�z;BaseTaskTests.test_wait_with_iterator_of_tasks.<locals>.genVr�r�r]r�c����K�tjt��g���d{���\}}�j|t	��g���j|t	��y7�?�wr8)rrx�iterr]r�r�s  ���rr�z;BaseTaskTests.test_wait_with_iterator_of_tasks.<locals>.foobsV�����")�,�,�t�Q��F�|�"<�<�M�D�'����T�3��1�v�;�/����W�c�e�,��=�s�$A)�A'�AA)r9r�r�s`    @@r� test_wait_with_iterator_of_tasksz.BaseTaskTests.test_wait_with_iterator_of_tasksTs����	��!�!�#�&���M�M�$��
�
�c� 2�3���M�M�$��
�
�d� 3�4��	��%�%�d�m�m�D�#�%�&@�A������b�!����t�T�Y�Y�[�1rc�j����d���j�����fd�}�j|��y)Nc��K�|S�wrr)r�s r�funcz/BaseTaskTests.test_wait_generator.<locals>.funcnr�r3c��
�K����fd�td�D�}tj|tj���d{���\}}�j	t|�d��j	t|�d�y7�>�w)Nc3�N�K�|]}�j��|�����y�wr)rK)r��ir?rFr-s  ���rr�zBBaseTaskTests.test_wait_generator.<locals>.main.<locals>.<genexpr>ts!�����E�9�a�T�]�]�4��a��1�9�s�"%r;rr)r�rrx�
ALL_COMPLETEDr]r,)rr�rzr?rFr-s   ���r�mainz/BaseTaskTests.test_wait_generator.<locals>.mainss`�����E�5��9�E�E�")�,�,�u�'�BW�BW�"X�X�M�D�'����S��Y��+����S��\�1�-�Y�s�?B�B�?B�rWrm)r-rDr?rFs` @@r�test_wait_generatorz!BaseTaskTests.test_wait_generatorms/���	��!�!�#��	.�	
�����'rc������	�
�d�}|j|��	d�	_t��d�
��	�
fd�}|dd��|dd��|dd	�����fd
�}�	j|j	�	|���}|jd�	j
��|jd|ddv�|jd|ddv�|j|dd	�y)Nc3�,K�d��d��d��d��y�w�NrrJrrrrr�z,BaseTaskTests.test_as_completed.<locals>.gen~s�����G��G��J��G���g�?Fc���K�tj|��d{����j|��sd�vrd�vrd��jd�|S7�4�w)Nr�rTg�Q���?)rr��addr
)�dtr��	completedrF�time_shifteds  ���rr)z0BaseTaskTests.test_as_completed.<locals>.sleeper�sS������-�-��#�#�#��M�M�!���C�9�$4��	�9I�#���!�!�$�'��H�
$�s�A�A�5ArJr�rr�rc���K�g}tj���g�D]}|j|�d{�����|S7��wr�r�as_completed�append)�valuesr�r�rrs  ���rr�z,BaseTaskTests.test_as_completed.<locals>.foo�s?������F��)�)�1�a��)�4���
�
�A�g�&�5��M�&�s�.A�>
�
Ar�)	rW�slow_callback_durationr�rmrKrdr�rhr])r-r�r)r�r�r�rrrNrFrOs     @@@@@@r�test_as_completedzBaseTaskTests.test_as_completed|s����	��!�!�#�&��&)��#��E�	���	�
�D�#����D�#����D�#���	��%�%�d�m�m�D�#�%�&@�A�����t�T�Y�Y�[�1�����s�2�A�w��'�����s�2�A�w��'�����Q���%rc�����d�}|j|���jtjdd����jtjdd������fd�}�j	|j�|���}|j
t|�d|�|j
|dd	�|j
|d
dd�|j|d
d
tj�|jd�j���jd��j	tj��g��y)
Nc3�,K�d��d��d��d��y�w)Nrr]rrrrr�z9BaseTaskTests.test_as_completed_with_timeout.<locals>.gen�s������G��G��I�rJr]r�r�rc���K�g}tj��gd��D]3}|r�jd�	|�d{���}|jd|f��5|S7�#tj$r}|jd|f�Yd}~�ed}~wwxYw�w)N���Q��?r3g{�G�z�?rr�)rrRr
rSrW)rTr�r;r%r�rrFs    ���rr�z9BaseTaskTests.test_as_completed_with_timeout.<locals>.foo�s�������F��)�)�1�a�&�$�?����%�%�d�+�,���A��M�M�1�a�&�)�@��M�	 ���+�+�,��M�M�1�c�(�+�+��,�s>�2B�A�A�A�B�A�B	�,B�?B�B	�	Br�r)rr�rrZr;)rWrrr�rmrKr]r,r_rWrdr�r
rx)r-r�r�r�r�rrFs    @@@r�test_as_completed_with_timeoutz,BaseTaskTests.test_as_completed_with_timeout�s���	��!�!�#�&�����W�]�]�3��4�5�����W�]�]�4��5�6��
	��%�%�d�m�m�D�#�%�&@�A������S��1�c�*�����Q���*�����Q����A�&����c�!�f�Q�i��)=�)=�>����t�T�Y�Y�[�1�	
���"��������a��V� 4�5rc����d�}�j|�}tjdd����fd�}|j�j	||���y)Nc3�$K�d��d��d��y�wrIrrrrr�z@BaseTaskTests.test_as_completed_with_unused_timeout.<locals>.gen�s������G��J���rJr�c���K�tj�gd��D]}|�d{���}�j|d�� y7��w)Nrr3r�)rrRr])r�r;r�r-s  ��rr�z@BaseTaskTests.test_as_completed_with_unused_timeout.<locals>.foo�s:������)�)�1�#�q�9���G��� � ��C�(�:��s�!A�>�A)rWrr�rmrK)r-r�rFr�r�s`   @r�%test_as_completed_with_unused_timeoutz3BaseTaskTests.test_as_completed_with_unused_timeout�sL���	�
�!�!�#�&���M�M�$��$��	)�
	
����
�
�d�C�E� :�;rc������d�}�j|��tjdd�}tjdd�}||h����fd�}�j|��y)Nc3�$K�d��d��d��y�w)Nr皙�����?rrrrr�z9BaseTaskTests.test_as_completed_reverse_wait.<locals>.gen�s�����G��J��G�r^rcr�r]rc���K�ttj���}�jt	|�d�|d�d{���}�j|d��jd�j
���jd�|d�d{���}�j|d��jd�j
��y7��7�9�w)Nr�rr�rcrrr])�listrrRr]r,rdr�r
)�futsr��y�fsrFr-s   ���rr�z:BaseTaskTests.test_as_completed_reverse_wait.<locals>.test�s��������,�,�R�0�1�D����S��Y��*��1�g�
�A����Q��$��"�"�4�����5����d�#��1�g�
�A����Q��$��"�"�4�����5�
���s%�AC�C
�AC�C�8C�C)rWrr�rm)r-r�r�rr�rhrFs`    @@r�test_as_completed_reverse_waitz,BaseTaskTests.test_as_completed_reverse_wait�sZ���	�
�!�!�#�&���M�M�$��$���M�M�$��$����V��
	6�	
�����'rc������fd�}tjdd�}tjdd�}||h���fd�}�j|�}|j|��y)Nc3�n�K�d��}�jd|�d��}�jd|�d��y�w)Nrcrrcres �rr�z7BaseTaskTests.test_as_completed_concurrent.<locals>.gen�r r�rcr�rc��X�K�ttj���}�jt	|�d�tj
|D�cgc]}tj|���c}��d{���\}}�jtd�|D��ddh�ycc}w7�1�w)Nr�c3�<K�|]}|j����y�wrr�r�s  rr�zKBaseTaskTests.test_as_completed_concurrent.<locals>.test.<locals>.<genexpr>s���� :�T������T�r�r�r)rerrRr]r,rxr�r�)rfr�r�rzrhr-s    ��rr�z8BaseTaskTests.test_as_completed_concurrent.<locals>.tests��������,�,�R�0�1�D����S��Y��*�")�,�,�7;�<�t���&�&�s�+�t�<�#��M�D�'�
���S� :�T� :�:�S�#�J�G��=��s�A
B*�B#�,
B*�6B(�72B*)rr�rWrm)r-r�r�rr�rFrhs`     @r�test_as_completed_concurrentz*BaseTaskTests.test_as_completed_concurrent�s[���	�
�M�M�$��$���M�M�$��$����V��	H��!�!�#�&�������'rc���d���fd�}|j|j|��}|jj|�|j�}|j	t|�ddh�|j	t
|�d�y)Nc��K�|S�wrrr�s rrJzBBaseTaskTests.test_as_completed_duplicate_coroutines.<locals>.coror�r3c���K�g}�d�}tj||�d�g�D]}|j|�d{�����|S7��w)N�hamr�rQ)r�rr�rJs   �rr�zDBaseTaskTests.test_as_completed_duplicate_coroutines.<locals>.runnersN������F��U��A��)�)�1�a��f��*>�?���
�
�A�g�&�@��M�&�s�<A�A
�
Arrr�r�)rKrFrmr�r]r�r,)r-r�r�r�rJs    @r�&test_as_completed_duplicate_coroutinesz4BaseTaskTests.test_as_completed_duplicate_coroutinessn���	�	��m�m�D�I�I�v�x�0���	�	�$�$�S�)����������V��u�f�o�6�����V��a�(rc���d�}|�}|j|j�tj|g�}|j	t
d�5t
|�ddd�y#1swYyxYw)Nc��K�y�wr8rrrrrJzDBaseTaskTests.test_as_completed_coroutine_without_loop.<locals>.coror"rr�)r�r@rrRr�r�re)r-rJr�rfs    r�(test_as_completed_coroutine_without_loopz6BaseTaskTests.test_as_completed_coroutine_without_loopsW��	�
�F�������� ��#�#�Q�C�(��
�
#�
#�L�2I�
J���J�K�
J�
J�s�A'�'A0c�f����j�}d����fd�}|j|��y)Nc��K�y�wr8rrrrrJzHBaseTaskTests.test_as_completed_coroutine_use_running_loop.<locals>.coro,r"rc����K�ttj��g��}�jt	|�d��j|d�d{���d�y7�
�w)Nrrr9)rerrRr]r,)rfrJr-s ��rr�zHBaseTaskTests.test_as_completed_coroutine_use_running_loop.<locals>.test/sL�������,�,�d�f�X�6�7�D����S��Y��*����4��7�]�B�/�]�s�AA#�A!�A#rE)r-rFr�rJs`  @r�,test_as_completed_coroutine_use_running_loopz:BaseTaskTests.test_as_completed_coroutine_use_running_loop)s-����!�!�#��	�	0�
	
�����'rc�J���fd�}�j|�}d�}�j||dd��}|j|��j|j	���j|j
�d��jd|j��y)Nc3�n�K�d��}�jd|�d��}�jd|�d��y�w)Nrcr]rcres �rr�z%BaseTaskTests.test_sleep.<locals>.gen8s8������D��"�"�4��.��:�D��"�"�3��-��J�r�c��K�tj|dz��d{���tj|dz|��d{���}|S7�'7��w)Nr�r<)rM�argr�s   rr)z)BaseTaskTests.test_sleep.<locals>.sleeperAsA�����-�-��1��%�%�%��
�
�b��d�C�0�0�C��J�
&��0�s �A
�A� A
�A�A
�A
r]�yeah)	rWrKrmrhr�r]r�rdr�)r-r�rFr)rps`    r�
test_sleepzBaseTaskTests.test_sleep6s����	��!�!�#�&��	�

�M�M�$���V� 4�5������"��������!��������V�,����s�D�I�I�K�0rc������fd�}�j|�}�j|tjdd��}d�|j���fd�}||_tj|��j�j�|j�tj|��j�j�y)Nc3�B�K�d��}�jd|�d��y�wrbrcres �rr�z,BaseTaskTests.test_sleep_cancel.<locals>.genNrgrhr\rc����||g|�����Srr)�delay�callbackr$�handle�orig_call_laters   ��rrUz3BaseTaskTests.test_sleep_cancel.<locals>.call_laterZs���$�U�H�<�t�<�F��Mr)rWrKrr�rUr�rr@�
_cancelledrjrh)r-r�rFrprUr�r�s`    @@r�test_sleep_cancelzBaseTaskTests.test_sleep_cancelLs����	�
�!�!�#�&���M�M�$��
�
�d�F� ;�<�����/�/��	�
%������t�$�����*�*�+�	���
����t�$�����)�)�*rc�������fd�}�j|��d�����fd�}|�}�j�j|�d��jd�j	��y)Nc3�n�K�d��}�jd|�d��}�jd|�d��y�w)Nr]r�rcres �rr�z9BaseTaskTests.test_task_cancel_sleeping_task.<locals>.genjs8������D��"�"�3��-��7�D��"�"�4��.��I�r�c��JK�tj|��d{���y7��wrr<)rMs rr�z;BaseTaskTests.test_task_cancel_sleeping_task.<locals>.sleepsr=r>c����K��j��d��}�jd|j�	|�d{���y7�#tj$rYywxYw�w)Nr�r]zslept inrK)rKrUrjrrl)r)rFr-r�s ���r�doitz:BaseTaskTests.test_task_cancel_sleeping_task.<locals>.doitvsZ������m�m�D�%��+�6�G��O�O�C����0�
"��
�
�"�	���)�)�
#�"�
#�s8�5A�A�A�A�A�A�A�A�A�ArKr])rWr]rmrdr�)r-r�r��doerrFr�s`   @@r�test_task_cancel_sleeping_taskz,BaseTaskTests.test_task_cancel_sleeping_taskhs^���	��!�!�#�&��	$�	"��v������0�0��6��D����s�D�I�I�K�0rc�:��|j|j���fd�}|j|j|��}tj|j�|j|j��|j�tj|j�|jtj|jj|�|j|j�|j�j��y)Nc��&�K���d{���y7��wrrr�s�rrJz:BaseTaskTests.test_task_cancel_waiter_future.<locals>.coro�r�r�)rQrFrKr�rr�r�rjrkrrlrmrrhrK)r-rJrar�s   @r�test_task_cancel_waiter_futurez,BaseTaskTests.test_task_cancel_waiter_future�s�����o�o�d�i�i�(��	��}�}�T�Y�Y���/�����t�y�y�)��
�
�d�&�&��,����
����t�y�y�)�����"�"�D�I�I�$@�$@�$�	H����$�*�*�+�����
�
��(rc��d�}|�}|j|j|�}|jtd�5|j	d�ddd�|jtd�5|jt
��ddd�|j|jj|�d�y#1swY�mxYw#1swY�AxYw)Nc��K�y�w)Nr�rrrrr�z4BaseTaskTests.test_task_set_methods.<locals>.notmuch�r�rznot support set_resultr�znot support set_exceptionr�)	rKrFr�r�r��
set_exceptionr�r]rm)r-r�r�ras    r�test_task_set_methodsz#BaseTaskTests.test_task_set_methods�s���	��i���}�}�T�Y�Y��,��
�
#�
#�L�2J�
K��O�O�D�!�L��
#�
#�L�2M�
N����z�|�,�O�	
����I�I�(�(��.��	�
L�
K��O�
N�s�B;�-C�;C�Cc�:���Gd�dtj�}||j���d���fd�}|j|j|��}t	j
|j�|j
�j�t�}�j|�t	j
|j�|j|��|j
|j��|j|j��y)Nc�(��eZdZ�fd�Z�fd�Z�xZS)�2BaseTaskTests.test_step_result_future.<locals>.Futc�2��d|_t�|�|i|��y�NF)�cb_addedrUr�)r-r$�kwdsrHs   �rr�z;BaseTaskTests.test_step_result_future.<locals>.Fut.__init__�s��� %��
��� �$�/�$�/rc�2��d|_t�|�|i|��yrQ)r�rUr��r-r$�kwargsrHs   �rr�zDBaseTaskTests.test_step_result_future.<locals>.Fut.add_done_callback�s��� $��
���)�4�:�6�:r�r2r3r4r�r��
__classcell__�rHs@r�Futr��s���
0�
;�
;rr�rNc��&�K���d{����y7��wrr)r�r�s��r�wait_for_futurez>BaseTaskTests.test_step_result_future.<locals>.wait_for_future�s������Y�F�Y�r�)rrOrFrKr�rrhr��objectr�r�r�rr�)r-r�r�rpr�r�r�s     @@r�test_step_result_futurez%BaseTaskTests.test_step_result_future�s����	;�'�.�.�	;��t�y�y�!����	�
�M�M�$�)�)�_�%6�7�����t�y�y�)�������%��h�����s�����t�y�y�)��
�
�c�6�"��������!����!�(�(�*�%rc������fd�}�j|�}d��t����fd�}�j||��}tj|�|j��j
|j���jttj|��j|j���j
|j���j|j���y)Nc3�B�K�d��}�jd|�d��y�wrbrcres �rr�z;BaseTaskTests.test_baseexception_during_cancel.<locals>.gen�rgrhc��JK�tjd��d{���y7��wr:r<rrrr)z?BaseTaskTests.test_baseexception_during_cancel.<locals>.sleeper�r=r>c��d�K�	���d{���y7�#tj$r��wxYw�wrr�)�base_excr)s��r�notmutchz@BaseTaskTests.test_baseexception_during_cancel.<locals>.notmutch�s.�����
��i�����)�)�
���
�s �0�
���0��-�0)
rW�
SystemExitrKr�rrjr@r�rkrhrKr�rn)r-r�rFr�rar�r)s`    @@r� test_baseexception_during_cancelz.BaseTaskTests.test_baseexception_during_cancel�s����	�
�!�!�#�&��	$��<��	��}�}�T�8�:�.�����t�$����
��������%����*�j�&<�&<�d�C�����	�	��$�������)�*��
�
�d�n�n�&��1rc���d�}|jtj|��d�}|jtj|��d�}|jtj|��|jtjt	j
���|jtjt	j���y)Nc��yrrrrr�fnz2BaseTaskTests.test_iscoroutinefunction.<locals>.fn�s��rc3�K�d��y�wrrrrr�fn1z3BaseTaskTests.test_iscoroutinefunction.<locals>.fn1�s	�����s�c��K�y�wrrrrr�fn2z3BaseTaskTests.test_iscoroutinefunction.<locals>.fn2�rer)r@r�iscoroutinefunctionrhr�Mock�	AsyncMock)r-r�r�r�s    r�test_iscoroutinefunctionz&BaseTaskTests.test_iscoroutinefunction�s���	�	
����4�4�R�8�9�	�����4�4�S�9�:�	�����3�3�C�8�9�����4�4�T�Y�Y�[�A�B�����3�3�D�N�N�4D�E�Frc��d�}|jtj|��|�}|jtj|��|jj|�}|j
|d�y)Nc��K�y�w�Nr�rrrrr?z;BaseTaskTests.test_coroutine_non_gen_function.<locals>.func�s	�����rr�)rhrr��iscoroutinerFrmr])r-r?rJr�s    r�test_coroutine_non_gen_functionz-BaseTaskTests.test_coroutine_non_gen_function�sb��	�	
����3�3�D�9�:��v������+�+�D�1�2��i�i�*�*�4�0������f�%rc�l��|j|j���fd�}�fd�}|j|j|��}|j|j|��}|jj|�}|j	|��|j|j
��y)Nc���K��S�wrrr�s�rr?zIBaseTaskTests.test_coroutine_non_gen_function_return_future.<locals>.funcs������J�s�c��0�K��jd�y�wr��r�r�s�rrJzIBaseTaskTests.test_coroutine_non_gen_function_return_future.<locals>.coros������N�N�6�"�s�)rQrFrKrmr]rr�)r-r?rJrrr�r�s      @r�-test_coroutine_non_gen_function_return_futurez;BaseTaskTests.test_coroutine_non_gen_function_return_futures�����o�o�d�i�i�(��	�	#��]�]�4�9�9�d�f�
-��
�]�]�4�9�9�d�f�
-���i�i�*�*�2�.������c�"����"�)�)�+�&rc�^����jtj�j�����fd�}�j	�j|�j����jj���jtj�j���y)NrNc����K��jtj����jtjd����jtj���y�wr)r�rrH)rFr-ras ��rrJz-BaseTaskTests.test_current_task.<locals>.corosN������M�M�'�.�.�0�$�7��M�M�'�.�.�t�4�d�;��M�M�'�.�.�0�$�7���A/A2)rrrHrFrKrmr�s` @r�test_current_taskzBaseTaskTests.test_current_tasksr������'�.�.�D�I�I�>�?�	8��}�}�T�Y�Y��T�Y�Y��8���	�	�$�$�T�*����'�.�.�D�I�I�>�?rc�f�������jtj�j����j	�j���j	�j������fd�}����fd�}�j�j|�j����j�j|�j����jj
tj��f���jtj�j���y)NrNc����K��jtj��u���d{����jtj��u��jd�y7�;�wrQ�rhrrHr�)rFr�r�r-�task1s ����rrzFBaseTaskTests.test_current_task_with_interleaving_tasks.<locals>.coro1#sS������O�O�G�0�0�2�e�;�<��J�J��O�O�G�0�0�2�e�;�<��O�O�D�!�
�s�+A,�A*�<A,c����K��jtj��u��jd���d{����jtj��u�y7�*�wrQr�)rFr�r�r-�task2s ����rrzFBaseTaskTests.test_current_task_with_interleaving_tasks.<locals>.coro2)sS������O�O�G�0�0�2�e�;�<��O�O�D�!��J�J��O�O�G�0�0�2�e�;�<�
�s�<A,�A*�+A,)rrrHrFrQrKrmrx)r-rrr�r�r�r�s`  @@@@r�)test_current_task_with_interleaving_tasksz7BaseTaskTests.test_current_task_with_interleaving_taskss�������'�.�.�D�I�I�>�?����t�y�y�)�����t�y�y�)��	"�	=��
�
�d�i�i��t�y�y�)9�:���
�
�d�i�i��t�y�y�)9�:���	�	�$�$�W�\�\�5�%�.�%A�B����'�.�.�D�I�I�>�?rc������d��j�j�����fd����fd�}tj|��j��}t	j
�j�|j
��jj|��j�d��j�j��y)Nrc���K�	��d{����jd�y7�#tj$r�dz
��wxYw�w)Nzgot past sleep() in inner()r)r�rrl)�proofr-�waiters���r�innerz<BaseTaskTests.test_yield_future_passes_cancel.<locals>.inner=sG�����
9����
�	�	�7�8����)�)�
���
���
�s#�A�#�!�#�A�#�=�Ac��x�K�	���d{����dz
�y7�
#tj$r�dz
�YywxYw�w)Nr;r�r��r�r�s��rr z<BaseTaskTests.test_yield_future_passes_cancel.<locals>.outerGsB�����
��g�
�
�����	���)�)�
�����
�s(�:�
���:��7�:�7�:rN�e)rQrFrr�r�rrjrmr]rhrK�r-r r�r�r�r�s`  @@@r�test_yield_future_passes_cancelz-BaseTaskTests.test_yield_future_passes_cancel8s������������+��	9�	�
�!�!�%�'��	�	�:�����t�y�y�)�	���
��	�	�$�$�Q�'������$�����(�(�*�+rc������d��j�j����fd�����fd�}tj|��j��}t	j
�j�|j
��jtj�jj|��jd�t	j
�j��j�d�y)Nrc��0�K���d{����dz
�y7�
�w�Nrr�r�r�s��rr�zCBaseTaskTests.test_yield_wait_does_not_shield_cancel.<locals>.inner]�������L�L��Q�J�E�
�����c����K��jt�5tjtj���g��d{���\}}ddd��dz
�y7�#1swY�xYw�w�Nr�)�assertWarns�DeprecationWarningrrxr)�d�pr�r�r-s  ���rr zCBaseTaskTests.test_yield_wait_does_not_shield_cancel.<locals>.outerbsX������!�!�"4�5�$�\�\�7�+>�+>�u�w�+G�*H�I�I���1�6��S�L�E�J��6�5�s.�A/�2A#�A!�A#�A/�!A#�#A,�(A/rNr�rQrFrr�r�rrjrkrlrmr�r]r�s`  @@@r�&test_yield_wait_does_not_shield_cancelz4BaseTaskTests.test_yield_wait_does_not_shield_cancelWs������������+��	�
	�
�!�!�%�'��	�	�:�����t�y�y�)�	���
�����"�"�D�I�I�$@�$@�!�	E����$�����t�y�y�)������"rc���|j|j�}tj|�}|j	d�|jj|�}|j
|d�yr8)rQrFr�shieldr�rmr])r-r�r r�s    r�test_shield_resultz BaseTaskTests.test_shield_resultqsT������	�	�*�����u�%��
������i�i�*�*�5�1������b�!rc�X�|j|j�}tj|�}t	j
|j�t
d�}|j|�t	j
|j�|j|j�|�y)N�expected)
rQrFrr�r�rr�r�r�rn)r-r�r r%s    r�test_shield_exceptionz#BaseTaskTests.test_shield_exceptionxss������	�	�*�����u�%�����t�y�y�)��:�&��
���C� ����t�y�y�)��
�
�e�o�o�'��-rc�>�|j|j�}tj|�}t	j
|j�|j
�t	j
|j�|j|j��yr)	rQrFrr�r�rrjrhrK�r-r�r s   r�test_shield_cancel_innerz&BaseTaskTests.test_shield_cancel_inner�sb������	�	�*�����u�%�����t�y�y�)�
�������t�y�y�)�������)�*rc��|j|j�}tj|�}t	j
|j�|j
�t	j
|j�|j|j��|jd|j�d�yt|j��yrw)rQrFrr�r�rrjrhrKr]�
_callbacksr,r�s   r�test_shield_cancel_outerz&BaseTaskTests.test_shield_cancel_outer�s�������	�	�*�����u�%�����t�y�y�)�
�������t�y�y�)�������)�*������!1�!1�!9�A�U�s�5�CS�CS�?T�Urc���|j|j�}|jd�|jjt	j
|��}|j
|d�yr8)rQrFr�rmrr�r])r-r�r�s   r�test_shield_shortcutz"BaseTaskTests.test_shield_shortcut�sM���o�o�d�i�i�(�����r���i�i�*�*�7�>�>�#�+>�?������b�!rc�(����d�|j|j����fd����fd�}tj|�|j��}t	j
|j�|j
�|jtj�5|jj|�ddd��jd�t	j
|j�|j�d�y#1swY�LxYw)Nrc��0�K���d{����dz
�y7�
�wr�rr�s��rr�z/BaseTaskTests.test_shield_effect.<locals>.inner�r�r�c��`�K�tj����d{����dz
�y7�
�wr��rr�r�s��rr z/BaseTaskTests.test_shield_effect.<locals>.outer�s)������.�.���)�)�)��S�L�E�
*�s�.�,�.rNrr�r�s   @@@r�test_shield_effectz BaseTaskTests.test_shield_effect�s������������+��	�
	�

�!�!�%�'��	�	�:�����t�y�y�)�	���
�
�
�
�w�5�5�
6��I�I�(�(��+�7����$�����t�y�y�)������"�	7�
6�s�!D�Dc�f�|j|j�}|j|j�}tj||�}tj|�}tj|j�|j�tj|j�|j|j��|jd�|jd�tj|j�|j|j�ddg�y�Nrr�)
rQrFrr�r�r�rrjrhrKr�r]r�)r-�child1�child2�parentr s     r�test_shield_gatherz BaseTaskTests.test_shield_gather�s���������+��������+�������/�����v�&�����t�y�y�)�
�������t�y�y�)�������)�*����!�����!�����t�y�y�)��������1�a�&�1rc���|j|j�}|j|j�}tj|�}tj|�}tj||�}tj|j�|j�tj|j�|j|j�tj�|j|j��|j|j��|jd�|jd�tj|j�yr�)rQrFrr�r�r�rrjr_rnrlrhrKr�)r-rrrrrs      r�test_gather_shieldz BaseTaskTests.test_gather_shield�s���������+��������+������'������'�������/�����t�y�y�)��
�
�����t�y�y�)����f�.�.�0�'�2H�2H�I�����(�(�*�+�����(�(�*�+����!�����!�����t�y�y�)rc���d�}|�}|j|j�|jtd�5t	j
|�ddd�y#1swYyxYw)Nc��K�y�wr8rrrrrJz>BaseTaskTests.test_shield_coroutine_without_loop.<locals>.coro�r"rr�)r�r@r�r�rr��r-rJr�s   r�"test_shield_coroutine_without_loopz0BaseTaskTests.test_shield_coroutine_without_loop�sJ��	����������$�
�
#�
#�L�2I�
J��N�N�5�!�K�
J�
J�s�A�A$c���d���fd�}|jj|��}|j|j|j�|jj|�}|j|d�y)Nc��K�y�wr8rrrrrJzBBaseTaskTests.test_shield_coroutine_use_running_loop.<locals>.coro�r"rc��@�K�tj���S�wrr�r�s�rr�zBBaseTaskTests.test_shield_coroutine_use_running_loop.<locals>.test�s������>�>�$�&�)�)�r�r9)rFrmr]r�)r-r�r r�rJs    @r�&test_shield_coroutine_use_running_loopz4BaseTaskTests.test_shield_coroutine_use_running_loop�s_���	�	*��	�	�,�,�T�V�4��������d�i�i�0��i�i�*�*�5�1������b�!rc�b�d�}tj|j�|jtjd�tj|��}|j|j|j�|jj|�}|j|d�y)Nc��K�y�wr8rrrrrJzABaseTaskTests.test_shield_coroutine_use_global_loop.<locals>.coro�r"rr9)rr�rFr�r�r]r�rm)r-rJr r�s    r�%test_shield_coroutine_use_global_loopz3BaseTaskTests.test_shield_coroutine_use_global_loop�s{��	�	���t�y�y�)�����.�.��5����t�v�&��������d�i�i�0��i�i�*�*�5�1������b�!rc�f�|j|j�}|jt|jjtj|��t�}|jt|jjtj|��|j�yr)	rQrFrkr�rmrrRrr@�r-r�rJs   r�test_as_completed_invalid_argsz,BaseTaskTests.test_as_completed_invalid_args�s{���o�o�d�i�i�(��	
���)�T�Y�Y�%A�%A�� � ��%�	'�!�#�����)�T�Y�Y�%A�%A�� � ��&�	(��
�
�rc���|j|j�}|jt|jjtj|��t�}|jt|jjtj|��|j�|jt|jjtjg��yr)
rQrFrkr�rmrrxrr@r�rs   r�test_wait_invalid_argsz$BaseTaskTests.test_wait_invalid_args�s����o�o�d�i�i�(��	
���)�T�Y�Y�%A�%A��L�L���	�!�#�����)�T�Y�Y�%A�%A��L�L���	 ��
�
��	
���*�d�i�i�&B�&B��L�L���	rc����jj}�fd�}tj�}�jjd��jj
|�|�j�}tj|�j��}�jtj�j��|h�tjd��jj��jt�jj�d�d}|j}d}t!j"��jtj�j��t%��|j'�jdtj(|d��|j+�y)Nc��\�K��j|�}|�d{���td��7��w)Nzcode never reached)rQr-)rF�futurer-s  �r�kill_mez>BaseTaskTests.test_log_destroyed_pending_task.<locals>.kill_mes/������_�_�T�*�F��L�L��0�1�1�
�s�,�*�,TrNrz%Task was destroyed but it is pending!)�messagerar)rHrIrr�rFr��set_exception_handlerrr�r]�	all_tasksr��	_run_oncer,�_readyr�r�
gc_collectr��assert_called_with�ANY�
reset_mock)r-rIr�mock_handlerrJrars`      r�test_log_destroyed_pending_taskz-BaseTaskTests.test_log_destroyed_pending_task	sG����~�~�"�"��	2��y�y�{���	�	���D�!��	�	�'�'��5��t�y�y�!���$�$�T��	�	�:������*�*��	�	�:�T�F�C����t�$�	
�	�	��������T�Y�Y�-�-�.��2����1�1����	��������*�*��	�	�:�C�E�B��'�'��	�	�>��H�H� 0�4
�	�
	���!rzasyncio.base_events.loggerc������tj���j��d�����fd�}�j|���j	|j
j�y)Nc��K�t��wr)r�rrrrJzBBaseTaskTests.test_tb_logger_not_called_after_cancel.<locals>.coro8s�����O�r)c���K��j����}tjd��d{���|j�d}y7��w)Nrcr�)rarJrFr-s ���rr�zDBaseTaskTests.test_tb_logger_not_called_after_cancel.<locals>.runner;s>������=�=��t�v�.�D��-�-��%�%�%��K�K�M��D�
&�s�0A
�A�A
)rr�r�rmr@�error�called)r-�m_logr�rJrFs`  @@r�&test_tb_logger_not_called_after_cancelz4BaseTaskTests.test_tb_logger_not_called_after_cancel3sS����%�%�'�����D�!�	�	�	
�����)�������+�+�,rc��|jjd�|j|jt��}t	j
�jdz
}|j|jt�|j|jdddt|df�|jj|�y)NTr���r+�test_task_source_traceback)
rFr�rKrrV�	_getframe�f_linenor_r�rer]�__file__rm)r-rar�s   rr.z(BaseTaskTests.test_task_source_tracebackDs����	�	���D�!��}�}�T�Y�Y�(:�(<�=������)�)�A�-�����d�4�4�d�;�����/�/��3�B�Q�7�"� �6�8�	9�	
�	�	�$�$�T�*rc������	tj�}|j|j�|j	|���fd�}|j|���d���fd�}�j
|��jd�|j��|j�d�|j�j��|j�j�dg�y)Nc��t�K��fd�}tj|��}tj|�S�w)Nc��$�K���d{���S7��wrrr�s�r�
child_corozFBaseTaskTests.test_cancel_gather_1.<locals>.create.<locals>.child_coroZs����� �y� �y�s���)rr�r�)r5�
gather_futurer�s  �r�createz2BaseTaskTests.test_cancel_gather_1.<locals>.createWs-�����
!�#�N�N�:�<�8�M��(�(��7�7�s�58c�&���j��yrrR)r��
cancel_result�gather_tasks ��r�cancelling_callbackz?BaseTaskTests.test_cancel_gather_1.<locals>.cancelling_callbackas���'�.�.�0�Mrr9F)rr�r�r@rQrmr�r�r]r@rKr�)r-rFr7r;r9r�r:s    @@@r�test_cancel_gather_1z"BaseTaskTests.test_cancel_gather_1Ps����	��%�%�'������
�
�#��o�o�d�#��	8��-�-�f�h�7���
�	1�	���1�2����r��	
����,�	
�����.�����.�.�0�1�����+�+�-��t�4rc	������gd�}|D]�\�}�j���5tj���j�j�d������fd�}	�j|���j
d�ddd���y#tj$rT}�j|j|�t|�}�j|tj|df�Yd}~�md}~wwxYw#1swY��xYw)Nrnrrc��K�d}	|dz
}tjtjd�d���d{���|dkDry�>7��w)NrTrc��return_exceptionsr)rr�r�)r�s rr�z0BaseTaskTests.test_cancel_gather_2.<locals>.test}sS�����D������%�n�n�W�]�]�4�-@�?C�E�E�E��!�8�"��E�s�6A�A�Ac���K��j����}tjd��d{���|j��|�d{���y7�7��w)Nr�r�)�qwersrFr-r�s ����rrDz0BaseTaskTests.test_cancel_gather_2.<locals>.main�sI������-�-��d�f�5�C�!�-�-��,�,�,��C�J�J��,��I�I�-���s!�0A�A�A�A�
A�AzWgather() does not propagate CancelledError raised by inner task to the gather() caller.r)r}rr�r�r@rmr�rlr]r$r()	r-rr�rDr%r�rsrFr�s	`     @@@r�test_cancel_gather_2z"BaseTaskTests.test_cancel_gather_2ps����
��+0�&�K�����+��6��-�-�/������
�
�+�#��
��+�+�D�F�3��I�I�G��;7�6�+0��,�-�-���$�$�S�X�X�}�=�2�3�7�F��$�$�� �/�/���B������+7�6�s6�;C;�B�5C;�C8�$A
C3�.C;�3C8�8C;�;D	c�Z���d����fd�}�jj|��y)Nc��K�ddzy�w)Nrrrrrrr�z3BaseTaskTests.test_exception_traceback.<locals>.foo�s
����
��E�r)c����K��j�j���}tjd��d{����j	|j�j�y7�.�wrw)rKrFrr�r�rn�
__traceback__)rar�r-s ��rrDz4BaseTaskTests.test_exception_traceback.<locals>.main�sO������=�=����C�E�2�D��-�-��"�"�"�� � ����!1�!?�!?�@�
#�s�:A.�A,�/A.r�)r-rDr�s` @r�test_exception_tracebackz&BaseTaskTests.test_exception_traceback�s$���	�	A�
	
�	�	�$�$�T�V�,rc��d�}||j_d�}|j|jj�|jt�5|�}	|j|j|�|j�	ddd�tj�|j|jj�|jjdd}|jd|�|jtj |j�t#��y#|j�wxYw#1swY��xYw)Nc��t�rr')r�r$r�s   rrkz8BaseTaskTests.test_error_in_call_soon.<locals>.call_soon�s���rc��K�y�wrrrrrrJz3BaseTaskTests.test_error_in_call_soon.<locals>.coro�rerrz$Task was destroyed but it is pending)rFrkr@r(r)rkr�rKr@rzr{rh�	call_argsrCr]rrr�)r-r*rkrJr�rs      r�test_error_in_call_soonz%BaseTaskTests.test_error_in_call_soon�s���	�'��	�	��	�	
������+�+�,�
�
�
�z�
*��&�C�
��
�
�d�i�i��-��	�	��+�	�
�
��������*�*�+��+�+�'�'��*�1�-���
�
�<�g�F�����*�*�4�9�9�5�s�u�=���	�	���+�
*�s$�E�D/�7E�/E�E�E
c� �|jtd�5|j|jd�ddd�|jtd�5|j|jd�ddd�y#1swY�ExYw#1swYyxYw)Nz!a coroutine was expected, got 123r�)r�r�rKrFr,s r�"test_create_task_with_noncoroutinez0BaseTaskTests.test_create_task_with_noncoroutine�s|��
�
#�
#�I�$G�I��M�M�$�)�)�S�)�I��
#�
#�I�$G�I��M�M�$�)�)�S�)�I�I�
I�I��I�I�s�A8�B�8B�B
c�j�d�}|j|j|��}|j||j�|jj	|�|j|j|��}|j||j�|jj	|�y)Nc��K�y�wrrrrrrJz@BaseTaskTests.test_create_task_with_async_function.<locals>.coro�rer)rKrFr_rIrmr�s   r�$test_create_task_with_async_functionz2BaseTaskTests.test_create_task_with_async_function�s���	��}�}�T�Y�Y���/�����d�D�I�I�.��	�	�$�$�T�*��}�}�T�Y�Y���/�����d�D�I�I�.��	�	�$�$�T�*rc��|j|jt��}|j||j�|j|jj
|�d�|j|jt��}|j||j�|j|jj
|�d�yr8)rKrFr6r_rIr]rmr`s  r�(test_create_task_with_asynclike_functionz6BaseTaskTests.test_create_task_with_asynclike_function�s����}�}�T�Y�Y��(8�9�����d�D�I�I�.�������5�5�d�;�R�@��}�}�T�Y�Y��(8�9�����d�D�I�I�.�������5�5�d�;�R�@rc�Z���d����fd�}�jj|��y)Nc��K�y�wr�rrrrr�z2BaseTaskTests.test_bare_create_task.<locals>.inner�s	�����rc���K�tj���}�j|�j�|�d{���}�j	d|�y7��wr�)rrr_rIr])ra�retr�r-s  ��rrJz1BaseTaskTests.test_bare_create_task.<locals>.coro�sI������&�&�u�w�/�D��!�!�$��	�	�2��*�C����Q��$��s�<A�A�Ar�rs` @r�test_bare_create_taskz#BaseTaskTests.test_bare_create_task�s#���	�	%�	
�	�	�$�$�T�V�,rc�Z���d����fd�}�jj|��y)Nc��K�y�wrrrrr�	coro_noopz<BaseTaskTests.test_bare_create_named_task.<locals>.coro_noop�rerc���K�tj��d��}�j|j�d�|�d{���y7��w)NzNo-opr	)rrr]r)rar\r-s ��rrJz7BaseTaskTests.test_bare_create_named_task.<locals>.coro�s8������&�&�y�{��A�D����T�]�]�_�g�6��J�J�s�AA
�A�A
r�)r-rJr\s` @r�test_bare_create_named_taskz)BaseTaskTests.test_bare_create_named_task�s#���	�	�
	
�	�	�$�$�T�V�,rc������tjdd�����fd������fd�}tj��	�j	�|��}�j|��j
�y#�j
�wxYw)N�cvar�nope��defaultc���K�tjd��d{����j�j�d��j	d�y7�6�w)NrJra�something else)rr�r]�getr�)r`r-s��r�subz)BaseTaskTests.test_context_1.<locals>.sub	sA������-�-��%�%�%����T�X�X�Z��0��H�H�%�&�
&�s�A�A�7Ac��6�K��j�j�d��j����}�jd��j�j�d�|�d{����j�j�d�y7�%�w)Nra�yes)r]rfrKr�)�subtaskr`rFr-rgs ����rrDz*BaseTaskTests.test_context_1.<locals>.main	sr��������T�X�X�Z��0��m�m�D�#�%�0�G��H�H�U�O����T�X�X�Z��/��M�M����T�X�X�Z��/�
�s�A.B�1B�2&B)�contextvars�
ContextVarrr�rKrmr@)r-rDrar`rFrgs`  @@@r�test_context_1zBaseTaskTests.test_context_1�sg����%�%�f�f�=��	'�
	0��%�%�'��	��=�=��t�v�.�D��#�#�D�)��J�J�L��D�J�J�L�s�(A8�8B
c�J����tjdd������fd�}tj��	�j	�|��}�j|��j
��j�j�d�y#�j
�wxYw)Nr`rarbc	��R�K��fd�}�j�j�d�td�D]�}�j��}|j	|��jd|����j
|jd�|�d{����j�j�d|���td�D]\}�jd|�d|���tjd��d{����j�j�d|�d|����^��y7��7�1�w)Nc�(���jd�y)Nre)r�)r�r`s �r�fut_on_donez?BaseTaskTests.test_context_2.<locals>.main.<locals>.fut_on_done	s������)�*rrar�rir+�-���MbP?)
r]rfr�rQr�r�rkr�rr�)rq�jr�rBr`rFr-s    ���rrDz*BaseTaskTests.test_context_2.<locals>.main	s������
+�

���T�X�X�Z��0��1�X���o�o�d�+���%�%�k�2����3�q�c��#����s�~�~�t�4��	�	�� � �����s�1�#�Y�7��q��A��H�H�s�1�#�Q�q�c�]�+�!�-�-��.�.�.��$�$�T�X�X�Z�3�q�c��1�#��?�	"��
��/�s%�BD'�D#�A$D'�3D%�40D'�%D')	rkrlrr�rKrmr@r]rf)r-rDrar`rFs`  @@r�test_context_2zBaseTaskTests.test_context_2	s|����%�%�f�f�=��	@�,�%�%�'��	��=�=��t�v�.�D��#�#�D�)��J�J�L��������V�,��
�J�J�L�s�(B�B"c�2�����tjdd�����fd����fd�}tj��	�j	|���j��j
�j�d�y#�j�wxYw)Nr`rrbc���K�td�D]j}�j||z�tjt	j
dd���d{����j
�j�||z��ly7�*�w)Nr;rsrc)r�r�rr��random�uniformr]rf)�numrBr`r-s  ��rrgz)BaseTaskTests.test_context_3.<locals>.sub=	s_������2�Y������q��!��m�m�F�N�N�5�$�$?�@�@�@�� � �����S�1�W�5��@�s�AA?�A=�+A?c	����K�g}td�D]?}�j�tjdd���}|j|��Atj|��d{���y7��w)Nr�rr;)r�rrx�randintrSrr�)rrBrarFrgs   ��rrDz*BaseTaskTests.test_context_3.<locals>.mainC	s\������E��3�Z���'�'��F�N�N�1�b�,A�(B�C������T�"� ��.�.�%�(�(�(�s�A%A0�(A.�)A0)rkrlrr�rmr@r]rf)r-rDr`rFrgs` @@@r�test_context_3zBaseTaskTests.test_context_38	sr����%�%�f�b�9��	6�	)��%�%�'��	��#�#�D�F�+��J�J�L��������R�(��
�J�J�L�s�B�Bc�<�����tjd���fd������fd�}tj��	�j	�|��}�j|�}�j
��jgd�|�y#�j
�wxYw)Nr`c��n�K�tjd��d{����j|�y7��wrw�rr�r���valr`s �rrJz*BaseTaskTests.test_context_4.<locals>.coroV	�)������-�-��"�"�"��H�H�S�M�
#���5�3�5c���K�g}tj�}|j|j����j	��d�|��}|�d{���|j|j����j	��d�|��}|�d{���|j|j���|S7�j7�(�w�Nr�r'r�)rk�copy_contextrSrfrK)rX�ctxrrrJr`rFr-s    ����rrDz*BaseTaskTests.test_context_4.<locals>.mainZ	s�������C��*�*�,�C��J�J�s�w�w�t�}�%����t�T�!�W�c��:�B��H�H��J�J�s�w�w�t�}�%����t�T�!�W�c��:�B��H�H��J�J�s�w�w�t�}�%��J�
��
�s%�AC�C�AC�C�'C�Cr��rkrlrr�rKrmr@r]�r-rDrarXrJr`rFs`   @@@r�test_context_4zBaseTaskTests.test_context_4S	sz����%�%�f�-��	�
	��%�%�'��	��=�=��t�v�.�D��)�)�$�/�C��J�J�L�����s�+��
�J�J�L�s�(B	�	Bc�4���tjd���fd����fd�}tj�}	|j	||��}|j|�}|j
�|jgd�|�y#|j
�wxYw)Nr`c��n�K�tjd��d{����j|�y7��wrwr�r�s �rrJz*BaseTaskTests.test_context_5.<locals>.coror	r�r�c���K�g}tj�}|j|j���t	j
�d�|��}|�d{���|j|j���t	j
�d�|��}|�d{���|j|j���|S7�m7�(�wr�)rkr�rSrfrr)rXr�rrrJr`s    ��rrDz*BaseTaskTests.test_context_5.<locals>.mainv	s�������C��*�*�,�C��J�J�s�w�w�t�}�%��$�$�T�!�W�c�:�B��H�H��J�J�s�w�w�t�}�%��$�$�T�!�W�c�:�B��H�H��J�J�s�w�w�t�}�%��J�
��
�s%�AC�C
�AC�#C�$'C�Cr�r�)r-rDrFrarXrJr`s     @@r�test_context_5zBaseTaskTests.test_context_5o	sz����%�%�f�-��	�
	��%�%�'��	��=�=��t�v�.�D��)�)�$�/�C��J�J�L�����s�+��
�J�J�L�s�(B�Bc�6����tjd���fd�����fd�}tj��	�j	|��}�j|�}�j
�|jgd�|�y#�j
�wxYw)Nr`c��n�K�tjd��d{����j|�y7��wrwr�r�s �rrJz*BaseTaskTests.test_context_6.<locals>.coro�	r�r�c���K�g}tj�}|j|j����j	�d�|��}|�d{���|j|j����j	�d�|��}|�d{���|j|j���|S7�i7�(�wr�)rkr�rSrfr)rXr�rrrJr`rFs    ���rrDz*BaseTaskTests.test_context_6.<locals>.main�	s�������C��*�*�,�C��J�J�s�w�w�t�}�%��!�!�$�q�'�3�!�7�B��H�H��J�J�s�w�w�t�}�%��!�!�$�q�'�3�!�7�B��H�H��J�J�s�w�w�t�}�%��J�
��
�s%�AC�C�AC�C�'C�Cr�)rkrlrr�rrmr@r]r�s    @@@r�test_context_6zBaseTaskTests.test_context_6�	sz����%�%�f�-��	�
	��%�%�'��	��#�#�D�F�+�D��)�)�$�/�C��J�J�L�����s�+��
�J�J�L�s�'B�Bc��tj�}t�}	|j||�}|j	|�|j|j
�|�|j�y#|j�wxYwr)rr�rrKrmr�r�r@)r-rFrJras    r�
test_get_corozBaseTaskTests.test_get_coro�	sb���%�%�'��!�#��	��=�=��t�,�D��#�#�D�)��M�M�$�-�-�/�4�0��J�J�L��D�J�J�L�s�AA4�4Bc�>�tj�}t�}tj�}	|j|||��}|j
|�|j|j�|�|j�y#|j�wxYw)Nr�)
rr�rrkr�rKrmr��get_contextr@)r-rFrJr'ras     r�test_get_contextzBaseTaskTests.test_get_context�	sw���%�%�'��!�#���*�*�,��	��=�=��t�W�=�=�D��#�#�D�)��M�M�$�*�*�,�g�6��J�J�L��D�J�J�L�s�AB
�
B)�TestTaskN)zr2r3r4rIrOrKrQrVrbrrrur�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr$r/r7rErLr_rlr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrr$r.r4r7r<rFrVr[r`rirnrsrvrzr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr	r
rrrr$r�patchr+r.r<rCrHrMrOrRrTrYr^rmrur}r�r�r�r�r�r�r�s@rrDrDTs�����D�
�F�P�0�E�2�

=�A���	/��"+�>!�*!�*-� �(��/�81S�f)�$
(�(�
+�@� �:+�@�0(�Tg�R%�* @�D @�D3�8:�0
%�
'�'�((�.(�<%�(%�&")�HO�6�66�:!N�F+�"�:J��6�:&�06�:6�<2�@6�86�62�2(�%&�N"6�H<�$(�6(�0)�$	�(�1�,+�81�8)�"�"&�<2�@G�"
&�
'�@�@�6,�>#�4"�.�+�V�"�#�02�*�""�	"�
"�	�
�("�T�T�Z�Z�,�-�-�.�-� 
+�5�@)�V-��T�Z�Z�,�-�>�.�>�0	*�
+�	A�-�
-��. -�D)�6,�8,�8,�8�	rrDc���|j}|j}|�|�|SGd�d�}Gd�d||�}Gd�d||�}d�}||_||_||_d|_|S)Nc�(��eZdZ�fd�Z�fd�Z�xZS)�(add_subclass_tests.<locals>.CommonFuturec�Z��tjd��|_t�|�|i|��y)Nc��yrwrrrrrTzCadd_subclass_tests.<locals>.CommonFuture.__init__.<locals>.<lambda>�	s��r)�collections�defaultdict�callsrUr�r�s   �rr�z1add_subclass_tests.<locals>.CommonFuture.__init__�	s'���$�0�0��;�D�J��G��d�-�f�-rc�P��|jdxxdz
cc<t�|�|i|��S)Nr�r)r�rUr�r�s   �rr�z:add_subclass_tests.<locals>.CommonFuture.add_done_callback�	s-����J�J�*�+�q�0�+��7�,�d�=�f�=�=rr�r�s@r�CommonFuturer��	s���	.�	>�	>rr�c��eZdZy)� add_subclass_tests.<locals>.TaskN�r2r3r4rrrrIr��	���rrIc��eZdZy)�"add_subclass_tests.<locals>.FutureNr�rrrrOr��	r�rrOc�����j�j�����fd�}�j|��j��}�jj|�}�j	|d��j	t|j�ddi��j	t�j�ddi�y)NrNc��`�K��jj�fd����d{���S7��w)Nc�&���jd�S�Nr�r�r�s�rrTzYadd_subclass_tests.<locals>.test_subclasses_ctask_cfuture.<locals>.func.<locals>.<lambda>�	s������v�(>r)rFrk)r�r-s��rr?zGadd_subclass_tests.<locals>.test_subclasses_ctask_cfuture.<locals>.func�	s$������I�I��� >�?��9��9�s�$.�,�.r�r�r)rOrFrIrmr]�dictr�)r-r?rar�r�s`   @r�test_subclasses_ctask_cfuturez9add_subclass_tests.<locals>.test_subclasses_ctask_cfuture�	s�����k�k�t�y�y�k�)��	��y�y���d�i�i�y�0�����-�-�d�3�������(���������
 �!�$�	&�	
�������O�
 �!�$�	&r)rIrOr�r.)�cls�BaseTask�
BaseFuturer�rIrOr�s       r�add_subclass_testsr��	sy���x�x�H����J���:�-��
�>�>�
�|�X�
�
��z�
�&�,�C�H��C�J�)F�C�%�
&*�C�"��Jrc��eZdZd�Zd�Zy)�SetMethodsTestc��t|�j}tj�x|j_}d�}|�}|j
|j|�}|j|d�|j|jj|�d�|j�|jddd}|jtjd�5|�#1swYnxYw|j�y)Nc��JK�tjd��d{���y7��w�Nr]r;r<rrrr�z@SetMethodsTest.test_set_result_causes_invalid_state.<locals>.foo�	� �����-�-��$�$�$��
%�r>r�rrn�step\(\): already done)r#rOrr�rF�call_exception_handlerrKr�r]rm�assert_called_oncerLr�r�InvalidStateErrorr@)r-rO�exc_handlerr�rJrar%s       r�$test_set_result_causes_invalid_statez3SetMethodsTest.test_set_result_causes_invalid_state�	s����d��"�"��9=����D��	�	�(�;�	��u���}�}�T�Y�Y��-�����$��'�����I�I�(�(��.��	�	�&�&�(��#�#�A�&�q�)�+�6��
�
#�
#�G�$=�$=�$=�?��I�?�?��	
�
�
�s�#C&�&C/c�Z�Gd�dt�}t|�j}tj�x|j
_}d�}|�}|j|j
|�}|j||��|j|�5|j
j|�ddd�|j�|jddd}|jtjd�5|�#1swY�QxYw#1swYnxYw|j!�y)Nc��eZdZy)�ESetMethodsTest.test_set_exception_causes_invalid_state.<locals>.MyExcNr�rrr�MyExcr�
s��rr�c��JK�tjd��d{���y7��wr�r<rrrr�zCSetMethodsTest.test_set_exception_causes_invalid_state.<locals>.foo
r�r>rrnr�)r-r#rOrr�rFr�rKr�rkrmr�rLr�rr�r@)r-r�rOr�r�rJrar%s        r�'test_set_exception_causes_invalid_statez6SetMethodsTest.test_set_exception_causes_invalid_state
s���	�I�	��d��"�"��9=����D��	�	�(�;�	��u���}�}�T�Y�Y��-�����T�5�7�+�
�
�
�u�
%��I�I�(�(��.�&�	�&�&�(��#�#�A�&�q�)�+�6��
�
#�
#�G�$=�$=�$=�?��I�&�
%��
?�?��	
�
�
�s�D�D�D
�DN)r2r3r4r�r�rrrr�r��	s���0rr��_CFuture�_CTaskzrequires the C _asyncio modulec�^�eZdZeedd�Zeedd�Zejd��Z
d�Zy)�CTask_CFuture_Testsr�Nr�c��tjtd�}d�}|j|j|��}|jj|�|�}t
d�D]?}|j|�|j��|jj|��A|j|�|z
dd��y)N�gettotalrefcountc��K�y�wrrrrrrJz@CTask_CFuture_Tests.test_refleaks_in_task___init__.<locals>.coro8
rerr�rNrr;)�delta)	r�
get_attributerVrKrFrmr�r�rd)r-r�rJra�refs_beforerBs      r�test_refleaks_in_task___init__z2CTask_CFuture_Tests.test_refleaks_in_task___init__5
s���"�0�0��6H�I��	��}�}�T�Y�Y���/���	�	�$�$�T�*�&�(���s��A��M�M�$�&�t�y�y�M�1��I�I�(�(��.��	
���/�1�K�?��"��Mrc���d�}|j|j|��}|jj|�|jt�5|`ddd�y#1swYyxYw)Nc��K�y�wrrrrrrJzHCTask_CFuture_Tests.test_del__log_destroy_pending_segfault.<locals>.coroC
rer)rKrFrmrk�AttributeError�_log_destroy_pendingr�s   r�&test_del__log_destroy_pending_segfaultz:CTask_CFuture_Tests.test_del__log_destroy_pending_segfaultB
sO��	��}�}�T�Y�Y���/���	�	�$�$�T�*�
�
�
�~�
.��)�/�
.�
.�s�A!�!A*)r2r3r4�getattrrrIrrOr�
refcount_testr�r�rrrr�r�,
s?���5�(�D�)�D�
�W�j�$�
/�F����
N��
N�*rr�c�4�eZdZeedd�Zeedd�Zy)�CTask_CFuture_SubclassTestsr�Nr�)r2r3r4r�rrIrrOrrrr�r�K
s ���5�(�D�)�D�
�W�j�$�
/�Frr�c�8�eZdZeedd�ZejZy)�CTaskSubclass_PyFuture_Testsr�N�	r2r3r4r�rrIr�	_PyFuturerOrrrr�r�U
s��
�5�(�D�)�D�
�
�
�Frr�c�8�eZdZeedd�ZejZy)�PyTask_CFutureSubclass_Testsr�N)	r2r3r4r�rrOr�_PyTaskrIrrrr�r�^
s��
�W�j�$�
/�F��=�=�Drr�c�8�eZdZeedd�ZejZy)�CTask_PyFuture_Testsr�Nr�rrrr�r�g
s���5�(�D�)�D�
�
�
�Frr�c�8�eZdZejZeedd�Zy)�PyTask_CFuture_Testsr�N)	r2r3r4rr�rIr�rrOrrrr�r�o
s���=�=�D�
�W�j�$�
/�Frr�c�<�eZdZejZejZy)�PyTask_PyFuture_TestsN�	r2r3r4rr�rIrr�rOrrrr�r�w
s���=�=�D�
�
�
�Frr�c�<�eZdZejZejZy)�PyTask_PyFuture_SubclassTestsNr�rrrr�r�~
s���=�=�D�
�
�
�Frr�c��eZdZd�Zy)�CTask_Future_Testsc���Gd�dtj�}�fd�}tj�|_	||j���|jj	d�j
d�|jj
|��}|jj|�}|jj�|j|d�y#|jj�wxYw)Nc��eZdZed��Zy)�+CTask_Future_Tests.test_foobar.<locals>.Futc��t�r)r�r,s rr�z4CTask_Future_Tests.test_foobar.<locals>.Fut.get_loop�
s��$�$rN)r2r3r4�propertyr�rrrr�r��
s��
�
%��
%rr�c��&�K���d{���y7��wr�rr�s�rrJz,CTask_Future_Tests.test_foobar.<locals>.coro�
s������I�I��
�r�rNr]rr�)
rrOr�rFrUr�rrmr@r])r-r�rJrar�r�s     @r�test_foobarzCTask_Future_Tests.test_foobar�
s����	%�'�.�.�	%�
	��*�*�,��	�	��4�9�9�%�C��I�I� � ��c�n�n�a�8��9�9�(�(���0�D��)�)�.�.�t�4�C��I�I�O�O������f�%��
�I�I�O�O��s�A5C�C8N)r2r3r4r�rrrr�r��
s��&rr�c�X�eZdZdZdZdZdZd�Zd�Zd�Z	d�Z
d�Zd�Zd�Z
d	�Zd
�Zd�Zy)�BaseTaskIntrospectionTestsNc�>��G�fd�d�}|�}tj��|jtj��t��|j
|�|jtj��|h�|j|�y)Nc�(��eZdZe�fd��Zd�Zy)�BBaseTaskIntrospectionTests.test__register_task_1.<locals>.TaskLikec����SrrrPs �rr�zHBaseTaskIntrospectionTests.test__register_task_1.<locals>.TaskLike._loop�
s����rc��yr�rr,s rr�zGBaseTaskIntrospectionTests.test__register_task_1.<locals>.TaskLike.done�
���rN)r2r3r4r�r�r�rNs�r�TaskLiker��
s���
�
��
�
rr��rr�r]rrr��_register_task�_unregister_task�r-r�rarFs   @r�test__register_task_1z0BaseTaskIntrospectionTests.test__register_task_1�
sw���	�	��z���y�y�{������*�*�4�0�#�%�8����D�!�����*�*�4�0�4�&�9����d�#rc�>��G�fd�d�}|�}tj��|jtj��t��|j
|�|jtj��|h�|j|�y)Nc���eZdZ�fd�Zd�Zy)�BBaseTaskIntrospectionTests.test__register_task_2.<locals>.TaskLikec����SrrrPs �rr�zKBaseTaskIntrospectionTests.test__register_task_2.<locals>.TaskLike.get_loop�
�����rc��yr�rr,s rr�zGBaseTaskIntrospectionTests.test__register_task_2.<locals>.TaskLike.done�
r�rN�r2r3r4r�r�rNs�rr�r�
s
���
�
rr�r�rs   @r�test__register_task_2z0BaseTaskIntrospectionTests.test__register_task_2�
sw���	�	��z���y�y�{������*�*�4�0�#�%�8����D�!�����*�*�4�0�4�&�9����d�#rc�L��G�fd�d�}|�}tj��|jtj��t��|j
|�|jtj��t��|j|�y)Nc���eZdZ�fd�Zd�Zy)�BBaseTaskIntrospectionTests.test__register_task_3.<locals>.TaskLikec����SrrrPs �rr�zKBaseTaskIntrospectionTests.test__register_task_3.<locals>.TaskLike.get_loop�
rrc��yrQrr,s rr�zGBaseTaskIntrospectionTests.test__register_task_3.<locals>.TaskLike.done�
s��rNr	rNs�rr�r
�
s
���
�
rr�r�rs   @r�test__register_task_3z0BaseTaskIntrospectionTests.test__register_task_3�
sw���	�	��z���y�y�{������*�*�4�0�#�%�8����D�!�����*�*�4�0�#�%�8����d�#rc�.�tj�}tj�}|jtj|��|j||�|j
tj|�|�|j||�yr)rr�rrrH�_enter_taskr��_leave_task�r-rarFs   r�test__enter_taskz+BaseTaskIntrospectionTests.test__enter_task�
sj���y�y�{���y�y�{�����'�.�.�t�4�5�����t�$��
�
�g�*�*�4�0�$�7�����t�$rc��tj�}tj�}tj�}|j||�|jt�5|j||�ddd�|jt
j|�|�|j||�y#1swY�AxYwr)	rr�rrkr�r�rrHr�r-r�r�rFs    r�test__enter_task_failurez3BaseTaskIntrospectionTests.test__enter_task_failure�
����	�	����	�	����y�y�{������u�%�
�
�
�|�
,����T�5�)�-��
�
�g�*�*�4�0�%�8�����u�%�-�
,���$B7�7Cc���tj�}tj�}|j||�|j||�|j	tj|��yr)rr�rrrrrHrs   r�test__leave_taskz+BaseTaskIntrospectionTests.test__leave_task�
sQ���y�y�{���y�y�{������t�$�����t�$����'�.�.�t�4�5rc��tj�}tj�}tj�}|j||�|jt�5|j||�ddd�|j
tj|�|�|j||�y#1swY�AxYwr)	rr�rrkr�rr�rrHrs    r�test__leave_task_failure1z4BaseTaskIntrospectionTests.test__leave_task_failure1�
rrc��tj�}tj�}|jt�5|j	||�ddd�|jt
j|��y#1swY�.xYwr)rr�rkr�rrrrHrs   r�test__leave_task_failure2z4BaseTaskIntrospectionTests.test__leave_task_failure2�
s]���y�y�{���y�y�{��
�
�
�|�
,����T�4�(�-����'�.�.�t�4�5�-�
,�s�A>�>Bc���tj�}tj���fd�|_|j|�|j	|�|jt
j��t��y)Nc����SrrrNs�rrTzBBaseTaskIntrospectionTests.test__unregister_task.<locals>.<lambda>s���r)	rr�r�r�rr]rrr�rs  @r�test__unregister_taskz0BaseTaskIntrospectionTests.test__unregister_task�
sY����y�y�{���y�y�{��$��
����D�!����d�#�����*�*�4�0�#�%�8rc���tj�}tj�}|j|�|jt	j
|�t
��yr)rr�rr]rrr�rs   r�$test__unregister_task_not_registeredz?BaseTaskIntrospectionTests.test__unregister_task_not_registeredsC���y�y�{���y�y�{�����d�#�����*�*�4�0�#�%�8r)r2r3r4r�rrrrr
rrrrrr r#r%rrrr�r��
sI���N����K��K�$�"$� $� %�&�6�&�6�9�9rr�c��eZdZeej
�Zeej�Zeej�Z
eej�Zy)�PyIntrospectionTestsN)
r2r3r4�staticmethodr�_py_register_taskr��_py_unregister_taskr�_py_enter_taskr�_py_leave_taskrrrrr'r'sC��!�%�"9�"9�:�N�#�E�$=�$=�>���u�3�3�4�K��u�3�3�4�Krr'�_c_register_taskc��eZdZeed�rIeej�Zeej�Z	eej�Zeej�Z
ydxZxZ	xZZ
y)�CIntrospectionTestsr-N)r2r3r4rirr(r-r��_c_unregister_taskr�
_c_enter_taskr�
_c_leave_taskrrrrr/r/se���u�(�)�%�e�&<�&<�=��'��(@�(@�A��"�5�#6�#6�7��"�5�#6�#6�7��HL�L��L�)�L�K�+rr/c�:��eZdZdZ�fd�Zd�Zd�Zd�Zd�Z�xZ	S)�BaseCurrentLoopTestsNc���t�|��tj�|_|j|j�yr�rUrVrr�rFr�rZs �rrVzBaseCurrentLoopTests.setUp$�.���
��
���*�*�,��	����D�I�I�&rc��t�r)�NotImplementedErrorr�s  rrKzBaseCurrentLoopTests.new_task)s��!�!rc�Z�|j|j|j���yrM)rrHrFr,s r�!test_current_task_no_running_loopz6BaseCurrentLoopTests.test_current_task_no_running_loop,s"�����$�+�+����+�;�<rc�z�|jtd�5|j�ddd�y#1swYyxYw)Nzno running event loop)r�r�rHr,s r�*test_current_task_no_running_loop_implicitz?BaseCurrentLoopTests.test_current_task_no_running_loop_implicit/s,��
�
#�
#�L�2I�
J�����K�
J�
J�s�1�:c�������fd�}�j|����jj���j�j	�j���y)Nc����K��j�j�j�����j�jd����j�j���y�wrM)r�rHrFr`s��rrJzGBaseCurrentLoopTests.test_current_task_with_implicit_loop.<locals>.coro4sW������M�M�$�+�+����+�;�T�B��M�M�$�+�+�D�1�4�8��M�M�$�+�+�-�t�4�r�rN)rKrFrmrrHr�s` @r�$test_current_task_with_implicit_loopz9BaseCurrentLoopTests.test_current_task_with_implicit_loop3sL���	5��}�}�T�V�$���	�	�$�$�T�*����$�+�+����+�;�<r)
r2r3r4rHrVrKr;r=r@r�r�s@rr4r4!s!����L�'�
"�=� �	=rr4c�6�eZdZeej
�Zd�Zy)�PyCurrentLoopTestsc�D�tj||j��SrM)rr�rFr�s  rrKzPyCurrentLoopTests.new_taskBs���}�}�T��	�	�2�2rN)r2r3r4r(r�_py_current_taskrHrKrrrrBrB?s���� 6� 6�7�L�3rrB�_c_current_taskc�T�eZdZeed�reej�Zd�ZydZd�Zy)�CCurrentLoopTestsrENc�F�ttd�||j��S)Nr�rN)r�rrFr�s  rrKzCCurrentLoopTests.new_taskOs��'�w�u�h�'��4�9�9�=�=r)	r2r3r4rirr(rErHrKrrrrGrGFs0���u�'�(�#�E�$9�$9�:��>���>rrGc�6�eZdZd�Zej
d��Zy)�GenericTaskTestsc�r�|jttjtj��yr)rh�
issubclassrrIrOr,s r�test_future_subclassz%GenericTaskTests.test_future_subclassUs�����
�7�<�<����@�Arc��	ddl}ddl}ddl}	ddl}y#t$r|jd�YywxYw#t$r|j
d�YywxYw)Nrz_asyncio module is missingzC modules are not available)�
_functools�_json�_pickle�_asyncio�ImportErrorr��skipTest)r-rOrPrQrRs     r�test_asyncio_module_compiledz-GenericTaskTests.test_asyncio_module_compiledXsQ��
	8����
8����
8��	�	�6�7�
8���	9��M�M�7�8�	9�s�4��1�1�A�AN)r2r3r4rMr�cpython_onlyrUrrrrJrJSs"��B�
���8��8rrJc�H��eZdZ�fd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
�xZS)	�GatherTestsBasec���t�|��|j�|_|j�|_|j|jd��y)NF)�cleanup)rUrVrW�one_loopr�r�rZs �rrVzGatherTestsBase.setUpmsC���
��
���*�*�,��
��,�,�.������D�M�M�5��9rc�b�|jr#tj|�|jr�"yyr)rr�rrPs  r�	_run_loopzGatherTestsBase._run_loopss ���k�k��"�"�4�(��k�krc��td�D�cgc]}|jj���c}\}}}|j|j	|||�i|��}tj�}|j|�|jd�|jd�|j|j�|j|jd�|j|j��|jd�|j|j�|j|�|j|j�gd��ycc}w)Nr+rr�F)r�rr+)r�r[rY�_gather�wrap_futuresr��MockCallbackr�r�r]r]r)r@r��assert_called_once_withr�)r-r�rBr�rrr��cbs        r�_check_successzGatherTestsBase._check_successws��:?��(�C�(�Q�4�=�=�.�.�0�(�C���1�a��d�l�l�D�-�-�a��A�6�A�&�A��
�
$�
$�
&�����b�!�	���Q��	���Q�����t�}�}�%�������E�*��������$�	���Q�����t�}�}�%�
�"�"�3�'��������y�1��Ds�!Ec�H�|j�|jd��y)NFr?�rdr,s r�test_successzGatherTestsBase.test_success�s���������e��4rc�(�|jd��y)NTr?rfr,s r�test_result_exception_successz-GatherTestsBase.test_result_exception_success�s�����d��3rc	���td�D�cgc]}|jj���c}\}}}}}|j|j	|||||��}tj�}|j|�t�}	|jd�|j|	�|j|j�|j|j��|j|�|j|j!�|	�|jd�|j#�|jt%��|j!�ycc}w�Nrqrr+)r�r[rYr_r`r�rar�rr�r�r]rhr�rbr�rnrjr�)
r-rBr�rrr��er�rcr%s
          r�test_one_exceptionz"GatherTestsBase.test_one_exception�s��@E�a��I��1����4�4�6��I�
��1�a��A��d�l�l�D�-�-�a��A�q�!�<�=��
�
$�
$�
&�����b�!��!��	���Q��	��������t�}�}�%�������
�#�
�"�"�3�'��
�
�c�m�m�o�s�+�	���Q��	���
�	�����'�	���
��Js�!E!c��td�D�cgc]}|jj���c}\}}}}|j|j	||||�ddi�}tj�}|j|�t�}t�}	|jd�|j|�|jd�|j|j�|j|j��|j|	�|j|j�|j|j��|j!|�|j#|j%�dd||	g�ycc}w)N�r@Trr+)r�r[rYr_r`r�rar�rr�r�r�r]r@r�rhrbr]r�)
r-rBr�rrr�r�rcr%�exc2s
          r�test_return_exceptionsz&GatherTestsBase.test_return_exceptions�s,��=B�1�X�F�X��d�m�m�1�1�3�X�F�
��1�a���d�l�l�D�-�-�a��A�q�9�3�-1�3��
�
$�
$�
&�����b�!��!���~��	���Q��	�����	���Q�����t�}�}�%��������$�	��������t�}�}�%�������
�#�
�"�"�3�'���������1�c�4�'8�9��!Gs�!Fc�"�djd�}tdd|�\}}}|j|j�d�td|dd��\}}}|j|j�d�td|dd��\}}}|j|j�d	�tdd|dd��\}}}|j|j�d�tdd
dd|�\}}}|j|j�d	�y)N�
)zimport asyncio.coroutinesz*print(asyncio.coroutines._is_debug_mode())z-Ez-csFalse�)�PYTHONASYNCIODEBUG�
PYTHONDEVMODE�1sTruez-X�dev)�joinr	r]�rstrip)r-�code�sts�stdout�stderrs     r�test_env_var_debugz"GatherTestsBase.test_env_var_debug�s���y�y�:�;��/�t�T�4�@���V�V��������(�3�.�t�T�BD�=?�A���V�V�	
�������(�3�.�t�T�BE�=?�A���V�V�	
�������'�2�.�t�T�4�BE�=?�A���V�V�	
�������(�3�/�t�T�5�/3�T�;���V�V��������'�2r)r2r3r4rVr]rdrgrirmrqrr�r�s@rrXrXks+���:�)�
2�5�4��$:�&3rrXc�B�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zy
)�FutureGatherTestsc��|Srr)r-rs  rr`zFutureGatherTests.wrap_futures�s���rc�,�tj|i|��Sr�rr�)r-r$r�s   rr_zFutureGatherTests._gather�s���~�~�t�.�v�.�.rc��|jtd�5tj�ddd�y#1swYyxYw)Nr�)r�r�rr�r,s r�,test_constructor_empty_sequence_without_loopz>FutureGatherTests.test_constructor_empty_sequence_without_loop�s*��
�
#�
#�L�2I�
J��N�N��K�
J�
J�s�5�>c��d�}|jj|��}|j|tj�|j|j|j�|j|j�|j|j��|j|j�g�y)Nc��2K�tj�S�wrr�rrrr�zRFutureGatherTests.test_constructor_empty_sequence_use_running_loop.<locals>.gather�s�����>�>�#�#�s�)r[rmr_rrOr�r�r]rhr�r]r�)r-r�r�s   r�0test_constructor_empty_sequence_use_running_loopzBFutureGatherTests.test_constructor_empty_sequence_use_running_loop�s��	$��m�m�.�.�v�x�8�����c�7�>�>�2��
�
�c�i�i����/����t�}�}�%�������
�#��������r�*rc���tj|j�|jtjd�tj�}|j|tj�|j|j|j�|j|j�|j|j��|j|j�g�yr)rr�r[r�r�r_rOr�r�r]rhr�r]r�)r-r�s  r�/test_constructor_empty_sequence_use_global_loopzAFutureGatherTests.test_constructor_empty_sequence_use_global_loop�s������t�}�}�-�����.�.��5��n�n������c�7�>�>�2��
�
�c�i�i����/����t�}�}�%�������
�#��������r�*rc���|jj�}|jj�}|jt�5tj||�ddd�y#1swYyxYwr)r[rYr�rkr�rr�)r-r�r�s   r�%test_constructor_heterogenous_futuresz7FutureGatherTests.test_constructor_heterogenous_futures�sN���}�}�*�*�,�����,�,�.��
�
�
�z�
*��N�N�4��&�+�
*�
*�s�
A*�*A3c�6�td�D�cgc]}|jj���}}tj|�}|j|j|j�|j|j�|j|j��tj|�}|j|j|j�|j|j�|j|j��ycc}w�Nr+)
r�r�rYrr�r�r�r]r@r�)r-rB�childrenr�s    r�#test_constructor_homogenous_futuresz5FutureGatherTests.test_constructor_homogenous_futures�s���=B�1�X�F�X��D�O�O�1�1�3�X��F��n�n�h�'���
�
�c�i�i����1����t���'��������$��n�n�h�'���
�
�c�i�i����1����t���'��������$��Gs�!Dc��td�D�cgc]}|jj���c}\}}}}}tj|||||�}tj�}|j|�|jd�|j�|j|j�|j|j��|j|�|j|j��|j!|j#�tj$�|jd�|j�|j't)��|j#�ycc}wrk)r�r[rYrr�r�rar�r�rjr]rhr�rbr@rKr_rnrlr�r�)	r-rBr�rrr�rlr�rcs	         r�test_one_cancellationz'FutureGatherTests.test_one_cancellations��@E�a��I��1����4�4�6��I�
��1�a��A��n�n�Q��1�a��+��
�
$�
$�
&�����b�!�	���Q��	���
����t�}�}�%�������
�#�
�"�"�3�'��������)����c�m�m�o�w�/E�/E�F�	���Q��	���
�	�����'�	���
��Js�!E:c	��td�D�cgc]}|jj���c}\}}}}}}tj||||||d��}tj�}	|j|	�|jd�t�}
|j|
�|j�|j|j�|j|j��|jd�|j�t�}|j|�|jj!|�}|j#|dtj$�|j#|dtj$�dx|d<|d<|j'|d|
ddd|g�|	j)|�ycc}w)NrTr?rr+r�ro)r�r[rYrr�r�rar�r�rr�rjr]r@r�r�rmr_rlr]rb)
r-rBr�rrr�rlr�r�rc�zde�rter�s
             r�&test_result_exception_one_cancellationz8FutureGatherTests.test_result_exception_one_cancellationsp��%*�1�X�/�%-��!�M�M�7�7�9�%-�/���1�a��A�q��n�n�Q��1�a��A��F��
�
$�
$�
&�����b�!�	���Q���!��	�����	���
����t�}�}�%��������$�	���Q��	���
��n��	������m�m�.�.�s�3�����c�!�f�g�&<�&<�=����c�!�f�g�&<�&<�=����A���Q������q�#�t�Q��c�:�;�
�"�"�3�'��)/s�!GN)r2r3r4r`r_r�r�r�r�r�r�r�rrrr�r��s/���/��+�	+�'�	%��$(rr�c�B�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zy
)�CoroutineGatherTestsc�N�g}|D]}|fd�}|j|���|S)Nc��"K�|�d{���S7��wrrr�s rrJz/CoroutineGatherTests.wrap_futures.<locals>.coro2s���� �y� �y�r)rS)r-r�corosr�rJs     rr`z!CoroutineGatherTests.wrap_futures/s.�����C�"�
!��L�L��� ���rc�R�����fd�}|jj|��S)Nc��6�K�tj�i���S�wrr�)r$r�s��rrJz*CoroutineGatherTests._gather.<locals>.coro8s������>�>�4�2�6�2�2�s�)r[rm)r-r$r�rJs `` rr_zCoroutineGatherTests._gather7s���	3��}�}�/�/���7�7rc��d�}|�}|j|j�|�}|j|j�|jtd�5t	j
||�ddd�y#1swYyxYw)Nc��K�y�wr�rrrrrJz@CoroutineGatherTests.test_constructor_without_loop.<locals>.coro=r�rr�)r�r@r�r�rr�)r-rJ�gen1�gen2s    r�test_constructor_without_loopz2CoroutineGatherTests.test_constructor_without_loop<sa��	��v������
�
�#��v������
�
�#�
�
#�
#�L�2I�
J��N�N�4��&�K�
J�
J�s�A>�>Bc����d�}|��|����fd�}|jj|��}|j|j|j�|jj|�y)Nc��K�y�wr�rrrrrJzDCoroutineGatherTests.test_constructor_use_running_loop.<locals>.coroGr�rc��8�K�tj���S�wrr�)r�r�s��rr�zFCoroutineGatherTests.test_constructor_use_running_loop.<locals>.gatherKs������>�>�$��-�-�s�)r[rmr�r�)r-rJr�r�r�r�s    @@r�!test_constructor_use_running_loopz6CoroutineGatherTests.test_constructor_use_running_loopFsY���	��v���v��	.��m�m�.�.�v�x�8���
�
�c�i�i����/��
�
�(�(��-rc�R�d�}tj|j�|jtjd�|�}|�}tj||�}|j|j|j�|jj|�y)Nc��K�y�wr�rrrrrJzCCoroutineGatherTests.test_constructor_use_global_loop.<locals>.coroSr�r)rr�r�r�r�r�r�rm)r-rJr�r�r�s     r� test_constructor_use_global_loopz5CoroutineGatherTests.test_constructor_use_global_loopQss��	����t���/�����.�.��5��v���v���n�n�T�4�(���
�
�c�i�i����1����*�*�3�/rc���d�}|d�}|j|||d�|�}|j|j�|j|j	�gd��y)Nc��K�|S�wrrr�s rrJz<CoroutineGatherTests.test_duplicate_coroutines.<locals>.coro^r�r3r��def)r�r�r�r�)r_r]r[r]r�)r-rJrr�s    r�test_duplicate_coroutinesz.CoroutineGatherTests.test_duplicate_coroutines]sO��	���K���l�l�1�a��e��a�0�����t�}�}�%��������'C�Drc�������d�|jj����fd�}tj|�|j���tj|�|j���d�����fd�}tj|�|j��}t	j
|j�|j
|j��|jtj�5|jj|�ddd�|j�j��|j
�j��|j
�j��|j
�j��t	j
|j�|j�d�y#1swY��xYw)Nrc��0�K���d{����dz
�y7�
�wr�rr�s��rr�z?CoroutineGatherTests.test_cancellation_broadcast.<locals>.innerjr�r�rNc��\�K�tj������d{����dz
�y7�
�wr�r�)rr�gathererr�s����rr z?CoroutineGatherTests.test_cancellation_broadcast.<locals>.outerss,������~�~�f�f�5�H��N�N��S�L�E�
�s�,�*�,)r[rYrr�r�rrhrjrkrlrmr@rKr])	r-r�r r�rrr�r�r�s	    @@@@@r�test_cancellation_broadcastz0CoroutineGatherTests.test_cancellation_broadcastesC��������,�,�.��	�
�&�&�u�w�T�]�]�C���&�&�u�w�T�]�]�C����	�
�!�!�%�'��
�
�>�����t�}�}�-�������
�#�
�
�
�w�5�5�
6��M�M�,�,�Q�/�7�������*�+�����(�(�*�+�����(�(�*�+�����(�(�*�+����t�}�}�-������"�7�
6�s�G�Gc�����d��|jj��|jj�����fd�}tj|�|j��}t	j
|j��j
d�t	j
|j��j
d�t	j
|j�|j|j�t�y)Nc��8K�|�d{���td��7��w)Nzshould not be ignoredr�r�s rr�z:CoroutineGatherTests.test_exception_marking.<locals>.inner�s�����G�G��6�7�7�
�s���c��f�K�tj��������d{���y7��wrr�)r�rr�s���rr z:CoroutineGatherTests.test_exception_marking.<locals>.outer�s#������.�.��q��5��8�4�4�4�s�&1�/�1rN)
r[rYrr�r�rr�r_rnr�)r-r r�r�rr�s   @@@r�test_exception_markingz+CoroutineGatherTests.test_exception_marking�s����	8�
�M�M�'�'�)���M�M�'�'�)��	5�
�!�!�%�'��
�
�>�����t�}�}�-�	���T�����t�}�}�-�	���T�����t�}�}�-����a�k�k�m�\�:rc�d�tjd�5d�}|d�}|jt�5|j	|i�ddd�|j|j�|jjj�ddd�y#1swY�QxYw#1swYyxYw)Nz8asyncio.base_events.BaseEventLoop.call_exception_handlerc��K�|S�wrrr�s rrJz2CoroutineGatherTests.test_issue46672.<locals>.coro�s������r3r�)	rr�rkr�r_r]r[r��assert_not_called)r-rJrs   r�test_issue46672z$CoroutineGatherTests.test_issue46672�s���
�Z�Z�F�
�
��U��A��"�"�9�-����Q��#�.��N�N�4�=�=�)��M�M�0�0�B�B�D�
�
�.�-��
�
�s#�!B&�B�
AB&�B#	�B&�&B/N)r2r3r4r`r_r�r�r�r�r�r�r�rrrr�r�-s2���8�
'�	.�
0�E�#�@;�*Err�c�R��eZdZ	�fd�Zd	d�Z		d
d�Zd�Zd�Zd�Zd�Z	d�Z
�xZS)�RunCoroutineThreadsafeTestsc���t�|��tj�|_|j|j�yrr6rZs �rrVz!RunCoroutineThreadsafeTests.setUp�r7rc��
K�	tjd��d{���|rtd��|rJtj|j�j�tjd��d{���||zS7�b7��w)Nrc�Fail!r)rr�r�rHrFrj)r-r�rr�rjs     rrLzRunCoroutineThreadsafeTests.add�sm����0��m�m�D�!�!�!���w�'�'��� � ����+�2�2�4��-�-��"�"�"��1�u��
	"��

#�s"�B�A?�AB�5B�6
B�Bc�|�	|jdd||��}tj||j�}|r&|jj	|j
d�	|j
|�|j�xs|j�SS#|j�xs|j�wwxYw)Nrr�)r�rj)	rLr�run_coroutine_threadsaferF�call_soon_threadsafer<r�r�rj)r-r�rjrN�advance_cororJrs       r�targetz"RunCoroutineThreadsafeTests.target�s���2��x�x��1�4��x�7���1�1�$��	�	�B���
�I�I�*�*�4�9�9�d�;�	-��=�=��)��K�K�M�,�V�]�]�_�,��F�K�K�M�,�V�]�]�_�,�s� B�&B;c��	|jjd|j�}|jj|�}|j	|d�yr�)rF�run_in_executorr�rmr])r-rr�s   r�test_run_coroutine_threadsafez9RunCoroutineThreadsafeTests.test_run_coroutine_threadsafe�sC��G����*�*�4����=�����-�-�f�5�������#rc�*�	|jjd|jd�}|jt�5}|jj|�ddd�|j
djj�y#1swY�0xYw)NTr�)	rFr�r�rkr�rmrCrnr$)r-r�exc_contexts   r�,test_run_coroutine_threadsafe_with_exceptionzHRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_with_exception�sm��	(����*�*�4����d�C��
�
�
�|�
,���I�I�(�(��0�-��
�
�g�{�4�4�9�9�:�-�
,�s�B	�	Bc���	�fd�}�jjd|�}�jtj�5�jj|�ddd�t
j�j�tj�j�D]!}�j|j���#y#1swY�lxYw)Nc�(���jd��S)Nrr3�r�r,s�rrTzXRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_with_timeout.<locals>.<lambda>�s���4�;�;�q�;�1r)rFr�rkrrWrmr�rrrhr�)r-r�rras`   r�*test_run_coroutine_threadsafe_with_timeoutzFRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_with_timeout�s����	%�1�����*�*�4��:��
�
�
�w�3�3�
4��I�I�(�(��0�5����t�y�y�)��%�%�d�i�i�0�D��O�O�D�I�I�K�(�1�	5�
4�s�C
�
Cc����	�fd�}�jjd|�}�jtj�5�jj|�ddd�y#1swYyxYw)Nc�(���jd��S)NTrRr�r,s�rrTzZRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_task_cancelled.<locals>.<lambda>�s���4�;�;�d�;�3r)rFr�rkrrlrm)r-r�rs`  r�,test_run_coroutine_threadsafe_task_cancelledzHRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_task_cancelled�sU���	'�3�����*�*�4��:��
�
�
�w�5�5�
6��I�I�(�(��0�7�
6�
6�r�c���	d�}�jjd�fd��}tj�}�jj	|��j�jj�jj���jj
|��jt�5}�jj|�ddd��jt|j�d�|j\\}}}�j|dj�y#1swY�`xYw)Nc��t�r)�	NameError)rFrJs  r�task_factoryzfRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_task_factory_exception.<locals>.task_factory�s���Orc�(���jd��S)NT)r�r�r,s�rrTzbRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_task_factory_exception.<locals>.<lambda>�s���$�+�+�4�+�8rrrn)rFr�r�rarr�rX�get_task_factoryrkr�rmr]r,�call_args_listrLrn)r-r�rr�r�rFr'r�s`       r�4test_run_coroutine_threadsafe_task_factory_exceptionzPRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_task_factory_exception�s���	5�	��i�i�'�'��8�:���*�*�,���	�	�'�'��1�	
����	�	�2�2��	�	�2�2�4�	6��	�	�"�"�<�0��
�
�y�
)�[��I�I�(�(��-�*�	
����X�4�4�5�q�9�"*�"4�"4����w�������-�{�/D�/D�E�
*�
)�s�D=�=E)FF)FFNF)r2r3r4rVrLr�r�r�r�r�r�r�r�s@rr�r��s7���9�'�
�8<�!�-�"$�;�
)�1�Frr�c�.��eZdZ�fd�Z�fd�Zd�Z�xZS)�
SleepTestsc���t�|��tj�|_|j|j�yrr6rZs �rrVzSleepTests.setUp
r7rc�d��|jj�d|_t�|�
�yr�rFr@rU�tearDownrZs �rr�zSleepTests.tearDown
�#����	�	������	�
���rc�����d��fd�����fd�}�jj|���j�d�y)Nrc����|z
�yrr)rzr�s �r�
inc_resultz.SleepTests.test_sleep_zero.<locals>.inc_result
s����c�M�Frc����K��jj�d��j�d�tjdd���d{���}�j�d��|�y7��w)Nrrr;r�)rFrkr]rr�)rzr�r�r-s ���rrJz(SleepTests.test_sleep_zero.<locals>.coro
sZ������I�I���
�A�.����V�Q�'��
�
�a��3�3�C����V�Q�'��s�O�4�s�A	A.�A,�
 A.�)rFrmr])r-rJr�r�s` @@r�test_sleep_zerozSleepTests.test_sleep_zero
s8�����	�	�	
�	�	�$�$�T�V�,������$r)r2r3r4rVr�r�r�r�s@rr�r�
s���'�
�
%rr�c�(��eZdZ�fd�Z�fd�Z�xZS)�CompatibilityTestsc���t�|��tj�|_|j|j�yrr6rZs �rrVzCompatibilityTests.setUp,
r7rc�d��|jj�d|_t�|�
�yrr�rZs �rr�zCompatibilityTests.tearDown1
r�r)r2r3r4rVr�r�r�s@rr�r�(
s���'�
�rr��__main__)F):r�rkrzr�rxr�rVr�r��unittestrrrrr�test.test_asynciorr�r�r�test.support.script_helperr	rrr r(r*r6rDr�r��
skipUnlessri�TestCaser�r�r�r�r�r�r�r�r�r�r'r/r4rBrGrJrXr�r�r�r�r�r2rDrrr�<module>r�s�����	�	�
�	�
���������1��7�(�	�
?�
(� 
�
���f%�f%�RK7�t2�2�j����W�W�j�1�.��U�H�-�5�7�*�-��$�-�-�*�7�*�8����W�W�j�1�.��U�H�-�5�7��0�-��1D�1D�0��7�0�����W�U�H�-�5�7���=�*�2E�2E���7������W�W�j�1�5�7���=�*�2E�2E���7������W�U�H�-�5�7��=�*�*=�*=��7������W�W�j�1�5�7�0�=�*�*=�*=�0�7�0��M�>�&�/�/����M�:�3F�3F����
����W�U�H�-�5�7�&��,�,�&�7�&�0m9�m9�`5�:�.�.�0J�5�����W�U�$6�7�5�7�M�*�-�-�/I�M�7�M�=�=�<3�-�z�/B�/B�3�����W�U�H�-�7��U�$5�6�5�7�>�,�j�.A�.A�>�7�>�8�z�*�*�8�0c3�c3�LY(���)<�)<�Y(�xyE�?�J�,?�,?�yE�x_F�*�"5�"5�_F�D%��$�$�%�:��,�,���z���H�M�M�O�r

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