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

��Vc@����	ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlmZddl
mZddlZddlmZddlmZddlmZddlmZddlmZdd	lmZd
�Zd�ZdId
�Zd�ZGd�d��ZGd�d��ZGd�d��Z d�Z!Gd�d��Z"ej#e$ed��oe$ed��d��Gd�de e"ej%����Z&ej#e$ed��oe$ed��d��e!Gd�de ej%������Z'ej#e$ed��d��e!Gd�d e ej%������Z(ej#e$ed��d��e!Gd!�d"e ej%������Z)ej#e$ed��d��Gd#�d$e ej%����Z*ej#e$ed��d��Gd%�d&e ej%����Z+Gd'�d(e e"ej%��Z,e!Gd)�d*e ej%����Z-ej#e$ed��d��Gd+�d,ej%����Z.Gd-�d.��Z/Gd/�d0ej%e/��Z0ej#e$ed1��d��Gd2�d3ej%e/����Z1Gd4�d5��Z2Gd6�d7e2ej%��Z3ej#e$ed��d��Gd8�d9e2ej%����Z4Gd:�d;ej%��Z5Gd<�d=��Z6Gd>�d?e6ej%��Z7Gd@�dAe6ej%��Z8GdB�dCej%��Z9GdD�dEej%��Z:GdF�dGej%��Z;e<dHkrej=��dSdS)J�N)�mock)�GenericAlias)�
coroutines)�futures)�tasks)�utils)�support)�assert_python_okc�.�tjd��dS�N)�asyncio�set_event_loop_policy���0D:\Python311\Lib\test\test_asyncio\test_tasks.py�tearDownModulers���!�$�'�'�'�'�'rc��
K�dSrrrrr�coroutine_functionrs�����DrFc��|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 #s����&��u������%���?� ��$����8�8�U�U�U�C�C�C��q����5��8�8�=�	>�?�
*2���5�5�5�#�#�#�>�>rc�\�	d}	|j}|�n|}|dz
}�t|��|j|fS)NrTr)�__context__�type�args)�exc�depth�contexts   r�get_innermost_contextr(0sO���
�E���/���	����
��
��
�
��I�I�s�x��'�'rc��eZdZd�Zd�ZdS)�Dummyc��dS)Nz<Dummy>r��selfs r�__repr__zDummy.__repr__Bs���yrc��dSrr)r-r$s  r�__call__zDummy.__call__E����rN)�__name__�
__module__�__qualname__r.r0rrrr*r*@s2���������
�
�
�
�
rr*c�&�eZdZd�Zd�Zd�Zd�ZdS)�CoroLikeObjectc� �td����N�*)�
StopIteration)r-�vs  r�sendzCoroLikeObject.sendJs���B���rc��dSrr)r-r%s  r�throwzCoroLikeObject.throwMr1rc��dSrrr,s r�closezCoroLikeObject.closePr1rc��|Srrr,s r�	__await__zCoroLikeObject.__await__Ss���rN)r2r3r4r<r>r@rBrrrr6r6IsP������ � � �
�
�
�
�
�
�����rr6c���eZdZdZdZdrd�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/�Z1d0�Z2d1�Z3d2�Z4d3�Z5d4�Z6d5�Z7d6�Z8d7�Z9d8�Z:d9�Z;d:�Z<d;�Z=d<�Z>d=�Z?d>�Z@d?�ZAd@�ZBdA�ZCdB�ZDdC�ZEdD�ZFdE�ZGdF�ZHdG�ZIdH�ZJdI�ZKdJ�ZLdK�ZMdL�ZNdM�ZOdN�ZPdO�ZQdP�ZRdQ�ZSdR�ZTdS�ZUdT�ZVdU�ZWdV�ZXdW�ZYdX�ZZdY�Z[dZ�Z\d[�Z]d\�Z^d]�Z_d^�Z`eajbd_��d`���Zcda�Zddb�Zedc�Zfdd�Zgeajbd_��de���Zhdf�Zidg�Zjdh�Zkdi�Zldj�Zmdk�Zndl�Zodm�Zpdn�Zqdo�Zrdp�Zsdq�Zt�xZuS)s�
BaseTaskTestsN�TestTaskc�>�|j�||||���S)N)�loop�namer')�	__class__�Task)r-rG�cororHr's     r�new_taskzBaseTaskTests.new_task\s!���~�"�"�4�d��w�"�O�O�Orc�8�|j�|���S�N�rG)rI�Future�r-rGs  r�
new_futurezBaseTaskTests.new_future_s���~�$�$�$�$�/�/�/rc�����t����������_�j��j���fd��j_dS)Nc�8�����j��Sr)rRrGr,s�r�<lambda>z%BaseTaskTests.setUp.<locals>.<lambda>fs���$�/�/�$�)�*D�*D�r)�super�setUp�
new_test_looprG�set_task_factoryrL�
create_future�r-rIs`�rrWzBaseTaskTests.setUpbsY����
���
�
�����&�&�(�(��	��	�"�"�4�=�1�1�1�"D�"D�"D�"D��	���rc��|jjt}|�|jtf��|�|t��dSr)rIrJ�str�assertEqual�__args__�assertIsInstancer�r-�tasks  r�test_generic_aliasz BaseTaskTests.test_generic_aliashsG���~�"�3�'���������/�/�/����d�L�1�1�1�1�1rc��d�}|�|j|����}|�t|d����|�|jd��|�d��|�|jd��|�tj	��5}|j�
|��ddd��n#1swxYwY|�d|jjd��dS)Nc��
K�dSrrrrrrKz;BaseTaskTests.test_task_cancel_message_getter.<locals>.coron������Dr�_cancel_message�
my messager)
rLrG�
assertTrue�hasattrr^rg�cancel�assertRaisesr
�CancelledError�run_until_complete�	exceptionr$�r-rK�t�cms    r�test_task_cancel_message_getterz-BaseTaskTests.test_task_cancel_message_getterms4��	�	�	��M�M�$�)�T�T�V�V�,�,�������#4�5�5�6�6�6�����*�D�1�1�1�	�����������*�L�9�9�9�
�
�
�w�5�
6�
6�	,�"��I�(�(��+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�	
����r�|�'8��';�<�<�<�<�<s�4C�C�"Cc��d�}|�|j|����}|�d��d|_|�|jd��|�tj��5}|j�|��ddd��n#1swxYwY|�d|j	j
d��dS)Nc��
K�dSrrrrrrKz;BaseTaskTests.test_task_cancel_message_setter.<locals>.coro}rfrrhzmy new messager)rLrGrkrgr^rlr
rmrnror$rps    r�test_task_cancel_message_setterz-BaseTaskTests.test_task_cancel_message_setter|s��	�	�	��M�M�$�)�T�T�V�V�,�,��	�������,�������*�,<�=�=�=�
�
�
�w�5�
6�
6�	,�"��I�(�(��+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�	
���)�2�<�+<�Q�+?�@�@�@�@�@s�=B$�$B(�+B(c�����Gd�d����fd���j�tj��fd�t	d��D�����dS)Nc��eZdZd�ZdS)�1BaseTaskTests.test_task_del_collect.<locals>.Evilc�,�tj��dSr)�gc�collectr,s r�__del__z9BaseTaskTests.test_task_del_collect.<locals>.Evil.__del__�s���
�����rN)r2r3r4r}rrr�Evilry�s#������
�
�
�
�
rr~c���K����Srr)r~s�r�runz0BaseTaskTests.test_task_del_collect.<locals>.run�s������4�6�6�Mrc�V��g|]%}���j�������&Sr)rLrG)�.0�_r�r-s  ��r�
<listcomp>z7BaseTaskTests.test_task_del_collect.<locals>.<listcomp>�s<������45��
�
�d�i�����/�/���r�d)rGrnr
�gather�range)r-r~r�s`@@r�test_task_del_collectz#BaseTaskTests.test_task_del_collect�s������	�	�	�	�	�	�	�	�	�	�	�	�	�	
�	�$�$��N������9>�s������
�	�	�	�	�	rc�d�tj��}|�|��}d�}	|�td��5|j�||����ddd��n#1swxYwY|���dS#|���wxYw)Nc��K�|�d{V��dSrr��futs rr�z1BaseTaskTests.test_other_loop_future.<locals>.run�s�����I�I�I�I�I�I�I�I�IrzTask .* got Future .* attached)r
�new_event_looprR�assertRaisesRegex�RuntimeErrorrGrnr@)r-�
other_loopr�r�s    r�test_other_loop_futurez$BaseTaskTests.test_other_loop_future�s����+�-�-�
��o�o�j�)�)��	�	�	�	��'�'��(I�K�K�
7�
7��	�,�,�S�S��X�X�6�6�6�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7����
7�
7�
7�
7�
���������J���������s/�B�$A8�,B�8A<�<B�?A<�B�B/c�����fd�}tj|��|j����|�td��5|j����ddd��dS#1swxYwYdS)Nc���K���d{V��dSrr)rbs�r�testz6BaseTaskTests.test_task_awaits_on_itself.<locals>.test�s������J�J�J�J�J�J�J�J�JrrOzTask cannot await on itself)r
�
ensure_futurerGr�r�rn)r-r�rbs  @r�test_task_awaits_on_itselfz(BaseTaskTests.test_task_awaits_on_itself�s����	�	�	�	�	��$�T�T�V�V�$�)�<�<�<��
�
#�
#�L�$A�C�C�	/�	/��I�(�(��.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/s�A-�-A1�4A1c���d�}|�|j|����}|j�|��|�|�����|�|���d��|�|j|j��|�|�	��|j��tj��}|�|��|�||����}|�|j|��|�|��|�
��dS)Nc��
K�dS�N�okrrrr�notmuchz.BaseTaskTests.test_task_class.<locals>.notmuch�������4rr�)rLrGrnri�doner^�result�assertIs�_loop�get_loopr
r��set_event_loopr@)r-r�rqrGs    r�test_task_classzBaseTaskTests.test_task_class�s&��	�	�	��M�M�$�)�W�W�Y�Y�/�/���	�$�$�Q�'�'�'���������!�!�!���������T�*�*�*��
�
�a�g�t�y�)�)�)��
�
�a�j�j�l�l�D�I�.�.�.��%�'�'�����D�!�!�!��M�M�$���	�	�*�*���
�
�a�g�t�$�$�$�����"�"�"��
�
�����rc���d��tj���|j���}|�|j|j��|j�|��|�|�����|�|�	��d�����}|�
|j��|�t��5}|�td��5tj|��ddd��n#1swxYwYddd��n#1swxYwY|�|jt"���fd�}|j�|����}|�|j|j��|j�|��|�|�����|�|�	��d��tj|j��|�
tjd��|�t��5}tj�����}ddd��n#1swxYwY|�|jt"��|�|j|j��|j�|��|�|�����|�|�	��d��dS)Nc��
K�dSr�rrrrr�z;BaseTaskTests.test_ensure_future_coroutine.<locals>.notmuch�r�rrOr��There is no current event loopc��@�K�tj�����Sr�r
r�)r�s�rr�z8BaseTaskTests.test_ensure_future_coroutine.<locals>.test�s������(�����3�3�3r)r
r�rGr�r�rnrir�r^r��
addCleanupr@�assertWarns�DeprecationWarningr�r��filename�__file__r�)r-rq�arrr�r�s     @r�test_ensure_future_coroutinez*BaseTaskTests.test_ensure_future_coroutine�sy���	�	�	��!�'�'�)�)�$�)�<�<�<���
�
�a�g�t�y�)�)�)��	�$�$�Q�'�'�'���������!�!�!���������T�*�*�*��G�I�I������� � � �
�
�
�0�
1�
1�	)�R��'�'��6V�W�W�
)�
)��%�a�(�(�(�
)�
)�
)�
)�
)�
)�
)�
)�
)�
)�
)����
)�
)�
)�
)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	
�����h�/�/�/�	4�	4�	4�	4�	4��I�(�(�����0�0���
�
�a�g�t�y�)�)�)��	�$�$�Q�'�'�'���������!�!�!���������T�*�*�*�	��t�y�)�)�)�����.��5�5�5�
�
�
�0�
1�
1�	1�R��%�g�g�i�i�0�0�A�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1������h�/�/�/��
�
�a�g�t�y�)�)�)��	�$�$�Q�'�'�'���������!�!�!���������T�*�*�*�*�*sH�/E�D,� E�,D0	�0E�3D0	�4E�E�
E�1J�J�!Jc���|�|j��}|�d��tj|��}|j�|��|�|�����|�|�	��d��|�
||��tj��}|�|��|�
t��5tj||���}ddd��n#1swxYwY|���tj||j���}|�
||��dS)N�korO)rRrG�
set_resultr
r�rnrir�r^r�r�r�r�rl�
ValueErrorr@)r-�f_orig�frGs    r�test_ensure_future_futurez'BaseTaskTests.test_ensure_future_future�s{�������+�+�����$�����!�&�)�)���	�$�$�Q�'�'�'���������!�!�!���������T�*�*�*��
�
�a�� � � ��%�'�'�����D�!�!�!�
�
�
�z�
*�
*�	9�	9��%�f�4�8�8�8�A�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�	
�
�
�����!�&�t�y�9�9�9���
�
�a�� � � � � s�D(�(D,�/D,c���d�}|�|j|����}tj|��}|j�|��|�|�����|�|���d��|�	||��tj
��}|�|��|�t��5tj||���}ddd��n#1swxYwY|���tj||j���}|�	||��dS)Nc��
K�dSr�rrrrr�z6BaseTaskTests.test_ensure_future_task.<locals>.notmuch�r�rr�rO)rLrGr
r�rnrir�r^r�r�r�r�rlr�r@)r-r��t_origrqrGs     r�test_ensure_future_taskz%BaseTaskTests.test_ensure_future_task�s~��	�	�	����t�y�'�'�)�)�4�4���!�&�)�)���	�$�$�Q�'�'�'���������!�!�!���������T�*�*�*��
�
�a�� � � ��%�'�'�����D�!�!�!�
�
�
�z�
*�
*�	9�	9��%�f�4�8�8�8�A�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�	
�
�
�����!�&�t�y�9�9�9���
�
�a�� � � � � s�<D�D#�&D#c�>�Gd�d��}d�}tj��}|�|��tj||����|���}|�|��|�|���d��dS)Nc��eZdZd�Zd�ZdS)�6BaseTaskTests.test_ensure_future_awaitable.<locals>.Awc��||_dSr�rK�r-rKs  r�__init__z?BaseTaskTests.test_ensure_future_awaitable.<locals>.Aw.__init__s
�� ��	�	�	rc�4�|j���Sr)rKrBr,s rrBz@BaseTaskTests.test_ensure_future_awaitable.<locals>.Aw.__await__s���y�*�*�,�,�,rN)r2r3r4r�rBrrr�Awr�s2������
!�
!�
!�
-�
-�
-�
-�
-rr�c��
K�dSr�rrrrrKz8BaseTaskTests.test_ensure_future_awaitable.<locals>.coror�rrOr�)r
r�r�r�rnr^r�)r-r�rKrGr�s     r�test_ensure_future_awaitablez*BaseTaskTests.test_ensure_future_awaitable
s���	-�	-�	-�	-�	-�	-�	-�	-�	�	�	��%�'�'�����D�!�!�!��#�B�B�t�t�v�v�J�J�T�:�:�:������$�$�$���������t�,�,�,�,�,rc��|�t��5tjd��ddd��dS#1swxYwYdSr�)rl�	TypeErrorr
r�r,s r�test_ensure_future_neitherz(BaseTaskTests.test_ensure_future_neithers���
�
�
�y�
)�
)�	(�	(��!�$�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	(�	(s�=�A�Ac��tj��}|�|j��}|�t
d��5tj||���ddd��n#1swxYwY|���dS)NzRThe future belongs to a different loop than the one specified as the loop argumentrO)r
r�rRrGr�r�r�r@)r-rGr�s   r�test_ensure_future_error_msgz*BaseTaskTests.test_ensure_future_error_msg!s����%�'�'���O�O�D�I�&�&��
�
#�
#�J�18�9�9�	0�	0�
�!�!�$�/�/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�	
�
�
�����s�	A,�,A0�3A0c�z�����d��fd����fd�����fd�}�j�|����dS)Nc��,�K�����d{V��dSrr)�bars�r�fooz)BaseTaskTests.test_get_stack.<locals>.foo-s"������#�%�%�K�K�K�K�K�K�K�K�Krc��l�K���d���}	��|djjd��d}n#d}wxYwt	j��}��d|���|�d��|���}��	|d��dS)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>.bar0s���������!��$�$�A�
�� � ��1���!4�e�<�<�<�����D�������;�=�=�D�
�M�M���M�-�-�-��I�I�a�L�L�L������B����R�!3�4�4�4�4�4s�&A�Ac��b�K�tj����j������d{V��dSrN)r
r�rG)r�r�r-s���r�runnerz,BaseTaskTests.test_get_stack.<locals>.runner?s9������%�c�c�e�e�$�)�<�<�<�A��G�G�G�G�G�G�G�G�Gr�rGrn)r-r�r�r�r�s` @@@r�test_get_stackzBaseTaskTests.test_get_stack*s���������	�	�	�	�	�
	5�
	5�
	5�
	5�
	5�
	5�	�	�	�	�	�	�	�
	
�	�$�$�V�V�X�X�.�.�.�.�.rc���|j�d��d�}|�|jd��|�|jd��|�|jt��tj|��\}}|�d|��}|��}d}|�|jd��|�|j|��|�	|j|��}|�
t����t|d||j
d�	��}|�t|��d
|z��|���|�t|��d|z��|�t"j|jj|��t|d||j
��}|�t|��d
|z��|�	|j|����}|j�|��t|d||j
��}|�t|��d|z��dS)NFc��
K�dS�N�abcrrrrr�z-BaseTaskTests.test_task_repr.<locals>.notmuchI������5rr�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'>)rG�	set_debugr^r2r�r4r3�
test_utils�get_function_sourcerL�add_done_callbackr*r �_source_traceback�reprrkrlr
rmrn)	r-r�r��linenor�gen�
coro_qualnamerqrKs	         r�test_task_reprzBaseTaskTests.test_task_reprFs����	���E�"�"�"�	�	�	�	
����)�9�5�5�5�����-�?�	A�	A�	A�����+�X�6�6�6�%�9�'�B�B���&�!���6�6�*���g�i�i��G�
������y�1�1�1�����)�=�9�9�9�
�M�M�$�)�S�)�)��	���E�G�G�$�$�$��
�y�#� !� 3�t�E�E�E������a���K�d�R�	T�	T�	T�	
���
�
�
�����a���N�QU�U�	W�	W�	W�	
���'�0��)�6��	;�	;�	;��
�v�s� !� 3�5�5������a���>��E�	G�	G�	G�
�M�M�$�)�W�W�Y�Y�/�/���	�$�$�Q�'�'�'��
�v�s� !� 3�5�5������a���J�T�Q�	S�	S�	S�	S�	Src���d�}|�|j|��d��}|�|j|��d��}|�t|��t|����t	jdt|����}|�|��t	jdt|����}|�|��|�t|�	d����t|�	d������|j�
|��|j�
|��dS)Nc��
K�dS�N�{rrrrr�z;BaseTaskTests.test_task_repr_autogenerated.<locals>.notmuchz������3rz ^<Task pending name='Task-(\d+)'r)rLrG�assertNotEqualr��re�match�assertIsNotNone�
assertLess�int�grouprn)r-r��t1�t2�match1�match2s      r�test_task_repr_autogeneratedz*BaseTaskTests.test_task_repr_autogeneratedys3��	�	�	��]�]�4�9�g�g�i�i��
6�
6��
�]�]�4�9�g�g�i�i��
6�
6�����D��H�H�d�2�h�h�/�/�/���=�t�B�x�x�H�H�����V�$�$�$���=�t�B�x�x�H�H�����V�$�$�$�	
����F�L�L��O�O�,�,�c�&�,�,�q�/�/�.B�.B�C�C�C��	�$�$�R�(�(�(��	�$�$�R�(�(�(�(�(rc��d�}|�|j|����}|�dh��|�|���d��|j�|��dS)Nc��
K�dSr�rrrrr�z:BaseTaskTests.test_task_repr_name_not_str.<locals>.notmuch�r�r�z{6})rLrG�set_namer^�get_namern)r-r�rqs   r�test_task_repr_name_not_strz)BaseTaskTests.test_task_repr_name_not_str�sy��	�	�	�
�M�M�$�)�W�W�Y�Y�/�/��	�
�
�A�3������������u�-�-�-��	�$�$�Q�'�'�'�'�'rc	���|j�d��d�}|�|j��}|�|j||����}t	j|j��|�t|��dtj	t|����z��|�
d��|j�|��dS)NFc��K�|�d{V��Srrr�s r�wait_forz7BaseTaskTests.test_task_repr_wait_for.<locals>.wait_for�s�����9�9�9�9�9�9�rz<Task .* wait_for=%s>)rGr�rRrLr��run_brieflyr�r�r��escaper�rn)r-r
r�rbs    r�test_task_repr_wait_forz%BaseTaskTests.test_task_repr_wait_for�s����	���E�"�"�"�	�	�	��o�o�d�i�(�(���}�}�T�Y����
�
�6�6����t�y�)�)�)�����d���0�2�9�T�#�Y�Y�3G�3G�G�	I�	I�	I�	���t�����	�$�$�T�*�*�*�*�*rc������fd�}d��d��|��}|�|j�|��d��dS)Nc��R�K�����d{V��}����d{V��}||zSrr)r��b�inner1�inner2s  ��r�outerz-BaseTaskTests.test_task_basics.<locals>.outer�s>������f�h�h�������A��f�h�h�������A��Q�3�Jrc��
K�dSr8rrrrrz.BaseTaskTests.test_task_basics.<locals>.inner1�������2rc��
K�dS)Ni�rrrrrz.BaseTaskTests.test_task_basics.<locals>.inner2�r�ri)r^rGrn)r-rrqrrs   @@r�test_task_basicszBaseTaskTests.test_task_basics�sy����	�	�	�	�	�	�
	�	�	�	�	�	�
�E�G�G�������5�5�a�8�8�$�?�?�?�?�?rc�2����tj��������d�����fd�}	���|����}��|������dS#����wxYw)Nc��K�t�r�r�rrr�raise_errorzFBaseTaskTests.test_exception_chaining_after_await.<locals>.raise_error�s�����rc���K�	td���#t$r�}��������}	|�d{V��nw#t$rj}��t	|��t
��|j}��t	|��|jftdf��Yd}~nd}~wwxYwYd}~dSYd}~dSd}~wwxYw)N�)r)�KeyError�	ExceptionrLr^r#r�r"r$)r%rb�chainedrGrr-s   ���rr�z>BaseTaskTests.test_exception_chaining_after_await.<locals>.run�s�����

*��q�k�k�!���
*�
*�
*��}�}�T�;�;�=�=�9�9��*��J�J�J�J�J�J�J�J�� �*�*�*��$�$�T�#�Y�Y�
�;�;�;�!�o�G��$�$�d�7�m�m�W�\�%B�!�4�(�*�*�*�*�*�*�*�*�����*�����J�J�J�J�J�*�*�*�*�*�*�����
*���s>��
C�C	�A�C	�
B:�A B5�0C	�5B:�:C	�	C)r
r�r�rLrnr@)r-r�rbrGrs`  @@r�#test_exception_chaining_after_awaitz1BaseTaskTests.test_exception_chaining_after_await�s�������%�'�'�����D�!�!�!�	�	�	�	*�	*�	*�	*�	*�	*�	*�	��=�=��s�s�u�u�-�-�D��#�#�D�)�)�)��J�J�L�L�L�L�L��D�J�J�L�L�L�L���s�3B�Bc�h�����d�tj��������d������fd�}	���|����}��|������n#����wxYw���d��dS)Nc��
K�|�rr)r%s r�process_exczYBaseTaskTests.test_exception_chaining_after_await_with_context_cycle.<locals>.process_exc�s�����Irc���K�	td���#t$ra}����|����}	|�d{V��n'#t$r}||ju�d|_Yd}~nd}~wwxYwYd}~dSYd}~dSd}~wwxYw)Nr�)rrrL�
BaseExceptionr")r%rb�	has_cyclerGr$r-s  ����rr�zQBaseTaskTests.test_exception_chaining_after_await_with_context_cycle.<locals>.run�s������	
+��s�m�m�#���
+�
+�
+��}�}�T�;�;�s�+;�+;�<�<��+��J�J�J�J�J�J�J�J��$�+�+�+�!$���!7�I�&*�C�O�O�O�O�O�O�����+�����J�J�J�J�J�$�O�O�O�O�O�����
+���s=��
A?�A:�A�A:�
A+�A&�!A:�&A+�+A:�:A?F)r
r�r�rLrnr@r^)r-r�rbr'rGr$s`  @@@r�6test_exception_chaining_after_await_with_context_cyclezDBaseTaskTests.test_exception_chaining_after_await_with_context_cycle�s��������	��%�'�'�����D�!�!�!�	�	�	�	+�	+�	+�	+�	+�	+�	+�	+�	��=�=��s�s�u�u�-�-�D��#�#�D�)�)�)��J�J�L�L�L�L��D�J�J�L�L�L�L��������E�*�*�*�*�*s�3B�Bc�&�tj��}d�}	|�||����}|�|�����|�dt
|����|�|�����|�|�����|�	dt
|����|�|�����|�
tj��5|�|��ddd��n#1swxYwY|�
��dS#|�
��wxYw)Nc��>K�tjd���d{V��dS�N�
�r
�sleeprrrrbz+BaseTaskTests.test_cancelling.<locals>.task��.�����-��#�#�#�#�#�#�#�#�#�#�#r� cancelling )r
r�rL�assertFalse�
cancelling�assertNotInr�rirk�assertInrlrmrnr@�r-rGrbrqs    r�test_cancellingzBaseTaskTests.test_cancelling�s����%�'�'��	$�	$�	$�	��
�
�d�D�D�F�F�+�+�A����Q�\�\�^�^�,�,�,����^�T�!�W�W�5�5�5��O�O�A�H�H�J�J�'�'�'��O�O�A�L�L�N�N�+�+�+��M�M�.�$�q�'�'�2�2�2�

�O�O�A�H�H�J�J�'�'�'��"�"�7�#9�:�:�
+�
+��'�'��*�*�*�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+�
�J�J�L�L�L�L�L��D�J�J�L�L�L�L���s0�DE:�7E�
E:�E�E:� E�!E:�:Fc�`�tj��}d�}	|�||����}|�tjd����|�|�����|�dt|����|�	|�
��d��|�|�����|�tjd����|�
dt|����|�	|�
��d��|�|�����|�|�����|�	|�
��d��|�|�����|�tj��5|�|��ddd��n#1swxYwY|�|�����|�|�����|���|�|�����|�|�����|���dS#|���wxYw)Nc���K�	tjd���d{V��dS#tj$rCtj�����tjd���d{V��YdSwxYwr+)r
r.rm�current_task�uncancelrrrrbz/BaseTaskTests.test_uncancel_basic.<locals>.tasks�����
(��m�B�'�'�'�'�'�'�'�'�'�'�'���)�
(�
(�
(��$�&�&�/�/�1�1�1��m�B�'�'�'�'�'�'�'�'�'�'�'�'�
(���s� �AA2�1A2�{�G�z�?r0rr)r
r�rLrnr.rirkr4r�r^r2r1�	cancelledr3rlrmr�r:r@r5s    r�test_uncancel_basicz!BaseTaskTests.test_uncancel_basics����%�'�'��	(�	(�	(�	��
�
�d�D�D�F�F�+�+�A��#�#�G�M�$�$7�$7�8�8�8�
�O�O�A�H�H�J�J�'�'�'��M�M�.�$�q�'�'�2�2�2����Q�\�\�^�^�Q�/�/�/����Q�[�[�]�]�+�+�+��#�#�G�M�$�$7�$7�8�8�8�
���^�T�!�W�W�5�5�5����Q�\�\�^�^�Q�/�/�/����Q�[�[�]�]�+�+�+�
�O�O�A�H�H�J�J�'�'�'����Q�\�\�^�^�Q�/�/�/����Q�[�[�]�]�+�+�+��"�"�7�#9�:�:�
+�
+��'�'��*�*�*�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+��O�O�A�K�K�M�M�*�*�*��O�O�A�F�F�H�H�%�%�%�
�J�J�L�L�L��O�O�A�K�K�M�M�*�*�*��O�O�A�F�F�H�H�%�%�%��J�J�L�L�L�L�L��D�J�J�L�L�L�L���s1�HL�$I�:L�I
�
L�
I
�B3L�L-c����tj��}dtdtf�fd�}��||dd�����}|�|��\}}}��|����|����|����|���d����||dd�����}|�|��\}}}��|����|����|����|���d��dS)Nr.�timeoutc������K�tj�������}d�d}d}��fd�}|�||��}		tj|���d{V��d}|����rD����dkr,tj��dtj	urt�n_#|����rD����dkr,tj��dtj	urt�wxYwn%#t$r�	����YnwxYwd}tjd���d{V���||fS)NFc�4��d�����dS�NT�rk)rb�	timed_outs��r�
on_timeoutzdBaseTaskTests.test_uncancel_structured_blocks.<locals>.make_request_with_timeout.<locals>.on_timeoutJs��� �	����
�
�
�
�
rTr)r
r9r��
call_laterr.rkr:�sys�exc_inform�TimeoutErrorri)
r.r?rG�structured_block_finished�outer_code_reachedrE�timeout_handlerbrDr-s
       @@�r�make_request_with_timeoutzPBaseTaskTests.test_uncancel_structured_blocks.<locals>.make_request_with_timeoutBs���������'�)�)�D��=�=�?�?�D��I�(-�%�!&��
�
�
�
�
�
�
"�_�_�W�j�A�A�N�+
+�(+�!�-��.�.�.�.�.�.�.�.�.�04�-�"�)�)�+�+�+�!�"+� �M�M�O�O�q�0�"+� �L�N�N�1�-��1G�G�"+�D+�*���G#�)�)�+�+�+�!�"+� �M�M�O�O�q�0�"+� �L�N�N�1�-��1G�G�"+�D+�*�*�*�*�*����
+�
+�
+����	�*�*�*�*�*�
+����"&���-��"�"�"�"�"�"�"�"�"��7�9K�K�Ks&�C�-AD(�AD$�$D(�(E
�	E
�$@皙�����?)r.r?r)	r
r��floatrLrnrir1r^r2)r-rGrMr�rDrJrKr�s`       r�test_uncancel_structured_blocksz-BaseTaskTests.test_uncancel_structured_blocks2s�����%�'�'��>	L�e�>	L�e�>	L�>	L�>	L�>	L�>	L�>	L�B�]�]�4�!:�!:��s�!S�!S�!S�
T�
T���#�#�B�'�'�	A�	�,�.@�	
���	�"�"�"����2�3�3�3����*�+�+�+�	
��������!�,�,�,��]�]�4�!:�!:��D�!Q�!Q�!Q�
R�
R���#�#�B�'�'�	A�	�,�.@�	
����#�#�#����1�2�2�2����*�+�+�+���������!�,�,�,�,�,rc�4���fd�}��|��}d�}��||����}|�|j����t
j��5|�|��ddd��n#1swxYwY��|�	������|�
������|�����dS)Nc3�H�K�dV�}��d|��dV�dS�NrNr��assertAlmostEqual��whenr-s �rr�z&BaseTaskTests.test_cancel.<locals>.gen��3������5�5�D��"�"�4��.�.�.��G�G�G�G�Grc��>K�tjd���d{V��dS)NrN�r-rrrrbz'BaseTaskTests.test_cancel.<locals>.task�s-�����-��%�%�%�%�%�%�%�%�%��2r)rXrL�	call_soonrkrlr
rmrnrir�r<r1)r-r�rGrbrqs`    r�test_cancelzBaseTaskTests.test_cancel�sE���	�	�	�	�	�
�!�!�#�&�&��	�	�	�
�M�M�$�����'�'�����q�x� � � �
�
�
�w�5�
6�
6�	'�	'��#�#�A�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'���������!�!�!�������
�
�&�&�&���������$�$�$�$�$s�6B�B�Bc�h���	�
�gd�}|D�]%\�}������5tj���	���	��d��
��	��
fd�}���	|����}��tj��5}�	�|��ddd��n#1swxYwY|j}��	|j
|��t|��}��	|tj|df��ddd��n#1swxYwY��'dS)N�)rr)rr)�rhr`)��ra��cancel_argsc��>K�tjd���d{V��dSr+r-rrrr.zHBaseTaskTests.test_cancel_with_message_then_future_result.<locals>.sleep��.����!�-��+�+�+�+�+�+�+�+�+�+�+rc����K���������}tjd���d{V��|j��tj|g���d{V��\}}|���dS�Nr)rLr
r.rk�waitr��rbr��pendingrdrGr-r.s   ����rrKzGBaseTaskTests.test_cancel_with_message_then_future_result.<locals>.coro�s�������=�=��u�u�w�w�7�7�D�!�-��*�*�*�*�*�*�*�*�*��D�K��-�-�*1�,��v�*>�*>�$>�$>�$>�$>�$>�$>�M�D�'��K�K�M�M�M�M�Mrr��subTestr
r�r�rLrlrmrnror^r$r(�r-�cases�
expected_argsrKrbrrr%�actualrdrGr.s`       @@@r�+test_cancel_with_message_then_future_resultz9BaseTaskTests.test_cancel_with_message_then_future_result�s�������
�
�
��+0�	@�	@�&�K�����+��6�6�
@�
@��-�/�/���#�#�D�)�)�)�,�,�,�"�"�"�"�"�"�"�"��}�}�T�4�4�6�6�2�2���&�&�w�'=�>�>�2�"��+�+�D�1�1�1�2�2�2�2�2�2�2�2�2�2�2����2�2�2�2��l��� � ���=�9�9�9�.�s�3�3��� � ���+�]�A�>�@�@�@�+
@�
@�
@�
@�
@�
@�
@�
@�
@�
@�
@����
@�
@�
@�
@��	@�	@�7�A1D%�B:�.D%�:B>�>D%�B>�AD%�%D)	�,D)	c�h���	�
�gd�}|D�]%\�}������5tj���	���	��d��
��	��
fd�}���	|����}��tj��5}�	�|��ddd��n#1swxYwY|j}��	|j
|��t|��}��	|tj|df��ddd��n#1swxYwY��'dS)Nr_rcc��>K�tjd���d{V��dSr+r-rrrr.zKBaseTaskTests.test_cancel_with_message_then_future_exception.<locals>.sleep�rfrc����K���������}tjd���d{V��|j��tj|g���d{V��\}}|���dSrh�rLr
r.rkrirorjs   ����rrKzJBaseTaskTests.test_cancel_with_message_then_future_exception.<locals>.coro�s�������=�=��u�u�w�w�7�7�D�!�-��*�*�*�*�*�*�*�*�*��D�K��-�-�*1�,��v�*>�*>�$>�$>�$>�$>�$>�$>�M�D�'��N�N�$�$�$�$�$rrrlrns`       @@@r�.test_cancel_with_message_then_future_exceptionz<BaseTaskTests.test_cancel_with_message_then_future_exception�s�������
�
�
��+0�	@�	@�&�K�����+��6�6�
@�
@��-�/�/���#�#�D�)�)�)�,�,�,�%�%�%�%�%�%�%�%��}�}�T�4�4�6�6�2�2���&�&�w�'=�>�>�2�"��+�+�D�1�1�1�2�2�2�2�2�2�2�2�2�2�2����2�2�2�2��l��� � ���=�9�9�9�.�s�3�3��� � ���+�]�A�>�@�@�@�+
@�
@�
@�
@�
@�
@�
@�
@�
@�
@�
@����
@�
@�
@�
@��	@�	@rsc������tj��������������fd������fd�}���|����}��t��5}��|��ddd��n#1swxYwY|j}��	|j
d��t|��}��	|tjddf��dS)Nc��j�K���d��tjd���d{V��dSr+)r�r
r.r�s�rr.z@BaseTaskTests.test_cancellation_exception_context.<locals>.sleep�sA������N�N�4� � � ��-��#�#�#�#�#�#�#�#�#�#�#rc����K���������}��d{V����|jd��	|�d{V��dS#tj$r}td��|�d}~wwxYw)N�msgr<)rLr\rkr
rmr�)�
inner_task�exr�rGr-r.s  ����rrKz?BaseTaskTests.test_cancellation_exception_context.<locals>.coro�s���������t�U�U�W�W�5�5�J��I�I�I�I�I�I�I��N�N�:�,�e�4�4�4�
6� � � � � � � � � � ���)�
6�
6�
6� ��-�-�2�5�����
6���s�A�A4�A/�/A4)r<)r|r)
r
r�r�rZrLrlr�rnror^r$r(rm)	r-rKrbrrr%rqr�rGr.s	`     @@@r�#test_cancellation_exception_contextz1BaseTaskTests.test_cancellation_exception_context�sl�������%�'�'�����D�!�!�!�� � �"�"��	$�	$�	$�	$�	$�	6�	6�	6�	6�	6�	6�	6�	6��}�}�T�4�4�6�6�*�*��
�
�
�z�
*�
*�	*�b��#�#�D�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*��l�������>�2�2�2�&�s�+�+������
�
#�X�q�1�	3�	3�	3�	3�	3s�B(�(B,�/B,c������tj��������d�����fd�}���|����}��tj��5}��|��ddd��n#1swxYwY|j}��|j	d��t|��}��|tjddf��dS)Nc��>K�tjd���d{V��dSr+r-rrrr.zJBaseTaskTests.test_cancel_with_message_before_starting_task.<locals>.sleepr/rc����K���������}|�d��tj|g���d{V��\}}|���dS)Nrh)rLrkr
riro)rbr�rkrGr-r.s   ���rrKzIBaseTaskTests.test_cancel_with_message_before_starting_task.<locals>.coroso������=�=��u�u�w�w�/�/�D��K�K��%�%�%�")�,��v�"6�"6�6�6�6�6�6�6�M�D�'��N�N�����rr`r)r
r�r�rLrlrmrnror^r$r()r-rKrbrrr%rqrGr.s`     @@r�-test_cancel_with_message_before_starting_taskz;BaseTaskTests.test_cancel_with_message_before_starting_task
sN������%�'�'�����D�!�!�!�	$�	$�	$�	�	�	�	�	�	�	��}�}�T�4�4�6�6�*�*��
�
�
�w�5�
6�
6�	*�"��#�#�D�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*��l�������?�3�3�3�&�s�+�+������
�
#�_�a�8�	:�	:�	:�	:�	:s�3B�B�Bc���d�}|�|j|����}tj|j��|���|�tj|jj|��|�	|�
����|�	|�����|�|�����dS)Nc��rK�tjd���d{V��tjd���d{V��dS)Nrr[r-rrrrbz-BaseTaskTests.test_cancel_yield.<locals>.task&sO�����-��"�"�"�"�"�"�"�"�"��-��"�"�"�"�"�"�"�"�"��2r)
rLrGr�rrkrlr
rmrnrir�r<r1)r-rbrqs   r�test_cancel_yieldzBaseTaskTests.test_cancel_yield%s���	�	�	�

�M�M�$�)�T�T�V�V�,�,����t�y�)�)�)�	���
�
�
�����"�D�I�$@�!�	E�	E�	E���������!�!�!�������
�
�&�&�&���������$�$�$�$�$rc�$��|�|j����fd�}|�|j|����}tj|j������|�tj��5|j�	|��ddd��n#1swxYwY|�
������|�
|�����dS)Nc���K���d{V��dS�Nr[r�r�s�rrbz4BaseTaskTests.test_cancel_inner_future.<locals>.task7�������G�G�G�G�G�G�G��2r)rRrGrLr�rrkrlr
rmrnrir<�r-rbrqr�s   @r�test_cancel_inner_futurez&BaseTaskTests.test_cancel_inner_future4s(����O�O�D�I�&�&��	�	�	�	�	�
�M�M�$�)�T�T�V�V�,�,����t�y�)�)�)�	���
�
�
�
�
�
�w�5�
6�
6�	,�	,��I�(�(��+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�������
�
�&�&�&�������
�
�&�&�&�&�&s�B7�7B;�>B;c���|�|j����fd�}|�|j|����}tj|j������|���|�tj��5|j�	|��ddd��n#1swxYwY|�
|�����|�
������|�
|�����dS)Nc���K���d{V��dSr�rr�s�rrbzBBaseTaskTests.test_cancel_both_task_and_inner_future.<locals>.taskFr�r)
rRrGrLr�rrkrlr
rmrnrir�r<r�s   @r�&test_cancel_both_task_and_inner_futurez4BaseTaskTests.test_cancel_both_task_and_inner_futureCsQ����O�O�D�I�&�&��	�	�	�	�	�
�M�M�$�)�T�T�V�V�,�,����t�y�)�)�)�	���
�
�
�	���
�
�
�
�
�
�w�5�
6�
6�	,�	,��I�(�(��+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�	
��������!�!�!�������
�
�&�&�&�������
�
�&�&�&�&�&s�$C�C�Cc�����|�|j���|�|j�����fd�}|�|j|����}tj|j��|�|j�����d��tj|j��|�|j���|���|�	��
����|j�|��}|�|d��|�
|�
����dS)Nc��Z�K���d{V��	��d{V��dS#tj$rYdSwxYwr8�r
rm)�fut1�fut2s��rrbz5BaseTaskTests.test_cancel_task_catching.<locals>.task[sW������J�J�J�J�J�J�J�
��
�
�
�
�
�
�
�
�
���)�
�
�
��r�r�
���s��*�*r9�rRrGrLr�rr��_fut_waiterr�rkrir<rnr^r1)r-rbrq�resr�r�s    @@r�test_cancel_task_catchingz'BaseTaskTests.test_cancel_task_catchingWs?�������t�y�)�)�����t�y�)�)��	�	�	�	�	�	�
�M�M�$�)�T�T�V�V�,�,����t�y�)�)�)��
�
�a�m�T�*�*�*����������t�y�)�)�)��
�
�a�m�T�*�*�*�	���
�
�
�������(�(�)�)�)��i�*�*�1�-�-������b�!�!�!���������'�'�'�'�'rc�����|�|j���|�|j���|�|j������fd�}|�|j|����}tj|j��|�|j�����d��tj|j��|�|j���|���|�	��
����tj|j��|�|j�����d��|j�|��}|�|d��|�
��
����|�
|�
����dS)Nc��j�K���d{V��	��d{V��n#tj$rYnwxYw��d{V��}|Srr�)r�r�r��fut3s ���rrbz5BaseTaskTests.test_cancel_task_ignoring.<locals>.taskssi������J�J�J�J�J�J�J�
��
�
�
�
�
�
�
�
���)�
�
�
���
�����*�*�*�*�*�*�C��Js��(�(r9r�)r-rbrqr�r�r�r�s    @@@r�test_cancel_task_ignoringz'BaseTaskTests.test_cancel_task_ignoringns���������t�y�)�)�����t�y�)�)�����t�y�)�)��	�	�	�	�	�	�	�
�M�M�$�)�T�T�V�V�,�,����t�y�)�)�)��
�
�a�m�T�*�*�*����������t�y�)�)�)��
�
�a�m�T�*�*�*�	���
�
�
�������(�(�)�)�)���t�y�)�)�)��
�
�a�m�T�*�*�*���������i�*�*�1�-�-������b�!�!�!�������)�)�*�*�*���������'�'�'�'�'rc�Z���tj��}��|����fd�}��||���������������tj|j�����	��
������	���������j����������dS)Nc���K��������j��tjd���d{V��dS)Nr�r[)rkri�_must_cancelr
r.�r-rqs��rrbz4BaseTaskTests.test_cancel_current_task.<locals>.task�sO�����
�H�H�J�J�J��O�O�A�N�+�+�+��-��$�$�$�$�$�$�$�$�$��2r�
r
r�r�rLr1r<rlrmrnrir�r�rkr5s`  @r�test_cancel_current_taskz&BaseTaskTests.test_cancel_current_task�s�����%�'�'�����D�!�!�!�	�	�	�	�	�	�
�M�M�$�����'�'����������'�'�'�����"�D�$;�Q�	@�	@�	@���������!�!�!�������
�
�&�&�&������(�(�(���������$�$�$�$�$rc�\���	tj��}��|����fd�}��||���������������tj|j�����	��
������	���������j����������dS)Nc��h�K��������j��dSr�)rkrir�r�s��rrbz.BaseTaskTests.test_cancel_at_end.<locals>.task�s-�����
�H�H�J�J�J��O�O�A�N�+�+�+��2rr�r5s`  @r�test_cancel_at_endz BaseTaskTests.test_cancel_at_end�s����9��%�'�'�����D�!�!�!�	�	�	�	�	�	�

�M�M�$�����'�'����������'�'�'�����"�D�$;�Q�	@�	@�	@���������!�!�!�������
�
�&�&�&������(�(�(���������$�$�$�$�$rc�t�������tj������fd���dx���������fd�������fd�}���|�������tj��5�����ddd��n#1swxYwY����	��������	��������	����dS)Nc�,������Sr)r@rOs�rrUz8BaseTaskTests.test_cancel_awaited_task.<locals>.<lambda>�s����
�
���rc���K���d{V��dSrrr�s�r�nestedz6BaseTaskTests.test_cancel_awaited_task.<locals>.nested��������I�I�I�I�I�I�I�I�Irc���K����������tjd���d{V��������d{V��dSrh�rLr
r.rk)rGr��nested_taskr-rbs�����rrKz4BaseTaskTests.test_cancel_awaited_task.<locals>.coro�ss������-�-��f�f�h�h�7�7�K��-��"�"�"�"�"�"�"�"�"�
�K�K�M�M�M����������r)
r
r�r�rRrLrlrmrnrir<)r-rKr�rGr�r�rbs` @@@@@r�test_cancel_awaited_taskz&BaseTaskTests.test_cancel_awaited_task�s����������%�'�'�����,�,�,�,�-�-�-�!�!��{��o�o�d�#�#��	�	�	�	�	�
	�
	�
	�
	�
	�
	�
	�
	�
	��}�}�T�4�4�6�6�*�*��
�
�
�w�5�
6�
6�	*�	*��#�#�D�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	
������(�(�)�)�)�����-�-�/�/�0�0�0�����
�
���(�(�(�(�(s�B8�8B<�?B<c�:�||vrtd|�d|�d����dS)Nztext z not found in:
>>>z<<<�r�)r-�text�substrs   r�assert_text_containsz"BaseTaskTests.assert_text_contains�s>�����	O��M�v�M�M�D�M�M�M�N�N�N�	O�	Orc�����tj��������d�����fd�}���|����}	��|����d��dS#tj$rCtj��}��	|d����	|d��YdSwxYw)Nc��>K�tjd���d{V��dSr+r-rrrr�zEBaseTaskTests.test_cancel_traceback_for_future_result.<locals>.nested��.�����-��#�#�#�#�#�#�#�#�#�#�#rc���K���������}tjd���d{V��|���|�d{V��dSrhr�)rbrGr�r-s ���rrKzCBaseTaskTests.test_cancel_traceback_for_future_result.<locals>.coro�sd������=�=��v�v�x�x�0�0�D��-��"�"�"�"�"�"�"�"�"��K�K�M�M�M��J�J�J�J�J�J�J�J�Jr�CancelledError did not occur�await asyncio.sleep(10)zawait task  # search target�
r
r�r�rLrn�failrm�	traceback�
format_excr��r-rKrbr�rGr�s`   @@r�'test_cancel_traceback_for_future_resultz5BaseTaskTests.test_cancel_traceback_for_future_result�s������%�'�'�����D�!�!�!�	$�	$�	$�	�	�	�	�	�	�	��}�}�T�4�4�6�6�*�*��	6��#�#�D�)�)�)�
�I�I�4�5�5�5�5�5��
�%�	I�	I�	I��%�'�'�B��%�%�b�*C�D�D�D��%�%�b�*G�H�H�H�H�H�H�		I�����B�AC�Cc�����tj��������d�����fd�}���|����}	��|����d��dS#tj$rCtj��}��	|d����	|d��YdSwxYw)Nc��>K�tjd���d{V��dSr+r-rrrr�zHBaseTaskTests.test_cancel_traceback_for_future_exception.<locals>.nested�r�rc���K���������}tjd���d{V��|���tj|g���d{V��\}}|���dSrhrw)rbr�rkrGr�r-s   ���rrKzFBaseTaskTests.test_cancel_traceback_for_future_exception.<locals>.coros�������=�=��v�v�x�x�0�0�D��-��"�"�"�"�"�"�"�"�"��K�K�M�M�M�")�,��v�"6�"6�6�6�6�6�6�6�M�D�'��N�N�����rr�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�4�6�6�*�*��		6��#�#�D�)�)�)�
�I�I�4�5�5�5�5�5���%�	5�	5�	5��%�'�'�B��%�%�b�*C�D�D�D��%�%�b�3�
5�
5�
5�
5�
5�
5�		5���r�c������fd�}��|���d���fd�}���|����}��t��5}��|��ddd��n#1swxYwY��t
|j��d����|�	�������d����
d������|�����tj�j|��dS)Nc3��K�dV�}��d|��dV�}��d|��dV�}��d|��dV�dS)NrO皙�����?�333333�?rUrWs �rr�z:BaseTaskTests.test_stop_while_run_in_complete.<locals>.gensq������5�5�D��"�"�3��-�-�-��9�9�D��"�"�3��-�-�-��9�9�D��"�"�3��-�-�-��I�I�I�I�Irrc���K��dkrAtjd���d{V���dz
��dkr�����dk�?dSdS)Nr,rOr�)r
r.�stop)rG�xs��rrbz;BaseTaskTests.test_stop_while_run_in_complete.<locals>.task"sy������b�&�
 ��m�C�(�(�(�(�(�(�(�(�(��Q�����6� ��I�I�K�K�K�	�b�&�
 �
 �
 �
 �
 rz+Event loop stopped before Future completed.r�r�)rXrLrlr�rnr^r]ror1r�rV�timerkr
rm)r-r�rbrqrrrGr�s`    @@r�test_stop_while_run_in_completez-BaseTaskTests.test_stop_while_run_in_completes������	�	�	�	�	��!�!�#�&�&��
��	 �	 �	 �	 �	 �	 �
�M�M�$�����'�'��
�
�
�|�
,�
,�	'���#�#�A�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�����R�\�*�*�F�	H�	H�	H���������"�"�"�����A�������s�D�I�I�K�K�0�0�0�	���
�
�
����'�0�$�2I�1�M�M�M�M�Ms�B�B�Bc��d�}|�|j|����}|�td��5d|_ddd��n#1swxYwY|j�|��dS)Nc��
K�dSrrrrrrKz.BaseTaskTests.test_log_traceback.<locals>.coro7rfrzcan only be set to FalseT)rLrGr�r��_log_tracebackrn�r-rKrbs   r�test_log_tracebackz BaseTaskTests.test_log_traceback6s���	�	�	��}�}�T�Y�����/�/��
�
#�
#�J�0J�
K�
K�	'�	'�"&�D��	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'��	�$�$�T�*�*�*�*�*s�A�A�Ac������fd�}��|��}��|tjd�������|tjd��������fd�}|���||������}��|d����d|�����|���||������}��d|�������|d��dS)Nc3�|�K�dV�}��d|��dV�}��d|��dV�dS�NrOr�333333�?rUrWs �rr�z$BaseTaskTests.test_wait.<locals>.genA�R������5�5�D��"�"�3��-�-�-��7�7�D��"�"�4��.�.�.��J�J�J�J�JrrOr�c����K�tj��g���d{V��\}}��|t��g������|t����dSr8�r
rir^�set�r�rkr�rr-s  ���rr�z$BaseTaskTests.test_wait.<locals>.fooMso�����")�,��1�v�"6�"6�6�6�6�6�6�6�M�D�'����T�3��1�v�;�;�/�/�/����W�c�e�e�,�,�,��2rr9�rXrLr
r.rnr^rVr��r-r�rGr�r�r�rs`    @@r�	test_waitzBaseTaskTests.test_wait?sP�����	�	�	�	�	��!�!�#�&�&���M�M�$��
�c� 2� 2�3�3���M�M�$��
�d� 3� 3�4�4��	�	�	�	�	�	�	��%�%�d�m�m�D�#�#�%�%�&@�&@�A�A������b�!�!�!����t�T�Y�Y�[�[�1�1�1��%�%�d�m�m�D�#�#�%�%�&@�&@�A�A�����t�T�Y�Y�[�[�1�1�1�����b�!�!�!�!�!rc��d�}|j�|d����}|�|jtj|||j�|d����g����}|j�|��\}}|�|��|�td�|D����ddh��dS)Nc��
K�|Srr��ss rrKz:BaseTaskTests.test_wait_duplicate_coroutines.<locals>.coro^������Hrr��spamc3�>K�|]}|���V��dSr�r��r�r�s  r�	<genexpr>z?BaseTaskTests.test_wait_duplicate_coroutines.<locals>.<genexpr>hs*����6�6�A�Q�X�X�Z�Z�6�6�6�6�6�6r)	rG�create_taskrLr
rirnr1r^r�)r-rK�crbr�rks      r�test_wait_duplicate_coroutinesz,BaseTaskTests.test_wait_duplicate_coroutines\s���	�	�	��I�!�!�$�$�v�,�,�/�/���}�}��I��L�!�Q��	� 5� 5�d�d�6�l�l� C� C�D�E�E�G�G���	�4�4�T�:�:�
��g�����!�!�!�����6�6��6�6�6�6�6���8H�I�I�I�I�Irc�X�|�t|jjt	jt
������t	jd��}t	j|gd���}|�t|jj|��|���dS)NrNr��return_when)	rlr�rGrnr
rir�r.r@)r-�
sleep_coro�	wait_coros   r�test_wait_errorszBaseTaskTests.test_wait_errorsjs��������	�4��L������	!�	!�	!�
�]�4�(�(�
��L�*��2�>�>�>�	����*��)�6�	�	C�	C�	C�	�������rc����fd�}��|��}��|tjd����}��|tjd����}��|tj||gtj�����}|�|��\}}��|h|����|h|����|�	������
|�	������|�������
d|�����|�d��|�tj||g����dS)Nc3�|�K�dV�}��d|��dV�}��d|��dV�dS)NrNrrOrUrWs �rr�z4BaseTaskTests.test_wait_first_completed.<locals>.genysR������5�5�D��"�"�4��.�.�.��7�7�D��"�"�3��-�-�-��I�I�I�I�IrrNrOr�r,)rXrLr
r.ri�FIRST_COMPLETEDrnr^r1r�ri�assertIsNoner�rVr��advance_time)r-r�rGr�rrbr�rks`       r�test_wait_first_completedz'BaseTaskTests.test_wait_first_completedws����	�	�	�	�	��!�!�#�&�&���M�M�$��
�d� 3� 3�4�4���M�M�$��
�c� 2� 2�3�3���}�}���L�!�Q��W�-D�E�E�E�G�G���/�/��5�5�
��g����!��d�#�#�#����!��g�&�&�&���������"�"�"���������!�!�!����!�(�(�*�*�%�%�%����s�D�I�I�K�K�0�0�0�	
���"���������a��V� 4� 4�5�5�5�5�5rc��d�}d�}|�|j|����}|�|j|����}|�|jtj||gtj�����}|j�|��\}}|�||h|��|�|�����|�	|�
����|�|�����|�	|�
����dS)Nc��>K�tjd���d{V��dSrhr-rrr�coro1z2BaseTaskTests.test_wait_really_done.<locals>.coro1�s.�����-��"�"�"�"�"�"�"�"�"�"�"rc��rK�tjd���d{V��tjd���d{V��dSrhr-rrr�coro2z2BaseTaskTests.test_wait_really_done.<locals>.coro2�sP�����-��"�"�"�"�"�"�"�"�"��-��"�"�"�"�"�"�"�"�"�"�"rr�)rLrGr
rir�rnr^rir�r�r�)r-r�r�r�rrbr�rks        r�test_wait_really_donez#BaseTaskTests.test_wait_really_done�s2��	#�	#�	#�	#�	#�	#�
�M�M�$�)�U�U�W�W�-�-���M�M�$�)�U�U�W�W�-�-���}�}��I��L�!�Q��W�-D�E�E�E�G�G���	�4�4�T�:�:�
��g����!�Q���&�&�&���������!�!�!����!�(�(�*�*�%�%�%���������!�!�!����!�(�(�*�*�%�%�%�%�%rc����fd�}��|��}��|tjd����}d�}��||����}��|tj||gtj�����}|�|��\}}��|h|����|h|����d|�	����|�
d��|�tj||g����dS)Nc3�H�K�dV�}��d|��dV�dSrTrUrWs �rr�z4BaseTaskTests.test_wait_first_exception.<locals>.gen�rYrrNc��$K�td���)N�err)�ZeroDivisionErrorrrrr%z4BaseTaskTests.test_wait_first_exception.<locals>.exc�s����#�E�*�*�*rr�rr,�rXrLr
r.ri�FIRST_EXCEPTIONrnr^rVr�r��	r-r�rGr�r%rrbr�rks	`        r�test_wait_first_exceptionz'BaseTaskTests.test_wait_first_exception�sP���	�	�	�	�	�
�!�!�#�&�&��
�M�M�$��
�d� 3� 3�4�4��	+�	+�	+�
�M�M�$�����&�&���}�}���L�!�Q��W�-D�E�E�E�G�G���/�/��5�5�
��g����!��d�#�#�#����!��g�&�&�&����q�$�)�)�+�+�.�.�.�	
���"���������a��V� 4� 4�5�5�5�5�5rc�j���fd�}��|��}��|tjd����}d�}��||����}tj||gtj���}|�|��\}}��|h|����|h|����d|�	����|�
d��|�tj||g����dS)Nc3�|�K�dV�}��d|��dV�}��d|��dV�dS)NrNrr;rUrWs �rr�z<BaseTaskTests.test_wait_first_exception_in_wait.<locals>.gen��R������5�5�D��"�"�4��.�.�.��7�7�D��"�"�4��.�.�.��J�J�J�J�JrrNc��XK�tjd���d{V��td���)Nr;r�r
r.rrrrr%z<BaseTaskTests.test_wait_first_exception_in_wait.<locals>.exc�s6�����-��%�%�%�%�%�%�%�%�%�#�E�*�*�*rr�r;r,rrs	`        r�!test_wait_first_exception_in_waitz/BaseTaskTests.test_wait_first_exception_in_wait�s8���	�	�	�	�	��!�!�#�&�&��
�M�M�$��
�d� 3� 3�4�4��	+�	+�	+�
�M�M�$�����&�&���|�Q��F��0G�H�H�H���/�/��5�5�
��g����!��d�#�#�#����!��g�&�&�&����t�T�Y�Y�[�[�1�1�1�	
���"���������a��V� 4� 4�5�5�5�5�5rc�D�����fd�}��|��}��|tjd�����d�}��||��������fd�}|���||��������d|�����|���||��������d|�����dS)Nc3�|�K�dV�}��d|��dV�}��d|��dV�dSr�rUrWs �rr�z3BaseTaskTests.test_wait_with_exception.<locals>.gen�r�rrOc��XK�tjd���d{V��td���)Nr��reallyr
rrr�sleeperz7BaseTaskTests.test_wait_with_exception.<locals>.sleeper�s6�����-��%�%�%�%�%�%�%�%�%�#�H�-�-�-rc��L�K�tj��g���d{V��\}}��t|��d����|t	����t	d�|D����}��t|��d��dS)Nr�c3�BK�|]}|����|V��dSr)ror�s  rr�zFBaseTaskTests.test_wait_with_exception.<locals>.foo.<locals>.<genexpr>�s/����F�F�q�A�K�K�M�M�F��F�F�F�F�F�Frr)r
rir^�lenr�)r�rk�errorsr�rr-s   ���rr�z3BaseTaskTests.test_wait_with_exception.<locals>.foo�s������")�,��1�v�"6�"6�6�6�6�6�6�6�M�D�'����S��Y�Y��*�*�*����W�c�e�e�,�,�,��F�F�D�F�F�F�F�F�F����S��[�[�!�,�,�,�,�,rr�)rXrLr
r.rnrVr�)r-r�rGrr�r�rs`    @@r�test_wait_with_exceptionz&BaseTaskTests.test_wait_with_exception�s1�����	�	�	�	�	��!�!�#�&�&���M�M�$��
�c� 2� 2�3�3��	.�	.�	.�
�M�M�$���	�	�*�*��	-�	-�	-�	-�	-�	-�	-�	
����
�
�d�C�C�E�E� :� :�;�;�;����t�T�Y�Y�[�[�1�1�1�����
�
�d�C�C�E�E� :� :�;�;�;����t�T�Y�Y�[�[�1�1�1�1�1rc������fd�}��|��}��|tjd�������|tjd��������fd�}|���||��������d|�����|�d��|�tj��g����dS)Nc3��K�dV�}��d|��dV�}��d|��dV�}��d|��dV�dS)NrOrr��)\��(�?rUrWs �rr�z1BaseTaskTests.test_wait_with_timeout.<locals>.gen	sq������5�5�D��"�"�3��-�-�-��7�7�D��"�"�4��.�.�.��7�7�D��"�"�4��.�.�.��J�J�J�J�JrrOr�c����K�tj��gd����d{V��\}}��|t�g������|t�g����dS)Nr�r?r�r�s  ���rr�z1BaseTaskTests.test_wait_with_timeout.<locals>.foosw�����")�,��1�v�t�"D�"D�"D�D�D�D�D�D�D�M�D�'����T�3��s�8�8�,�,�,����W�c�1�#�h�h�/�/�/�/�/rrr,)	rXrLr
r.rnrVr�r�ri)r-r�rGr�r�rs`   @@r�test_wait_with_timeoutz$BaseTaskTests.test_wait_with_timeouts�����	�	�	�	�	��!�!�#�&�&���M�M�$��
�c� 2� 2�3�3���M�M�$��
�d� 3� 3�4�4��	0�	0�	0�	0�	0�	0�	0�
	
����
�
�d�C�C�E�E� :� :�;�;�;����t�T�Y�Y�[�[�1�1�1�	
���"���������a��V� 4� 4�5�5�5�5�5rc����fd�}��|��}��|tjd����}��|tjd����}|�tj||gd�����\}}��|t|g������|t|g������d|�	����|�
d��|�tj||g����dS)Nc3��K�dV�}��d|��dV�}��d|��dV�}��d|��dV�dSr�rUrWs �rr�z8BaseTaskTests.test_wait_concurrent_complete.<locals>.gen%sq������5�5�D��"�"�3��-�-�-��7�7�D��"�"�4��.�.�.��7�7�D��"�"�3��-�-�-��I�I�I�I�IrrOr�rr,)rXrLr
r.rnrir^r�rVr�r�)r-r�rGr�rr�rks`      r�test_wait_concurrent_completez+BaseTaskTests.test_wait_concurrent_complete#s4���	�	�	�	�	��!�!�#�&�&���M�M�$��
�c� 2� 2�3�3���M�M�$��
�d� 3� 3�4�4���/�/��L�!�Q���-�-�-�/�/�
��g�	
����s�A�3�x�x�(�(�(�����#�q�c�(�(�+�+�+����s�D�I�I�K�K�0�0�0�	
���"���������a��V� 4� 4�5�5�5�5�5rc�������fd�}��|��}��|tjd�������|tjd��������fd�}|���||������}��|d����d|�����dS)Nc3�|�K�dV�}��d|��dV�}��d|��dV�dSr�rUrWs �rr�z;BaseTaskTests.test_wait_with_iterator_of_tasks.<locals>.gen@r�rrOr�c����K�tjt��g�����d{V��\}}��|t	��g������|t	����dSr8)r
ri�iterr^r�r�s  ���rr�z;BaseTaskTests.test_wait_with_iterator_of_tasks.<locals>.fooLsu�����")�,�t�Q��F�|�|�"<�"<�<�<�<�<�<�<�M�D�'����T�3��1�v�;�;�/�/�/����W�c�e�e�,�,�,��2rr9r�r�s`    @@r� test_wait_with_iterator_of_tasksz.BaseTaskTests.test_wait_with_iterator_of_tasks>s������	�	�	�	�	��!�!�#�&�&���M�M�$��
�c� 2� 2�3�3���M�M�$��
�d� 3� 3�4�4��	�	�	�	�	�	�	��%�%�d�m�m�D�#�#�%�%�&@�&@�A�A������b�!�!�!����t�T�Y�Y�[�[�1�1�1�1�1rc�:�����	�
�d�}|�|���	d�	_t���d�
��	�
fd�}|dd���|dd���|dd	������fd
�}�	�|��	|������}|�d�	�����|�d|dd�v��|�d|dd�v��|�|dd	��dS)Nc3�*K�dV�dV�dV�dV�dS�Nrr;rrrrr�z,BaseTaskTests.test_as_completed.<locals>.genXs.�����G�G�G��G�G�G��J�J�J��G�G�G�G�Grg�?Fc���K�tj|���d{V����|���sd�vrd�vrd���d��|S)Nr�rTg�Q���?)r
r.�addr�)�dtr��	completedrG�time_shifteds  ���rrz0BaseTaskTests.test_as_completed.<locals>.sleeperdsy������-��#�#�#�#�#�#�#�#�#��M�M�!�����
(�C�9�$4�
(��	�9I�
(�#���!�!�$�'�'�'��Hrr;r�rr�r�c��z�K�g}tj���g��D]}|�|�d{V�����|Sr�r
�as_completed�append)�valuesr�r�rr�s  ���rr�z,BaseTaskTests.test_as_completed.<locals>.fooqsR������F��)�1�a��)�4�4�
'�
'���
�
�A�g�g�g�g�g�g�&�&�&�&��Mrr�)	rX�slow_callback_durationr�rnrLrVr�rir^)r-r�rr�r�r�rr�r-rGr.s     @@@@@@r�test_as_completedzBaseTaskTests.test_as_completedVs`��������	�	�	��!�!�#�&�&��&)��#��E�E�	���	�	�	�	�	�	�	�
�G�D�#�����G�D�#�����G�D�#����	�	�	�	�	�	�	��%�%�d�m�m�D�#�#�%�%�&@�&@�A�A�����t�T�Y�Y�[�[�1�1�1�����s�2�A�2�w��'�'�'�����s�2�A�2�w��'�'�'�����Q���%�%�%�%�%rc�4����d�}|�|�����tjdd�������tjdd��������fd�}��|��|������}|�t|��d|��|�|dd	��|�|d
dd��|�|d
d
tj	��|�
d��������d����tj
��g����dS)
Nc3�*K�dV�dV�dV�dV�dS)NrrOrrrrr�z9BaseTaskTests.test_as_completed_with_timeout.<locals>.gens.�����E�E�E��G�G�G��G�G�G��I�I�I�I�IrrOr�r�rc���K�g}tj��gd���D]l}|r��d��	|�d{V��}|�d|f���:#tj$r!}|�d|f��Yd}~�ed}~wwxYw|S)N���Q��?rg{�G�z�?rr�)r
r1r�r2rI)r3r�r;r%r�rrGs    ���rr�z9BaseTaskTests.test_as_completed_with_timeout.<locals>.foo�s�������F��)�1�a�&�$�?�?�?�
,�
,���,��%�%�d�+�+�+�,��������A��M�M�1�a�&�)�)�)�)���+�,�,�,��M�M�1�c�(�+�+�+�+�+�+�+�+�����,�����Ms�A�B�'B�Br�r)rr�rr9r,)rXr�r
r.rnrLr^rr`rIrVr�r�ri)r-r�r�r�r�rrGs    @@@r�test_as_completed_with_timeoutz,BaseTaskTests.test_as_completed_with_timeout}s������	�	�	��!�!�#�&�&�����W�]�3��4�4�5�5�����W�]�4��5�5�6�6��
	�
	�
	�
	�
	�
	�
	��%�%�d�m�m�D�#�#�%�%�&@�&@�A�A������S���1�c�*�*�*�����Q���*�*�*�����Q����A�&�&�&����c�!�f�Q�i��)=�>�>�>����t�T�Y�Y�[�[�1�1�1�	
���"���������a��V� 4� 4�5�5�5�5�5rc�����d�}��|��}tjdd�����fd�}|���||������dS)Nc3�"K�dV�dV�dV�dSr)rrrrr�z@BaseTaskTests.test_as_completed_with_unused_timeout.<locals>.gen�s%�����E�E�E��G�G�G��J�J�J�J�Jrr;r�c��|�K�tj�gd���D] }|�d{V��}��|d���!dS)Nrrr�)r
r1r^)r�r;r�r-s  ��rr�z@BaseTaskTests.test_as_completed_with_unused_timeout.<locals>.foo�s\������)�1�#�q�9�9�9�
)�
)���G�G�G�G�G�G��� � ��C�(�(�(�(�
)�
)r)rXr
r.rnrL)r-r�rGr�r�s`   @r�%test_as_completed_with_unused_timeoutz3BaseTaskTests.test_as_completed_with_unused_timeout�s�����	�	�	�
�!�!�#�&�&���M�$��$�$��	)�	)�	)�	)�	)�	)�
	
����
�
�d�C�C�E�E� :� :�;�;�;�;�;rc������d�}��|���tjdd��}tjdd��}||h����fd�}��|����dS)Nc3�"K�dV�dV�dV�dS)Nr皙�����?rrrrr�z9BaseTaskTests.test_as_completed_reverse_wait.<locals>.gen�s%�����G�G�G��J�J�J��G�G�G�G�GrrAr�rOrc����K�ttj�����}��t	|��d��|d�d{V��}��|d����d��������d��|d�d{V��}��|d����d������dS)Nr�rr�rArrrO)�listr
r1r^rrVr�r�)�futsr��y�fsrGr-s   ���rr�z:BaseTaskTests.test_as_completed_reverse_wait.<locals>.test�s��������,�R�0�0�1�1�D����S��Y�Y��*�*�*��1�g�
�
�
�
�
�
�A����Q��$�$�$��"�"�4������5�5�5����d�#�#�#��1�g�
�
�
�
�
�
�A����Q��$�$�$��"�"�4������5�5�5�5�5r)rXr
r.rn)r-r�r�rr�rFrGs`    @@r�test_as_completed_reverse_waitz,BaseTaskTests.test_as_completed_reverse_wait�s������	�	�	�
�!�!�#�&�&���M�$��$�$���M�$��$�$����V��
	6�
	6�
	6�
	6�
	6�
	6�
	6�	
�������'�'�'�'�'rc������fd�}tjdd��}tjdd��}||h���fd�}��|��}|�|����dS)Nc3�|�K�dV�}��d|��dV�}��d|��dV�dS)NrArrUrWs �rr�z7BaseTaskTests.test_as_completed_concurrent.<locals>.gen�rrrAr�rc��@�K�ttj�����}��t	|��d��tjd�|D�����d{V��\}}��t
d�|D����ddh��dS)Nr�c�6�g|]}tj|����Srr�)r�r�s  rr�zLBaseTaskTests.test_as_completed_concurrent.<locals>.test.<locals>.<listcomp>�s#��<�<�<���&�s�+�+�<�<�<rc3�>K�|]}|���V��dSrr�r�s  rr�zKBaseTaskTests.test_as_completed_concurrent.<locals>.test.<locals>.<genexpr>�s*���� :� :������� :� :� :� :� :� :rr�r)rCr
r1r^rrir�)rDr�rkrFr-s   ��rr�z8BaseTaskTests.test_as_completed_concurrent.<locals>.test�s��������,�R�0�0�1�1�D����S��Y�Y��*�*�*�")�,�<�<�t�<�<�<�#�#�������M�D�'�
���S� :� :�T� :� :� :�:�:�S�#�J�G�G�G�G�Gr)r
r.rXrn)r-r�r�rr�rGrFs`     @r�test_as_completed_concurrentz*BaseTaskTests.test_as_completed_concurrent�s�����	�	�	�	�	�
�M�$��$�$���M�$��$�$����V��	H�	H�	H�	H�	H�	H��!�!�#�&�&���������'�'�'�'�'rc�J��d���fd�}|�|j|����}|j�|��|���}|�t|��ddh��|�t
|��d��dS)Nc��
K�|Srrr�s rrKzBBaseTaskTests.test_as_completed_duplicate_coroutines.<locals>.coro�r�rc���K�g}�d��}tj||�d��g��D]}|�|�d{V�����|S)N�hamr�r0)r�r�r�rKs   �rr�zDBaseTaskTests.test_as_completed_duplicate_coroutines.<locals>.runner�sh������F���U���A��)�1�a���f���*>�?�?�
'�
'���
�
�A�g�g�g�g�g�g�&�&�&�&��MrrQr�r�)rLrGrnr�r^r�r)r-r�r�r�rKs    @r�&test_as_completed_duplicate_coroutinesz4BaseTaskTests.test_as_completed_duplicate_coroutines�s����	�	�	�	�	�	�	�	��m�m�D�I�v�v�x�x�0�0���	�$�$�S�)�)�)�����������V���u�f�o�6�6�6�����V���a�(�(�(�(�(rc��d�}|��}|�|j��tj|g��}|�t
��5}|�td��5t|��ddd��n#1swxYwYddd��n#1swxYwY|�	|j
t��dS)Nc��
K�dSr8rrrrrKzDBaseTaskTests.test_as_completed_coroutine_without_loop.<locals>.coro�rrr�)r�r@r
r1r�r�r�r�rCr^r�r�)r-rKr�rDrrs     r�(test_as_completed_coroutine_without_loopz6BaseTaskTests.test_as_completed_coroutine_without_loop�sB��	�	�	�
�D�F�F������� � � ��#�Q�C�(�(��
�
�
�0�
1�
1�	�R��'�'��6V�W�W�
�
��T�
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
�����h�/�/�/�/�/s6�B&�3B�B&�B	�B&�B	�B&�&B*�-B*c�~�������}d����fd�}|�|����dS)Nc��
K�dSr8rrrrrKzHBaseTaskTests.test_as_completed_coroutine_use_running_loop.<locals>.cororrc����K�ttj���g����}��t	|��d����|d�d{V��d��dS)Nrrr9)rCr
r1r^r)rDrKr-s ��rr�zHBaseTaskTests.test_as_completed_coroutine_use_running_loop.<locals>.testso�������,�d�d�f�f�X�6�6�7�7�D����S��Y�Y��*�*�*����4��7�]�]�]�]�]�]�B�/�/�/�/�/r)rXrn)r-rGr�rKs`  @r�,test_as_completed_coroutine_use_running_loopz:BaseTaskTests.test_as_completed_coroutine_use_running_loopsd�����!�!�#�#��	�	�	�	0�	0�	0�	0�	0�	0�
	
�������'�'�'�'�'rc����fd�}��|��}d�}��||dd����}|�|����|�������|���d����d|�����dS)Nc3�|�K�dV�}��d|��dV�}��d|��dV�dS)NrArOrUrWs �rr�z%BaseTaskTests.test_sleep.<locals>.gensR������5�5�D��"�"�4��.�.�.��:�:�D��"�"�3��-�-�-��J�J�J�J�Jrc��K�tj|dz���d{V��tj|dz|���d{V��}|S)Nr�r-)r,�argr�s   rrz)BaseTaskTests.test_sleep.<locals>.sleepersX�����-��1��%�%�%�%�%�%�%�%�%��
�b��d�C�0�0�0�0�0�0�0�0�C��JrrO�yeah)	rXrLrnrir�r^r�rVr�)r-r�rGrrqs`    r�
test_sleepzBaseTaskTests.test_sleeps����	�	�	�	�	��!�!�#�&�&��	�	�	�

�M�M�$����V� 4� 4�5�5������"�"�"���������!�!�!���������V�,�,�,����s�D�I�I�K�K�0�0�0�0�0rc������fd�}��|��}��|tjdd����}d�|j���fd�}||_tj|�����j��|�	��tj|����
�j��dS)Nc3�H�K�dV�}��d|��dV�dSrTrUrWs �rr�z,BaseTaskTests.test_sleep_cancel.<locals>.gen*rYrrNr^c����||g|�R���Srr)�delay�callbackr$�handle�orig_call_laters   ��rrFz3BaseTaskTests.test_sleep_cancel.<locals>.call_later6s!���$�_�U�H�<�t�<�<�<�F��Mr)rXrLr
r.rFr�rr1�
_cancelledrkri)r-r�rGrqrFrerfs`    @@r�test_sleep_cancelzBaseTaskTests.test_sleep_cancel(s������	�	�	�	�	�
�!�!�#�&�&���M�M�$��
�d�F� ;� ;�<�<�����/��	�	�	�	�	�	�
%�����t�$�$�$�����*�+�+�+�	���
�
�
���t�$�$�$�����)�*�*�*�*�*rc�
�����fd�}��|���d�����fd�}|��}����|��d����d������dS)Nc3�|�K�dV�}��d|��dV�}��d|��dV�dS)NrOr�rUrWs �rr�z9BaseTaskTests.test_task_cancel_sleeping_task.<locals>.genFsR������5�5�D��"�"�3��-�-�-��7�7�D��"�"�4��.�.�.��I�I�I�I�Irc��>K�tj|���d{V��dSrr-)r,s rr.z;BaseTaskTests.test_task_cancel_sleeping_task.<locals>.sleepOr/rc���K�����d����}��d|j��	|�d{V��dS#tj$rYdSwxYw)NrkrOzslept inr<)rLrFrkr
rm)rrGr-r.s ���r�doitz:BaseTaskTests.test_task_cancel_sleeping_task.<locals>.doitRs|������m�m�D�%�%��+�+�6�6�G��O�O�C���0�0�0�
"��
�
�
�
�
�
�
�"�z���)�
#�
#�
#�"�{�{�
#���s�A	�	A�Ar<rO)rXr^rnrVr�)r-r�rn�doerrGr.s`   @@r�test_task_cancel_sleeping_taskz,BaseTaskTests.test_task_cancel_sleeping_taskDs������	�	�	�	�	��!�!�#�&�&��	$�	$�	$�	"�	"�	"�	"�	"�	"�	"��t�v�v������0�0��6�6��D�D�D����s�D�I�I�K�K�0�0�0�0�0rc�&��|�|j����fd�}|�|j|����}tj|j��|�|j���|���tj|j��|�tj
|jj|��|�|j��|�
������dS)Nc���K���d{V��dSrrr�s�rrKz:BaseTaskTests.test_task_cancel_waiter_future.<locals>.corocr�r)rRrGrLr�rr�r�rkrlr
rmrnr�rir<)r-rKrbr�s   @r�test_task_cancel_waiter_futurez,BaseTaskTests.test_task_cancel_waiter_future`s�����o�o�d�i�(�(��	�	�	�	�	��}�}�T�Y�����/�/����t�y�)�)�)��
�
�d�&��,�,�,����
�
�
���t�y�)�)�)�����"�D�I�$@�$�	H�	H�	H����$�*�+�+�+�����
�
���(�(�(�(�(rc���d�}|��}|�|j|��}|�td��5|�d��ddd��n#1swxYwY|�td��5|�t
����ddd��n#1swxYwY|�|j�|��d��dS)Nc��
K�dS)Nr�rrrrr�z4BaseTaskTests.test_task_set_methods.<locals>.notmuchrr�rznot support set_resultr�znot support set_exceptionr�)	rLrGr�r�r��
set_exceptionr�r^rn)r-r�r�rbs    r�test_task_set_methodsz#BaseTaskTests.test_task_set_methodsqsq��	�	�	��g�i�i���}�}�T�Y��,�,��
�
#�
#�L�2J�
K�
K�	"�	"��O�O�D�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"��
#�
#�L�2M�
N�
N�	-�	-����z�|�|�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	
����I�(�(��.�.��	�	�	�	�	s$�A&�&A*�-A*�"B:�:B>�B>c�X���Gd�dtj��}||j����d���fd�}|�|j|����}t	j|j��|��j��t��}��	|��t	j|j��|�
|���|�|�����|�|�
����dS)Nc�(��eZdZ�fd�Z�fd�Z�xZS)�2BaseTaskTests.test_step_result_future.<locals>.Futc�H��d|_t��j|i|��dS�NF)�cb_addedrVr�)r-r$�kwdsrIs   �rr�z;BaseTaskTests.test_step_result_future.<locals>.Fut.__init__�s,��� %��
� ���� �$�/�$�/�/�/�/�/rc�H��d|_t��j|i|��dSrB)r}rVr��r-r$�kwargsrIs   �rr�zDBaseTaskTests.test_step_result_future.<locals>.Fut.add_done_callback�s,��� $��
�)����)�4�:�6�:�:�:�:�:r�r2r3r4r�r��
__classcell__�rIs@r�Futrz�sQ�������
0�
0�
0�
0�
0�
;�
;�
;�
;�
;�
;�
;�
;�
;rr�rOc���K���d{V���dSrr)r�r�s��r�wait_for_futurez>BaseTaskTests.test_step_result_future.<locals>.wait_for_future�s������Y�Y�Y�Y�Y�Y�F�F�Fr)r
rPrGrLr�rrir}�objectr�r�r�r�r�)r-r�r�rqr�r�r�s     @@r�test_step_result_futurez%BaseTaskTests.test_step_result_future�s-����	;�	;�	;�	;�	;�'�.�	;�	;�	;��c�t�y�!�!�!����	�	�	�	�	�	�
�M�M�$�)�_�_�%6�%6�7�7����t�y�)�)�)������%�%�%��h�h�����s������t�y�)�)�)��
�
�c�6�"�"�"���������!�!�!����!�(�(�*�*�%�%�%�%�%rc������fd�}��|��}d��t�����fd�}��||����}tj|��|�����|�������ttj|����	|�������|�
������|������dS)Nc3�H�K�dV�}��d|��dV�dSrTrUrWs �rr�z;BaseTaskTests.test_baseexception_during_cancel.<locals>.gen�rYrc��>K�tjd���d{V��dSr+r-rrrrz?BaseTaskTests.test_baseexception_during_cancel.<locals>.sleeper�r/rc��X�K�	����d{V��dS#tj$r��wxYwrr�)�base_excrs��r�notmutchz@BaseTaskTests.test_baseexception_during_cancel.<locals>.notmutch�sJ�����
��g�i�i������������)�
�
�
���
���s��))
rX�
SystemExitrLr�rrkr1r�rlrir<r�ro)r-r�rGr�rbr�rs`    @@r� test_baseexception_during_cancelz.BaseTaskTests.test_baseexception_during_cancel�s7�����	�	�	�	�	�
�!�!�#�&�&��	$�	$�	$��<�<��	�	�	�	�	�	��}�}�T�8�8�:�:�.�.����t�$�$�$����
�
�
���������%�%�%����*�j�&<�d�C�C�C�����	�	���$�$�$�������)�)�*�*�*��
�
�d�n�n�&�&��1�1�1�1�1rc���d�}|�tj|����d�}|�tj|����d�}|�tj|����|�tjt	j������|�tjt	j������dS)Nc��dSrrrrr�fnz2BaseTaskTests.test_iscoroutinefunction.<locals>.fn�s���Drc3�K�dV�dSrrrrr�fn1z3BaseTaskTests.test_iscoroutinefunction.<locals>.fn1�s�����E�E�E�E�Erc��
K�dSrrrrr�fn2z3BaseTaskTests.test_iscoroutinefunction.<locals>.fn2�rfr)r1r
�iscoroutinefunctionrir�Mock�	AsyncMock)r-r�r�r�s    r�test_iscoroutinefunctionz&BaseTaskTests.test_iscoroutinefunction�s���	�	�	�	
����4�R�8�8�9�9�9�	�	�	�����4�S�9�9�:�:�:�	�	�	�����3�C�8�8�9�9�9�����4�T�Y�[�[�A�A�B�B�B�����3�D�N�4D�4D�E�E�F�F�F�F�Frc��d�}|�tj|����|��}|�tj|����|j�|��}|�|d��dS)Nc��
K�dS�Nr�rrrr�funcz;BaseTaskTests.test_coroutine_non_gen_function.<locals>.func�s�����6rr�)rir
r��iscoroutinerGrnr^)r-r�rKr�s    r�test_coroutine_non_gen_functionz-BaseTaskTests.test_coroutine_non_gen_function�s���	�	�	�	
����3�D�9�9�:�:�:��t�v�v������+�D�1�1�2�2�2��i�*�*�4�0�0������f�%�%�%�%�%rc���|�|j����fd�}�fd�}|�|j|����}|�|j|����}|j�|��}|�|���|�|�����dS)Nc���K��Srrr�s�rr�zIBaseTaskTests.test_coroutine_non_gen_function_return_future.<locals>.func�s������Jrc��6�K���d��dSr��r�r�s�rrKzIBaseTaskTests.test_coroutine_non_gen_function_return_future.<locals>.coro�s������N�N�6�"�"�"�"�"r)rRrGrLrnr^r�r�)r-r�rKr�r�r�r�s      @r�-test_coroutine_non_gen_function_return_futurez;BaseTaskTests.test_coroutine_non_gen_function_return_future�s�����o�o�d�i�(�(��	�	�	�	�	�	#�	#�	#�	#�	#��]�]�4�9�d�d�f�f�
-�
-��
�]�]�4�9�d�d�f�f�
-�
-���i�*�*�2�.�.������c�"�"�"����"�)�)�+�+�&�&�&�&�&rc�P�����tj�j�������fd�}���j|�j������j������tj�j�����dS)NrOc���K���tj�������tjd�������tj�����dSr)r�r
r9)rGr-rbs ��rrKz-BaseTaskTests.test_current_task.<locals>.coro�sf������M�M�'�.�0�0�$�7�7�7��M�M�'�.�t�4�4�d�;�;�;��M�M�'�.�0�0�$�7�7�7�7�7r)r�r
r9rGrLrnr�s` @r�test_current_taskzBaseTaskTests.test_current_task�s��������'�.�D�I�>�>�>�?�?�?�	8�	8�	8�	8�	8�	8��}�}�T�Y���T�Y���8�8���	�$�$�T�*�*�*����'�.�D�I�>�>�>�?�?�?�?�?rc�L��������tj�j��������j������j�������fd�}����fd�}���j|�j��������j|�j������j�tj��f������tj�j�����dS)NrOc����K���tj���u����d{V����tj���u����d��dSrB�rir
r9r�)rGr�r�r-�task1s ����rr�zFBaseTaskTests.test_current_task_with_interleaving_tasks.<locals>.coro1�sp������O�O�G�0�2�2�e�;�<�<�<��J�J�J�J�J�J�J��O�O�G�0�2�2�e�;�<�<�<��O�O�D�!�!�!�!�!rc����K���tj���u����d����d{V����tj���u��dSrBr�)rGr�r�r-�task2s ����rr�zFBaseTaskTests.test_current_task_with_interleaving_tasks.<locals>.coro2sp������O�O�G�0�2�2�e�;�<�<�<��O�O�D�!�!�!��J�J�J�J�J�J�J��O�O�G�0�2�2�e�;�<�<�<�<�<r)r�r
r9rGrRrLrnri)r-r�r�r�r�r�r�s`  @@@@r�)test_current_task_with_interleaving_tasksz7BaseTaskTests.test_current_task_with_interleaving_tasks�s3����������'�.�D�I�>�>�>�?�?�?����t�y�)�)�����t�y�)�)��	"�	"�	"�	"�	"�	"�	"�	"�	=�	=�	=�	=�	=�	=�	=�	=��
�
�d�i���t�y�)9�)9�:�:���
�
�d�i���t�y�)9�)9�:�:���	�$�$�W�\�5�%�.�%A�%A�B�B�B����'�.�D�I�>�>�>�?�?�?�?�?rc������d����j������fd����fd�}tj|���j���}t	j�j��|����j�|�����d����	��
����dS)Nrc��z�K�	��d{V����d��dS#tj$r�dz
��wxYw)Nzgot past sleep() in inner()r)r�r
rm)�proofr-�waiters���r�innerz<BaseTaskTests.test_yield_future_passes_cancel.<locals>.innersd�����
9���������
�	�	�7�8�8�8�8�8��	�)�
�
�
���
���
���s�$�:c��n�K�	����d{V���dz
�dS#tj$r	�dz
�YdSwxYw)Nr,r�r��r�r�s��rrz<BaseTaskTests.test_yield_future_passes_cancel.<locals>.outer#sa�����
��e�g�g�
�
�
�
�
�
�
���������)�
�
�
��������
���s��4�4rO�e)rRrGr
r�r�rrkrnr^rir<�r-rr�r�r�r�s`  @@@r�test_yield_future_passes_cancelz-BaseTaskTests.test_yield_future_passes_cancels��������������+�+��	9�	9�	9�	9�	9�	9�	9�	�	�	�	�	�	�
�!�%�%�'�'��	�:�:�:����t�y�)�)�)�	���
�
�
��	�$�$�Q�'�'�'������$�$�$�����(�(�*�*�+�+�+�+�+rc�������d����j�����fd�����fd�}tj|���j���}t	j�j��|�����tj�jj	|����
d��t	j�j�����d��dS)Nrc��&�K���d{V���dz
�dS�Nrr�r�r�s��rr�zCBaseTaskTests.test_yield_wait_does_not_shield_cancel.<locals>.inner9�%������L�L�L�L�L�L�L��Q�J�E�E�Erc����K���t��5tjtj�����g���d{V��\}}ddd��n#1swxYwY�dz
�dS�Nr�)r�r�r
rir�)�d�pr�r�r-s  ���rrzCBaseTaskTests.test_yield_wait_does_not_shield_cancel.<locals>.outer>s�������!�!�"4�5�5�
J�
J�$�\�7�+>�u�u�w�w�+G�+G�*H�I�I�I�I�I�I�I�I���1�
J�
J�
J�
J�
J�
J�
J�
J�
J�
J�
J����
J�
J�
J�
J��S�L�E�E�Es�9A#�#A'�*A'rOr�rRrGr
r�r�rrkrlrmrnr�r^r�s`  @@@r�&test_yield_wait_does_not_shield_cancelz4BaseTaskTests.test_yield_wait_does_not_shield_cancel3s
�������������+�+��	�	�	�	�	�	�
	�	�	�	�	�	�	�
�!�%�%�'�'��	�:�:�:����t�y�)�)�)�	���
�
�
�����"�D�I�$@�!�	E�	E�	E����$������t�y�)�)�)������"�"�"�"�"rc���|�|j��}tj|��}|�d��|j�|��}|�|d��dSr8)rRrGr
�shieldr�rnr^)r-r�rr�s    r�test_shield_resultz BaseTaskTests.test_shield_resultMsi������	�*�*����u�%�%��
��������i�*�*�5�1�1������b�!�!�!�!�!rc�^�|�|j��}tj|��}t	j|j��t
d��}|�|��t	j|j��|�|�	��|��dS)N�expected)
rRrGr
r�r�rr�rvr�ro)r-r�rr%s    r�test_shield_exceptionz#BaseTaskTests.test_shield_exceptionTs�������	�*�*����u�%�%����t�y�)�)�)��:�&�&��
���C� � � ���t�y�)�)�)��
�
�e�o�o�'�'��-�-�-�-�-rc�<�|�|j��}tj|��}t	j|j��|���t	j|j��|�|�����dSr)	rRrGr
r�r�rrkrir<�r-r�rs   r�test_shield_cancel_innerz&BaseTaskTests.test_shield_cancel_inner]sy������	�*�*����u�%�%����t�y�)�)�)�
��������t�y�)�)�)�������)�)�*�*�*�*�*rc��|�|j��}tj|��}t	j|j��|���t	j|j��|�|�����|�	d|j
�dnt|j
����dSrh)rRrGr
r�r�rrkrir<r^�
_callbacksrr�s   r�test_shield_cancel_outerz&BaseTaskTests.test_shield_cancel_outeres�������	�*�*����u�%�%����t�y�)�)�)�
��������t�y�)�)�)�������)�)�*�*�*������!1�T�A�A�s�5�CS�?T�?T�U�U�U�U�Urc���|�|j��}|�d��|j�t	j|����}|�|d��dSr8)rRrGr�rnr
r�r^)r-r�r�s   r�test_shield_shortcutz"BaseTaskTests.test_shield_shortcutnsb���o�o�d�i�(�(�����r�����i�*�*�7�>�#�+>�+>�?�?������b�!�!�!�!�!rc�&����d�|�|j�����fd����fd�}tj|��|j���}t	j|j��|���|�tj��5|j�	|��ddd��n#1swxYwY��
d��t	j|j��|��d��dS)Nrc��&�K���d{V���dz
�dSr�rr�s��rr�z/BaseTaskTests.test_shield_effect.<locals>.inneryr�rc��Z�K�tj������d{V���dz
�dSr��r
r�r�s��rrz/BaseTaskTests.test_shield_effect.<locals>.outer~s<������.�����)�)�)�)�)�)�)�)�)��S�L�E�E�ErrOrr�r�s   @@@r�test_shield_effectz BaseTaskTests.test_shield_effectts]������������+�+��	�	�	�	�	�	�
	�	�	�	�	�	�

�!�%�%�'�'��	�:�:�:����t�y�)�)�)�	���
�
�
�
�
�
�w�5�
6�
6�	,�	,��I�(�(��+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,����$������t�y�)�)�)������"�"�"�"�"s�C�C�	Cc�t�|�|j��}|�|j��}tj||��}tj|��}tj|j��|���tj|j��|�|�	����|�
d��|�
d��tj|j��|�|���ddg��dS�Nrr�)
rRrGr
r�r�r�rrkrir<r�r^r�)r-�child1�child2�parentrs     r�test_shield_gatherz BaseTaskTests.test_shield_gather�s��������+�+�������+�+������/�/����v�&�&����t�y�)�)�)�
��������t�y�)�)�)�������)�)�*�*�*����!�������!������t�y�)�)�)���������1�a�&�1�1�1�1�1rc��|�|j��}|�|j��}tj|��}tj|��}tj||��}tj|j��|���tj|j��|�|�	��tj
��|�|�����|�|�����|�
d��|�
d��tj|j��dSr�)rRrGr
r�r�r�rrkr`rormrir<r�)r-r�r�rrr�s      r�test_gather_shieldz BaseTaskTests.test_gather_shield�s,�������+�+�������+�+�����'�'�����'�'������/�/����t�y�)�)�)��
�
������t�y�)�)�)����f�.�.�0�0�'�2H�I�I�I�����(�(�*�*�+�+�+�����(�(�*�*�+�+�+����!�������!������t�y�)�)�)�)�)rc��d�}|��}|�|j��|�t��5}|�t
d��5t
j|��ddd��n#1swxYwYddd��n#1swxYwY|�|j	t��dS)Nc��
K�dSr8rrrrrKz>BaseTaskTests.test_shield_coroutine_without_loop.<locals>.coro�rrr�)r�r@r�r�r�r�r
r�r^r�r�)r-rKr�rrs    r�"test_shield_coroutine_without_loopz0BaseTaskTests.test_shield_coroutine_without_loop�s5��	�	�	�����������$�$�$�
�
�
�0�
1�
1�	&�R��'�'��6V�W�W�
&�
&���u�%�%�%�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&����
&�
&�
&�
&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�	
�����h�/�/�/�/�/s6�B�A?�3B�?B	�B�B	�B�B�Bc���d���fd�}|j�|����}|�|j|j��|j�|��}|�|d��dS)Nc��
K�dSr8rrrrrKzBBaseTaskTests.test_shield_coroutine_use_running_loop.<locals>.coro�rrc��@�K�tj�����Srr�r�s�rr�zBBaseTaskTests.test_shield_coroutine_use_running_loop.<locals>.test�s������>�$�$�&�&�)�)�)rr9)rGrnr^r�)r-r�rr�rKs    @r�&test_shield_coroutine_use_running_loopz4BaseTaskTests.test_shield_coroutine_use_running_loop�s����	�	�	�	*�	*�	*�	*�	*��	�,�,�T�T�V�V�4�4�������d�i�0�0�0��i�*�*�5�1�1������b�!�!�!�!�!rc��d�}tj|j��|�tjd��|�t
��5}tj|����}ddd��n#1swxYwY|�|jt��|�|j
|j��|j�|��}|�|d��dS)Nc��
K�dSr8rrrrrKzABaseTaskTests.test_shield_coroutine_use_global_loop.<locals>.coro�rrr9)r
r�rGr�r�r�r�r^r�r�r�rn)r-rKrrrr�s     r�%test_shield_coroutine_use_global_loopz3BaseTaskTests.test_shield_coroutine_use_global_loop�s��	�	�	�	��t�y�)�)�)�����.��5�5�5�
�
�
�0�
1�
1�	+�R��N�4�4�6�6�*�*�E�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+������h�/�/�/������d�i�0�0�0��i�*�*�5�1�1������b�!�!�!�!�!s�B�B�Bc�^�|�|j��}|�t|jjtj|����t��}|�t|jjtj|����|���dSr)	rRrGrlr�rnr
r1rr@�r-r�rKs   r�test_as_completed_invalid_argsz,BaseTaskTests.test_as_completed_invalid_args�s����o�o�d�i�(�(��	
���)�T�Y�%A�� ��%�%�	'�	'�	'�!�#�#�����)�T�Y�%A�� ��&�&�	(�	(�	(��
�
�����rc���|�|j��}|�t|jjtj|����t��}|�t|jjtj|����|���|�t|jjtjg����dSr)
rRrGrlr�rnr
rirr@r�r�s   r�test_wait_invalid_argsz$BaseTaskTests.test_wait_invalid_args�s����o�o�d�i�(�(��	
���)�T�Y�%A��L����	�	�	�!�#�#�����)�T�Y�%A��L����	 �	 �	 ��
�
����	
���*�d�i�&B��L����	�	�	�	�	rc�J���jj}�fd�}tj��}�j�d���j�|��|�j��}tj|�j���}��	tj
�j���|h��tjd���j�����	t�jj��d��d}|j}d}t!j����	tj
�j���t%����|��jdtj|d���|���dS)Nc��`�K���|��}|�d{V��td���)Nzcode never reached)rRr)rG�futurer-s  �r�kill_mez>BaseTaskTests.test_log_destroyed_pending_task.<locals>.kill_me�s:������_�_�T�*�*�F��L�L�L�L�L�L�L��0�1�1�1rTrOrz%Task was destroyed but it is pending!)�messagerbr)rIrJrr�rGr��set_exception_handlerr
r�r^�	all_tasksr��	_run_oncer�_readyr�r	�
gc_collectr��assert_called_with�ANY�
reset_mock)r-rJr��mock_handlerrKrbrs`      r�test_log_destroyed_pending_taskz-BaseTaskTests.test_log_destroyed_pending_task�s�����~�"��	2�	2�	2�	2�	2��y�{�{���	���D�!�!�!��	�'�'��5�5�5��w�t�y�!�!���$�T��	�:�:�:������*��	�:�:�:�T�F�C�C�C���t�$�$�$�	
�	����������T�Y�-�.�.��2�2�2����1����	���������*��	�:�:�:�C�E�E�B�B�B��'�'��	�>��H� 0�4
�4
�	�	�	�
	���!�!�!�!�!rzasyncio.base_events.loggerc������tj��������d�����fd�}��|������|jj��dS)Nc��K�t�r)r�rrrrKzBBaseTaskTests.test_tb_logger_not_called_after_cancel.<locals>.coros�����Orc���K���������}tjd���d{V��|���d}dS)NrAr�)rbrKrGr-s ���rr�zDBaseTaskTests.test_tb_logger_not_called_after_cancel.<locals>.runnersX������=�=��t�t�v�v�.�.�D��-��%�%�%�%�%�%�%�%�%��K�K�M�M�M��D�D�Dr)r
r�r�rnr1�error�called)r-�m_logr�rKrGs`  @@r�&test_tb_logger_not_called_after_cancelz4BaseTaskTests.test_tb_logger_not_called_after_cancels�������%�'�'�����D�!�!�!�	�	�	�	�	�	�	�	�	�	�	
�������)�)�)������+�,�,�,�,�,rc��|j�d��|�|jt����}t	j��jdz
}|�|jt��|�
|jddd�t|df��|j�|��dS)NTr���r�test_task_source_traceback)
rGr�rLrrG�	_getframe�f_linenor`r�rCr^r�rn)r-rbr�s   rr	z(BaseTaskTests.test_task_source_traceback$s����	���D�!�!�!��}�}�T�Y�(:�(<�(<�=�=������)�A�-�����d�4�d�;�;�;�����/��3�B�Q�B�7�"� �6�8�	9�	9�	9�	
�	�$�$�T�*�*�*�*�*rc�0����	tj��}|�|j��|�|����fd�}|�|�����d���fd�}��|����d��|����|��d��|�	��
����|�����dg��dS)Nc��r�K��fd�}tj|����}tj|��S)Nc3��K��Ed{V��Srrr�s�r�
child_corozFBaseTaskTests.test_cancel_gather_1.<locals>.create.<locals>.child_coro:s�����#&�������'r)r
r�r�)r�
gather_futurer�s  �r�createz2BaseTaskTests.test_cancel_gather_1.<locals>.create7sF�����
(�
(�
(�
(�
(�#�N�:�:�<�<�8�8�M��(��7�7�7rc�0�������dSrrC)r��
cancel_result�gather_tasks ��r�cancelling_callbackz?BaseTaskTests.test_cancel_gather_1.<locals>.cancelling_callbackAs���'�.�.�0�0�M�M�Mrr9F)r
r�r�r@rRrnr�r�r^r1r<r�)r-rGrrrr�rs    @@@r�test_cancel_gather_1z"BaseTaskTests.test_cancel_gather_10s5�����	��%�'�'������
�#�#�#��o�o�d�#�#��	8�	8�	8�	8�	8��-�-�f�f�h�h�7�7���
�	1�	1�	1�	1�	1�	1�	���1�2�2�2����r����	
����,�,�,�	
�����.�.�.�����.�.�0�0�1�1�1�����+�+�-�-��t�4�4�4�4�4rc	�0�����gd�}|D�]	\�}������5tj������j��d������fd�}	��|������d��ni#tj$rW}��|j	|��t|��}��|tj|df��Yd}~nd}~wwxYwddd��n#1swxYwY��dS)Nr_rcc��K�d}	|dz
}tjtjd��d����d{V��|dkrdS�<)NrTrA��return_exceptionsr)r
r�r.)r�s rr�z0BaseTaskTests.test_cancel_gather_2.<locals>.test]s�����D�#�����%�n�W�]�4�-@�-@�?C�E�E�E�E�E�E�E�E�E�E��!�8�#�"�F�#rc���K���������}tjd���d{V��|j��|�d{V��dS)Nr�r�)�qwerdrGr-r�s ����r�mainz0BaseTaskTests.test_cancel_gather_2.<locals>.mainfsf������-�-��d�d�f�f�5�5�C�!�-��,�,�,�,�,�,�,�,�,��C�J��,�,��I�I�I�I�I�I�I�I�IrzWgather() does not propagate CancelledError raised by inner task to the gather() caller.r)rmr
r�r�r@rnr�rmr^r$r()	r-rorprr%rqrdrGr�s	`     @@@r�test_cancel_gather_2z"BaseTaskTests.test_cancel_gather_2Ps�������
�
�
��+0�!	�!	�&�K�����+��6�6� 
� 
��-�/�/������
�+�+�+�#�#�#���������
��+�+�D�D�F�F�3�3�3��I�I�G�������-�����$�$�S�X�}�=�=�=�2�3�7�7�F��$�$�� �/���B�����������������+ 
� 
� 
� 
� 
� 
� 
� 
� 
� 
� 
���� 
� 
� 
� 
��!	�!	s<�9D	�!B�>D	�C:�#A
C5�0D	�5C:�:D	�	D
	�D
	c�`���d����fd�}�j�|����dS)Nc��K�ddzdS)Nrrrrrrr�z3BaseTaskTests.test_exception_traceback.<locals>.foo~s����
��E�E�E�Erc����K����j�����}tjd���d{V����|���j��dSrh)rLrGr
r.r�ro�
__traceback__)rbr�r-s ��rrz4BaseTaskTests.test_exception_traceback.<locals>.main�sk������=�=���C�C�E�E�2�2�D��-��"�"�"�"�"�"�"�"�"�� � ����!1�!1�!?�@�@�@�@�@rr�)r-rr�s` @r�test_exception_tracebackz&BaseTaskTests.test_exception_traceback{s[����	�	�	�	A�	A�	A�	A�	A�	A�
	
�	�$�$�T�T�V�V�,�,�,�,�,rc��d�}||j_d�}|�|jj��|�t��5|��}	|�|j|��|���n#|���wxYw	ddd��n#1swxYwYtj
��|�|jj��|jjdd}|�
d|��|�tj|j��t#����dS)Nc��t�rr)rdr$r�s   rr\z8BaseTaskTests.test_error_in_call_soon.<locals>.call_soon�s���rc��
K�dSrrrrrrKz3BaseTaskTests.test_error_in_call_soon.<locals>.coro�rfrrz$Task was destroyed but it is pending)rGr\r1rrrlr�rLr@r{r|ri�	call_argsr4r^r
r�r�)r-rr\rKr�r�s      r�test_error_in_call_soonz%BaseTaskTests.test_error_in_call_soon�sq��	�	�	�'��	��	�	�	�	
�����+�,�,�,�
�
�
�z�
*�
*�	�	��$�&�&�C�
��
�
�d�i��-�-�-��	�	�������	�	���������	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�
���������*�+�+�+��+�'��*�1�-���
�
�<�g�F�F�F�����*�4�9�5�5�s�u�u�=�=�=�=�=s*�B.�B�3B.�B�B.�.B2�5B2c�@�|�td��5|�|jd��ddd��n#1swxYwY|�td��5|�|jd��ddd��dS#1swxYwYdS)Nz!a coroutine was expected, got 123r�)r�r�rLrGr,s r�"test_create_task_with_noncoroutinez0BaseTaskTests.test_create_task_with_noncoroutine�s#��
�
#�
#�I�$G�I�I�	*�	*��M�M�$�)�S�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*��
#�
#�I�$G�I�I�	*�	*��M�M�$�)�S�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	*�	*s#�A�A�A�*B�B�Bc�l�d�}|�|j|����}|�||j��|j�|��|�|j|����}|�||j��|j�|��dS)Nc��
K�dSrrrrrrKz@BaseTaskTests.test_create_task_with_async_function.<locals>.coro�rfr)rLrGr`rJrnr�s   r�$test_create_task_with_async_functionz2BaseTaskTests.test_create_task_with_async_function�s���	�	�	��}�}�T�Y�����/�/�����d�D�I�.�.�.��	�$�$�T�*�*�*��}�}�T�Y�����/�/�����d�D�I�.�.�.��	�$�$�T�*�*�*�*�*rc���|�|jt����}|�||j��|�|j�|��d��|�|jt����}|�||j��|�|j�|��d��dSr8)rLrGr6r`rJr^rnras  r�(test_create_task_with_asynclike_functionz6BaseTaskTests.test_create_task_with_asynclike_function�s����}�}�T�Y��(8�(8�9�9�����d�D�I�.�.�.������5�5�d�;�;�R�@�@�@��}�}�T�Y��(8�(8�9�9�����d�D�I�.�.�.������5�5�d�;�;�R�@�@�@�@�@rc�`���d����fd�}�j�|����dS)Nc��
K�dSr�rrrrr�z2BaseTaskTests.test_bare_create_task.<locals>.inner�s�����1rc���K�tj�����}��|�j��|�d{V��}��d|��dSr�)r
r�r`rJr^)rb�retr�r-s  ��rrKz1BaseTaskTests.test_bare_create_task.<locals>.coro�sb������&�u�u�w�w�/�/�D��!�!�$��	�2�2�2��*�*�*�*�*�*�C����Q��$�$�$�$�$rr�)r-rKr�s` @r�test_bare_create_taskz#BaseTaskTests.test_bare_create_task�sU����	�	�	�	%�	%�	%�	%�	%�	%�	
�	�$�$�T�T�V�V�,�,�,�,�,rc�`���d����fd�}�j�|����dS)Nc��
K�dSrrrrr�	coro_noopz<BaseTaskTests.test_bare_create_named_task.<locals>.coro_noop�rfrc���K�tj���d���}��|���d��|�d{V��dS)NzNo-op)rH)r
r�r^r)rbr7r-s ��rrKz7BaseTaskTests.test_bare_create_named_task.<locals>.coro�sU������&�y�y�{�{��A�A�A�D����T�]�]�_�_�g�6�6�6��J�J�J�J�J�J�J�J�Jrr�)r-rKr7s` @r�test_bare_create_named_taskz)BaseTaskTests.test_bare_create_named_task�sU����	�	�	�	�	�	�	�	�	�
	
�	�$�$�T�T�V�V�,�,�,�,�,rc�>�����tjdd������fd������fd�}tj���	���|����}��|������dS#����wxYw)N�cvar�nope��defaultc���K�tjd���d{V��������d����d��dS)Nr;r<�something else)r
r.r^�getr�)r;r-s��r�subz)BaseTaskTests.test_context_1.<locals>.sub�s`������-��%�%�%�%�%�%�%�%�%����T�X�X�Z�Z��0�0�0��H�H�%�&�&�&�&�&rc��r�K�������d����������}��d��������d��|�d{V��������d��dS)Nr<�yes)r^rArLr�)�subtaskr;rGr-rBs ����rrz*BaseTaskTests.test_context_1.<locals>.main�s���������T�X�X�Z�Z��0�0�0��m�m�D�#�#�%�%�0�0�G��H�H�U�O�O�O����T�X�X�Z�Z��/�/�/��M�M�M�M�M�M�M����T�X�X�Z�Z��/�/�/�/�/r)�contextvars�
ContextVarr
r�rLrnr@)r-rrbr;rGrBs`  @@@r�test_context_1zBaseTaskTests.test_context_1�s��������%�f�f�=�=�=��	'�	'�	'�	'�	'�	'�
	0�	0�	0�	0�	0�	0�	0�	0��%�'�'��	��=�=��t�t�v�v�.�.�D��#�#�D�)�)�)��J�J�L�L�L�L�L��D�J�J�L�L�L�L���s�3B�Bc�����tjdd�������fd�}tj���	���|����}��|������n#����wxYw������d��dS)Nr;r<r=c	���K��fd�}������d��td��D�]}�����}|�|����d|������|jd��|�d{V��������d|����td��D]e}��d|�d|����tj	d���d{V��������d|�d|�����f��
dS)Nc�2����d��dS)Nr@)r�)r�r;s �r�fut_on_donez?BaseTaskTests.test_context_2.<locals>.main.<locals>.fut_on_done�s������)�*�*�*�*�*rr<r�rDr�-���MbP?)
r^rAr�rRr�r�r\r�r
r.)rL�jr��ir;rGr-s    ���rrz*BaseTaskTests.test_context_2.<locals>.main�su�����
+�
+�
+�
+�
+�

���T�X�X�Z�Z��0�0�0��1�X�X�
@�
@���o�o�d�+�+���%�%�k�2�2�2�����q���#�#�#����s�~�t�4�4�4��	�	�	�	�	�	�	�� � ������Y�1�Y�Y�7�7�7��q���@�@�A��H�H�]�1�]�]�q�]�]�+�+�+�!�-��.�.�.�.�.�.�.�.�.��$�$�T�X�X�Z�Z��q���1���?�?�?�?�	@�
@�
@r)	rFrGr
r�rLrnr@r^rA)r-rrbr;rGs`  @@r�test_context_2zBaseTaskTests.test_context_2�s�������%�f�f�=�=�=��	@�	@�	@�	@�	@�	@�	@�,�%�'�'��	��=�=��t�t�v�v�.�.�D��#�#�D�)�)�)��J�J�L�L�L�L��D�J�J�L�L�L�L������������V�,�,�,�,�,s�3A=�=Bc�`�����tjdd������fd����fd�}tj���	��|��������n#����wxYw������d��dS)Nr;rr=c���K�td��D]r}��||z��tjt	jdd�����d{V��������||z���sdS)Nr,rNrA)r�r�r
r.�random�uniformr^rA)�numrPr;r-s  ��rrBz)BaseTaskTests.test_context_3.<locals>.sub	s�������2�Y�Y�
6�
6������q��!�!�!��m�F�N�5�$�$?�$?�@�@�@�@�@�@�@�@�@�� � ������S�1�W�5�5�5�5�
6�
6rc	����K�g}td��D]C}���tjdd������}|j|���Dtj|��d{V��dS)Nr�rr,)r�r�rT�randintr2r
r�)rrPrbrGrBs   ��rrz*BaseTaskTests.test_context_3.<locals>.main#	s�������E��3�Z�Z�
#�
#���'�'���F�N�1�b�,A�,A�(B�(B�C�C�����T�"�"�"�"��.�%�(�(�(�(�(�(�(�(�(�(r)rFrGr
r�rnr@r^rA)r-rr;rGrBs` @@@r�test_context_3zBaseTaskTests.test_context_3	s��������%�f�b�9�9�9��	6�	6�	6�	6�	6�	6�	)�	)�	)�	)�	)�	)��%�'�'��	��#�#�D�D�F�F�+�+�+��J�J�L�L�L�L��D�J�J�L�L�L�L������������R�(�(�(�(�(s�A-�-Bc�j�����tjd����fd������fd�}tj���	���|����}��|��}����n#����wxYw��gd�|��dS)Nr;c��j�K�tjd���d{V����|��dSrh�r
r.r���valr;s �rrKz*BaseTaskTests.test_context_4.<locals>.coro6	�<������-��"�"�"�"�"�"�"�"�"��H�H�S�M�M�M�M�Mrc����K�g}tj��}|�|����������d��|���}|�d{V��|�|����������d��|���}|�d{V��|�|������|S�Nr)r'r�)rF�copy_contextr2rArL)r3�ctxr�r�rKr;rGr-s    ����rrz*BaseTaskTests.test_context_4.<locals>.main:	s�������C��*�,�,�C��J�J�s�w�w�t�}�}�%�%�%����t�T�T�!�W�W�c��:�:�B��H�H�H�H�H�H�H��J�J�s�w�w�t�}�}�%�%�%����t�T�T�!�W�W�c��:�:�B��H�H�H�H�H�H�H��J�J�s�w�w�t�}�}�%�%�%��Jrr��rFrGr
r�rLrnr@r^�r-rrbr3rKr;rGs`   @@@r�test_context_4zBaseTaskTests.test_context_43	s��������%�f�-�-��	�	�	�	�	�
	�
	�
	�
	�
	�
	�
	�
	��%�'�'��	��=�=��t�t�v�v�.�.�D��)�)�$�/�/�C��J�J�L�L�L�L��D�J�J�L�L�L�L����������s�+�+�+�+�+s�3B�Bc�b���tjd����fd����fd�}tj��}	|�||����}|�|��}|���n#|���wxYw|�gd�|��dS)Nr;c��j�K�tjd���d{V����|��dSrhr\r]s �rrKz*BaseTaskTests.test_context_5.<locals>.coroR	r_rc����K�g}tj��}|�|������t	j�d��|���}|�d{V��|�|������t	j�d��|���}|�d{V��|�|������|Sra)rFrbr2rAr
r�)r3rcr�r�rKr;s    ��rrz*BaseTaskTests.test_context_5.<locals>.mainV	s�������C��*�,�,�C��J�J�s�w�w�t�}�}�%�%�%��$�T�T�!�W�W�c�:�:�:�B��H�H�H�H�H�H�H��J�J�s�w�w�t�}�}�%�%�%��$�T�T�!�W�W�c�:�:�:�B��H�H�H�H�H�H�H��J�J�s�w�w�t�}�}�%�%�%��Jrr�rd)r-rrGrbr3rKr;s     @@r�test_context_5zBaseTaskTests.test_context_5O	s������%�f�-�-��	�	�	�	�	�
	�
	�
	�
	�
	�
	��%�'�'��	��=�=��t�t�v�v�.�.�D��)�)�$�/�/�C��J�J�L�L�L�L��D�J�J�L�L�L�L����������s�+�+�+�+�+s�3A>�>Bc�d����tjd����fd�����fd�}tj���	��|����}��|��}����n#����wxYw|�gd�|��dS)Nr;c��j�K�tjd���d{V����|��dSrhr\r]s �rrKz*BaseTaskTests.test_context_6.<locals>.coron	r_rc����K�g}tj��}|�|���������d��|���}|�d{V��|�|���������d��|���}|�d{V��|�|������|Sra)rFrbr2rAr�)r3rcr�r�rKr;rGs    ���rrz*BaseTaskTests.test_context_6.<locals>.mainr	s�������C��*�,�,�C��J�J�s�w�w�t�}�}�%�%�%��!�!�$�$�q�'�'�3�!�7�7�B��H�H�H�H�H�H�H��J�J�s�w�w�t�}�}�%�%�%��!�!�$�$�q�'�'�3�!�7�7�B��H�H�H�H�H�H�H��J�J�s�w�w�t�}�}�%�%�%��Jrr�)rFrGr
r�r�rnr@r^res    @@@r�test_context_6zBaseTaskTests.test_context_6k	s�������%�f�-�-��	�	�	�	�	�
	�
	�
	�
	�
	�
	�
	��%�'�'��	��#�#�D�D�F�F�+�+�D��)�)�$�/�/�C��J�J�L�L�L�L��D�J�J�L�L�L�L����������s�+�+�+�+�+s�2A?�?Bc�J�tj��}t��}	|�||��}|�|��|�|���|��|���dS#|���wxYwr)r
r�rrLrnr��get_coror@)r-rGrKrbs    r�
test_get_corozBaseTaskTests.test_get_coro�	s����%�'�'��!�#�#��	��=�=��t�,�,�D��#�#�D�)�)�)��M�M�$�-�-�/�/�4�0�0�0��J�J�L�L�L�L�L��D�J�J�L�L�L�L���s�AB�B")rEN)vr2r3r4rJrPrLrRrWrcrsrvr�r�r�r�r�r�r�r�r�r�r�r�rrr
rr!r(r6r=rQr]rrrxrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr!r&r5r:r>rGrMrRrUrYr_rhrprsrwr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�patchrr	rrr#r(r*r-r/r4r9rHrQrYrfrjrnrqr�r�s@rrDrDWs"��������D�
�F�P�P�P�P�0�0�0�E�E�E�E�E�2�2�2�

=�
=�
=�A�A�A�������	/�	/�	/����"!+�!+�!+�F!�!�!�*!�!�!�*-�-�-� (�(�(����/�/�/�81S�1S�1S�f)�)�)�$(�(�(�
+�
+�
+�@�@�@� ���:+�+�+�@���0(�(�(�Td-�d-�d-�L%�%�%�* @� @� @�D @� @� @�D3�3�3�8:�:�:�0
%�
%�
%�
'�
'�
'�'�'�'�((�(�(�.(�(�(�<%�%�%�(%�%�%�&")�")�")�HO�O�O�6�6�6�66�6�6�:!N�!N�!N�F+�+�+�"�"�"�:J�J�J����6�6�6�:&�&�&�06�6�6�:6�6�6�<2�2�2�@6�6�6�86�6�6�62�2�2�0%&�%&�%&�N"6�"6�"6�H<�<�<�$(�(�(�6(�(�(�0)�)�)�$0�0�0�(�(�(�1�1�1�,+�+�+�81�1�1�8)�)�)�"���"&�&�&�<2�2�2�@G�G�G�"
&�
&�
&�
'�
'�
'�@�@�@�@�@�@�6,�,�,�>#�#�#�4"�"�"�.�.�.�+�+�+�V�V�V�"�"�"�#�#�#�02�2�2�*�*�*�"	0�	0�	0�	"�	"�	"�"�"�"�	�	�	�
�
�
�("�("�("�T�T�Z�,�-�-�-�-�.�-�-� 
+�
+�
+�5�5�5�@)�)�)�V-�-�-��T�Z�,�-�-�>�>�.�-�>�0	*�	*�	*�
+�
+�
+�	A�	A�	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�n��tjd���|_t��j|i|��dS)Nc��dSrhrrrrrUzCadd_subclass_tests.<locals>.CommonFuture.__init__.<locals>.<lambda>�	s���r)�collections�defaultdict�callsrVr�r�s   �rr�z1add_subclass_tests.<locals>.CommonFuture.__init__�	s9���$�0���;�;�D�J��E�G�G��d�-�f�-�-�-�-�-rc�`��|jdxxdz
cc<t��j|i|��S)Nr�r)rzrVr�r�s   �rr�z:add_subclass_tests.<locals>.CommonFuture.add_done_callback�	s>����J�*�+�+�+�q�0�+�+�+�,�5�7�7�,�d�=�f�=�=�=rr�r�s@r�CommonFutureru�	sQ�������	.�	.�	.�	.�	.�	>�	>�	>�	>�	>�	>�	>�	>�	>rr|c��eZdZdS)� add_subclass_tests.<locals>.TaskN�r2r3r4rrrrJr~�	��������rrJc��eZdZdS)�"add_subclass_tests.<locals>.FutureNrrrrrPr��	r�rrPc�������j������fd�}��|���j���}�j�|��}��|d����t|j��ddi����t�j��ddi��dS)NrOc��R�K��j��fd�����d{V��S)Nc�.����d��S�Nr�r�r�s�rrUzYadd_subclass_tests.<locals>.test_subclasses_ctask_cfuture.<locals>.func.<locals>.<lambda>�	s������v�(>�(>�r)rGr\)r�r-s��rr�zGadd_subclass_tests.<locals>.test_subclasses_ctask_cfuture.<locals>.func�	s9������I��� >� >� >� >�?�?�?��9�9�9�9�9�9�rr�r�r)rPrGrJrnr^�dictrz)r-r�rbr�r�s`   @r�test_subclasses_ctask_cfuturez9add_subclass_tests.<locals>.test_subclasses_ctask_cfuture�	s������k�k�t�y�k�)�)��	�	�	�	�	�	��y�y�����d�i�y�0�0����-�-�d�3�3�������(�(�(���������
 �!�$�	&�	&�	&�	
������O�O�
 �!�$�	&�	&�	&�	&�	&r)rJrPr�r	)�cls�BaseTask�
BaseFuturer|rJrPr�s       r�add_subclass_testsr��	s����x�H���J���:���
�>�>�>�>�>�>�>�>�
�
�
�
�
�|�X�
�
�
�
�
�
�
�
��z�
�
�
�&�&�&�,�C�H��C�J�)F�C�%�
&*�C�"��Jrc��eZdZd�Zd�ZdS)�SetMethodsTestc�"�t|��j}tj��x|j_}d�}|��}|�|j|��}|�|d��|�|j�	|��d��|�
��|jddd}|�tjd��5|�#1swxYwY|���dS)Nc��>K�tjd���d{V��dS�NrOr,r-rrrr�z@SetMethodsTest.test_set_result_causes_invalid_state.<locals>.foo�	�-�����-��$�$�$�$�$�$�$�$�$��2rr�rro�step\(\): already done)r#rPrr�rG�call_exception_handlerrLr�r^rn�assert_called_oncer'r�r
�InvalidStateErrorr@)r-rP�exc_handlerr�rKrbr%s       r�$test_set_result_causes_invalid_statez3SetMethodsTest.test_set_result_causes_invalid_state�	s-���d���"��9=����D��	�(�;�	�	�	��s�u�u���}�}�T�Y��-�-�����$��'�'�'�����I�(�(��.�.��	�	�	�	�&�&�(�(�(��#�A�&�q�)�+�6��
�
#�
#�G�$=�$=�?�?�	�	��I�	�	�	�	����	�	�	�	�	
�
�
�����s�-C0�0C4�7C4c��Gd�dt��}t|��j}tj��x|j_}d�}|��}|�|j|��}|�||����|�	|��5|j�
|��ddd��n#1swxYwY|���|jddd}|�
tjd��5|�#1swxYwY|���dS)Nc��eZdZdS)�ESetMethodsTest.test_set_exception_causes_invalid_state.<locals>.MyExcNrrrr�MyExcr��	s�������Drr�c��>K�tjd���d{V��dSr�r-rrrr�zCSetMethodsTest.test_set_exception_causes_invalid_state.<locals>.foo�	r�rrror�)rr#rPrr�rGr�rLrvrlrnr�r'r�r
r�r@)r-r�rPr�r�rKrbr%s        r�'test_set_exception_causes_invalid_statez6SetMethodsTest.test_set_exception_causes_invalid_state�	s���	�	�	�	�	�I�	�	�	��d���"��9=����D��	�(�;�	�	�	��s�u�u���}�}�T�Y��-�-�����T�5�5�7�7�+�+�+�
�
�
�u�
%�
%�	/�	/��I�(�(��.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	�&�&�(�(�(��#�A�&�q�)�+�6��
�
#�
#�G�$=�$=�?�?�	�	��I�	�	�	�	����	�	�	�	�	
�
�
�����s$�"C	�	C
�C
�!D$�$D(�+D(N)r2r3r4r�r�rrrr�r��	s2���������0����rr��_CFuture�_CTaskzrequires the C _asyncio modulec�h�eZdZeedd��Zeedd��Zej	d���Z
d�ZdS)�CTask_CFuture_Testsr�Nr�c��tjtd��}d�}|�|j|����}|j�|��|��}t
d��D]@}|�|��|j���|j�|���A|�|��|z
dd���dS)N�gettotalrefcountc��
K�dSrrrrrrKz@CTask_CFuture_Tests.test_refleaks_in_task___init__.<locals>.coro
rfrr�rOrr,)�delta)	r	�
get_attributerGrLrGrnr�r�rV)r-r�rKrb�refs_beforerPs      r�test_refleaks_in_task___init__z2CTask_CFuture_Tests.test_refleaks_in_task___init__

s���"�0��6H�I�I��	�	�	��}�}�T�Y�����/�/���	�$�$�T�*�*�*�&�&�(�(���s���	/�	/�A��M�M�$�$�&�&�t�y�M�1�1�1��I�(�(��.�.�.�.����/�/�1�1�K�?��"��M�M�M�M�Mrc���d�}|�|j|����}|j�|��|�t��5|`ddd��dS#1swxYwYdS)Nc��
K�dSrrrrrrKzHCTask_CFuture_Tests.test_del__log_destroy_pending_segfault.<locals>.coro
rfr)rLrGrnrl�AttributeError�_log_destroy_pendingr�s   r�&test_del__log_destroy_pending_segfaultz:CTask_CFuture_Tests.test_del__log_destroy_pending_segfault
s���	�	�	��}�}�T�Y�����/�/���	�$�$�T�*�*�*�
�
�
�~�
.�
.�	*�	*��)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	*�	*s�A+�+A/�2A/)r2r3r4�getattrrrJrrPr	�
refcount_testr�r�rrrr�r�
sk�������7�5�(�D�)�)�D�
�W�W�j�$�
/�
/�F���
N�
N���
N�*�*�*�*�*rr�c�B�eZdZeedd��Zeedd��ZdS)�CTask_CFuture_SubclassTestsr�Nr�)r2r3r4r�rrJrrPrrrr�r� 
s6�������7�5�(�D�)�)�D�
�W�W�j�$�
/�
/�F�F�Frr�c�6�eZdZeedd��ZejZdS)�CTaskSubclass_PyFuture_Testsr�N�	r2r3r4r�rrJr�	_PyFuturerPrrrr�r�*
s+������
�7�5�(�D�)�)�D�
�
�F�F�Frr�c�6�eZdZeedd��ZejZdS)�PyTask_CFutureSubclass_Testsr�N)	r2r3r4r�rrPr�_PyTaskrJrrrr�r�3
s*������
�W�W�j�$�
/�
/�F��=�D�D�Drr�c�6�eZdZeedd��ZejZdS)�CTask_PyFuture_Testsr�Nr�rrrr�r�<
s+�������7�5�(�D�)�)�D�
�
�F�F�Frr�c�6�eZdZejZeedd��ZdS)�PyTask_CFuture_Testsr�N)	r2r3r4rr�rJr�rrPrrrr�r�D
s*�������=�D�
�W�W�j�$�
/�
/�F�F�Frr�c�*�eZdZejZejZdS)�PyTask_PyFuture_TestsN�	r2r3r4rr�rJrr�rPrrrr�r�L
s�������=�D�
�
�F�F�Frr�c�*�eZdZejZejZdS)�PyTask_PyFuture_SubclassTestsNr�rrrr�r�S
s�������=�D�
�
�F�F�Frr�c��eZdZd�ZdS)�CTask_Future_Testsc����Gd�dtj��}�fd�}tj��|_	||j����|j�d�jd��|j�|����}|j�|��}|j���n#|j���wxYw|�	|d��dS)Nc�$�eZdZed���ZdS)�+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-������
�
%�
%��X�
%�
%�
%rr�c���K���d{V��dSr�rr�s�rrKz,CTask_Future_Tests.test_foobar.<locals>.coroc
s������I�I�I�I�I�I�I��6rrOrOrr�)
r
rPr�rGrFr�r�rnr@r^)r-r�rKrbr�r�s     @r�test_foobarzCTask_Future_Tests.test_foobar]
s���	%�	%�	%�	%�	%�'�.�	%�	%�	%�
	�	�	�	�	��*�,�,��	�	��#�4�9�%�%�%�C��I� � ��c�n�a�8�8�8��9�(�(�����0�0�D��)�.�.�t�4�4�C��I�O�O������D�I�O�O������������f�%�%�%�%�%s�A.C�CN)r2r3r4r�rrrr�r�Y
s#������&�&�&�&�&rr�c�Z�eZdZdZdZdZdZd�Zd�Zd�Z	d�Z
d�Zd�Zd�Z
d	�Zd
�Zd�ZdS)�BaseTaskIntrospectionTestsNc�n��G�fd�d��}|��}tj���|�tj���t����|�|��|�tj���|h��|�|��dS)Nc�0��eZdZe�fd���Zd�ZdS)�BBaseTaskIntrospectionTests.test__register_task_1.<locals>.TaskLikec����SrrrQs �rr�zHBaseTaskIntrospectionTests.test__register_task_1.<locals>.TaskLike._loop{
s����rc��dSr|rr,s rr�zGBaseTaskIntrospectionTests.test__register_task_1.<locals>.TaskLike.done
����urN)r2r3r4r�r�r�rOs�r�TaskLiker�z
sG�������
�
�
�
�
��X�
�
�
�
�
�
rr��rr�r^r
r�r��_register_task�_unregister_task�r-r�rbrGs   @r�test__register_task_1z0BaseTaskIntrospectionTests.test__register_task_1y
s����	�	�	�	�	�	�	�	�	�	��x�z�z���y�{�{������*�4�0�0�#�%�%�8�8�8����D�!�!�!�����*�4�0�0�4�&�9�9�9����d�#�#�#�#�#rc�n��G�fd�d��}|��}tj���|�tj���t����|�|��|�tj���|h��|�|��dS)Nc� ��eZdZ�fd�Zd�ZdS)�BBaseTaskIntrospectionTests.test__register_task_2.<locals>.TaskLikec����SrrrQs �rr�zKBaseTaskIntrospectionTests.test__register_task_2.<locals>.TaskLike.get_loop�
�����rc��dSr|rr,s rr�zGBaseTaskIntrospectionTests.test__register_task_2.<locals>.TaskLike.done�
r�rN�r2r3r4r�r�rOs�rr�r��
s=�������
�
�
�
�
�
�
�
�
�
rr�r�r�s   @r�test__register_task_2z0BaseTaskIntrospectionTests.test__register_task_2�
s����	�	�	�	�	�	�	�	�	�	��x�z�z���y�{�{������*�4�0�0�#�%�%�8�8�8����D�!�!�!�����*�4�0�0�4�&�9�9�9����d�#�#�#�#�#rc���G�fd�d��}|��}tj���|�tj���t����|�|��|�tj���t����|�|��dS)Nc� ��eZdZ�fd�Zd�ZdS)�BBaseTaskIntrospectionTests.test__register_task_3.<locals>.TaskLikec����SrrrQs �rr�zKBaseTaskIntrospectionTests.test__register_task_3.<locals>.TaskLike.get_loop�
r�rc��dSrBrr,s rr�zGBaseTaskIntrospectionTests.test__register_task_3.<locals>.TaskLike.done�
s���trNr�rOs�rr�r��
s=�������
�
�
�
�
�
�
�
�
�
rr�r�r�s   @r�test__register_task_3z0BaseTaskIntrospectionTests.test__register_task_3�
s����	�	�	�	�	�	�	�	�	�	��x�z�z���y�{�{������*�4�0�0�#�%�%�8�8�8����D�!�!�!�����*�4�0�0�#�%�%�8�8�8����d�#�#�#�#�#rc�H�tj��}tj��}|�tj|����|�||��|�tj|��|��|�||��dSr)rr�r�r
r9�_enter_taskr��_leave_task�r-rbrGs   r�test__enter_taskz+BaseTaskIntrospectionTests.test__enter_task�
s����y�{�{���y�{�{�����'�.�t�4�4�5�5�5�����t�$�$�$��
�
�g�*�4�0�0�$�7�7�7�����t�$�$�$�$�$rc��tj��}tj��}tj��}|�||��|�t��5|�||��ddd��n#1swxYwY|�t
j|��|��|�||��dSr)	rr�r�rlr�r�r
r9r��r-r�r�rGs    r�test__enter_task_failurez3BaseTaskIntrospectionTests.test__enter_task_failure�
�����	�����	�����y�{�{������u�%�%�%�
�
�
�|�
,�
,�	*�	*����T�5�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*��
�
�g�*�4�0�0�%�8�8�8�����u�%�%�%�%�%��*B
�
B�Bc��tj��}tj��}|�||��|�||��|�tj|����dSr)rr�r�r�r�r
r9r�s   r�test__leave_taskz+BaseTaskIntrospectionTests.test__leave_task�
si���y�{�{���y�{�{������t�$�$�$�����t�$�$�$����'�.�t�4�4�5�5�5�5�5rc��tj��}tj��}tj��}|�||��|�t��5|�||��ddd��n#1swxYwY|�tj|��|��|�||��dSr)	rr�r�rlr�r�r�r
r9r�s    r�test__leave_task_failure1z4BaseTaskIntrospectionTests.test__leave_task_failure1�
r�r�c�0�tj��}tj��}|�t��5|�||��ddd��n#1swxYwY|�t
j|����dSr)rr�rlr�r�r�r
r9r�s   r�test__leave_task_failure2z4BaseTaskIntrospectionTests.test__leave_task_failure2�
s����y�{�{���y�{�{��
�
�
�|�
,�
,�	)�	)����T�4�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)����'�.�t�4�4�5�5�5�5�5s�A$�$A(�+A(c�$��tj��}tj����fd�|_|�|��|�|��|�t
j���t����dS)Nc����SrrrOs�rrUzBBaseTaskIntrospectionTests.test__unregister_task.<locals>.<lambda>�
s����r)	rr�r�r�r�r^r
r�r�r�s  @r�test__unregister_taskz0BaseTaskIntrospectionTests.test__unregister_task�
sy����y�{�{���y�{�{��$�����
����D�!�!�!����d�#�#�#�����*�4�0�0�#�%�%�8�8�8�8�8rc���tj��}tj��}|�|��|�t	j|��t
����dSr)rr�r�r^r
r�r�r�s   r�$test__unregister_task_not_registeredz?BaseTaskIntrospectionTests.test__unregister_task_not_registered�
sW���y�{�{���y�{�{�����d�#�#�#�����*�4�0�0�#�%�%�8�8�8�8�8r)r2r3r4r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr�r�s
s��������N����K��K�$�$�$�"$�$�$� $�$�$� %�%�%�&�&�&�6�6�6�&�&�&�6�6�6�9�9�9�9�9�9�9�9rr�c��eZdZeej��Zeej��Zeej	��Z
eej��ZdS)�PyIntrospectionTestsN)
r2r3r4�staticmethodr�_py_register_taskr��_py_unregister_taskr��_py_enter_taskr��_py_leave_taskr�rrrr�r��
sW������!�\�%�"9�:�:�N�#�|�E�$=�>�>���,�u�3�4�4�K��,�u�3�4�4�K�K�Krr��_c_register_taskc��eZdZeed��rBeej��Zeej��Z	eej
��Zeej��Z
dSdxZxZ	xZZ
dS)�CIntrospectionTestsrN)r2r3r4rjrr�rr��_c_unregister_taskr��
_c_enter_taskr��
_c_leave_taskr�rrrrr�
s��������w�u�(�)�)�M�%��e�&<�=�=��'�<��(@�A�A��"�l�5�#6�7�7��"�l�5�#6�7�7����HL�L��L�)�L�K�+�+�+rrc�6��eZdZ�fd�Zd�Zd�Zd�Zd�Z�xZS)�BaseCurrentLoopTestsc���t�����tj��|_|�|j��dSr�rVrWr
r�rGr�r[s �rrWzBaseCurrentLoopTests.setUp�
�@���
���
�
�����*�,�,��	����D�I�&�&�&�&�&rc��t�r)�NotImplementedErrorr�s  rrLzBaseCurrentLoopTests.new_task�
s��!�!rc�`�|�tj|j�����dSrN)r�r
r9rGr,s r�!test_current_task_no_running_loopz6BaseCurrentLoopTests.test_current_task_no_running_loops,�����'�.�D�I�>�>�>�?�?�?�?�?rc��|�t��5tj��ddd��dS#1swxYwYdSr)rlr�r
r9r,s r�*test_current_task_no_running_loop_implicitz?BaseCurrentLoopTests.test_current_task_no_running_loop_implicits���
�
�
�|�
,�
,�	#�	#�� �"�"�"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�	#�	#s�<�A�Ac�������fd�}��|������j������t	j�j�����dS)Nc���K���tj�j��������tjd�������tj�����dSrN)r�r
r9rGras��rrKzGBaseCurrentLoopTests.test_current_task_with_implicit_loop.<locals>.corosm������M�M�'�.�D�I�>�>�>��E�E�E��M�M�'�.�t�4�4�d�;�;�;��M�M�'�.�0�0�$�7�7�7�7�7rrO)rLrGrnr�r
r9r�s` @r�$test_current_task_with_implicit_loopz9BaseCurrentLoopTests.test_current_task_with_implicit_loops{����	8�	8�	8�	8�	8�	8��}�}�T�T�V�V�$�$���	�$�$�T�*�*�*����'�.�D�I�>�>�>�?�?�?�?�?r)	r2r3r4rWrLrrrr�r�s@rrr�
s~�������'�'�'�'�'�
"�"�"�@�@�@�#�#�#�	@�	@�	@�	@�	@�	@�	@rrc��eZdZd�ZdS)�PyCurrentLoopTestsc�8�tj||j���SrN)rr�rGr�s  rrLzPyCurrentLoopTests.new_tasks���}�T��	�2�2�2�2rN�r2r3r4rLrrrrrs#������3�3�3�3�3rrc��eZdZd�ZdS)�CCurrentLoopTestsc�L�ttd��||j���S)Nr�rO)r�rrGr�s  rrLzCCurrentLoopTests.new_tasks#��'�w�u�h�'�'��4�9�=�=�=�=rNrrrrrrs#������>�>�>�>�>rrc�4�eZdZd�Zejd���ZdS)�GenericTaskTestsc�t�|�ttjtj����dSr)ri�
issubclassr
rJrPr,s r�test_future_subclassz%GenericTaskTests.test_future_subclass#s(�����
�7�<���@�@�A�A�A�A�Arc���	ddl}ddl}ddl}	ddl}dS#t$r|�d��YdSwxYw#t$r|�d��YdSwxYw)Nrz_asyncio module is missingzC modules are not available)�
_functools�_json�_pickle�_asyncio�ImportErrorr��skipTest)r-r%r&r'r(s     r�test_asyncio_module_compiledz-GenericTaskTests.test_asyncio_module_compiled&s���
	8������L�L�L��N�N�N�
8���������
8�
8�
8��	�	�6�7�7�7�7�7�7�
8������	9�	9�	9��M�M�7�8�8�8�8�8�8�	9���s�;��8�8�A�AN)r2r3r4r#r	�cpython_onlyr+rrrr r !sE������B�B�B�
��8�8���8�8�8rr c�H��eZdZ�fd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
�xZS)	�GatherTestsBasec����t�����|���|_|���|_|�|jd���dS)NF)�cleanup)rVrWrX�one_loopr�r�r[s �rrWzGatherTestsBase.setUp;s[���
���
�
�����*�*�,�,��
��,�,�.�.������D�M�5��9�9�9�9�9rc�N�|jrtj|��|j�dSdSr)r�r�rrQs  r�	_run_loopzGatherTestsBase._run_loopAs=���k�	)��"�4�(�(�(��k�	)�	)�	)�	)�	)rc�����fd�td��D��\}}}�j��|||��i|��}tj��}|�|��|�d��|�d�����j����	|j
d����|�����|�d�����j��|�
|����	|���gd���dS)Nc�B��g|]}�j�����Sr�r1rZ�r�rPr-s  �rr�z2GatherTestsBase._check_success.<locals>.<listcomp>Fs'���C�C�C�Q�4�=�.�.�0�0�C�C�Crrrr�F)r�rr)r��_gather�wrap_futuresr��MockCallbackr�r�r3r1r^rr1r��assert_called_once_withr�)r-r�r�rr�r��cbs`      r�_check_successzGatherTestsBase._check_successEs7���C�C�C�C�%��(�(�C�C�C���1�a��d�l�D�-�-�a��A�6�6�A�&�A�A��
�
$�
&�
&�����b�!�!�!�	���Q����	���Q�������t�}�%�%�%������E�*�*�*���������$�$�$�	���Q�������t�}�%�%�%�
�"�"�3�'�'�'���������y�y�y�1�1�1�1�1rc�Z�|���|�d���dS)NFr�r=r,s r�test_successzGatherTestsBase.test_successTs1�����������e��4�4�4�4�4rc�2�|�d���dS)NTrr?r,s r�test_result_exception_successz-GatherTestsBase.test_result_exception_successXs�����d��3�3�3�3�3rc	����fd�td��D��\}}}}}�j��|||||���}tj��}|�|��t
��}|�d��|�|����	�j
����|�����|�
|����|���|��|�d��|���|�t#����|���dS)Nc�B��g|]}�j�����Srr6r7s  �rr�z6GatherTestsBase.test_one_exception.<locals>.<listcomp>\�'���I�I�I�1���4�4�6�6�I�I�Irrbrr)r�r8r9r�r:r�rr�rvr3r1rir�r;r�rorkr�)	r-r�rr�r��er�r<r%s	`        r�test_one_exceptionz"GatherTestsBase.test_one_exception[s?���I�I�I�I��a���I�I�I�
��1�a��A��d�l�D�-�-�a��A�q�!�<�<�=��
�
$�
&�
&�����b�!�!�!��!�!��	���Q����	����������t�}�%�%�%�������
�
�#�#�#�
�"�"�3�'�'�'��
�
�c�m�m�o�o�s�+�+�+�	���Q����	���
�
�
�	������'�'�'�	���
�
�
�
�
rc�D���fd�td��D��\}}}}�j��||||��ddi�}tj��}|�|��t
��}t��}|�d��|�	|��|�d����
�j����|�
����|�	|����
�j����|�
����|�|����|���dd||g��dS)Nc�B��g|]}�j�����Srr6r7s  �rr�z:GatherTestsBase.test_return_exceptions.<locals>.<listcomp>ns'���F�F�F��d�m�1�1�3�3�F�F�Fr�rTrr)r�r8r9r�r:r�rr�r�rvr3r1r1r�rir;r^r�)	r-r�rr�r�r�r<r%�exc2s	`        r�test_return_exceptionsz&GatherTestsBase.test_return_exceptionsmsr���F�F�F�F�U�1�X�X�F�F�F�
��1�a���d�l�D�-�-�a��A�q�9�9�3�-1�3�3��
�
$�
&�
&�����b�!�!�!��!�!���~�~��	���Q����	�������	���Q�������t�}�%�%�%���������$�$�$�	����������t�}�%�%�%�������
�
�#�#�#�
�"�"�3�'�'�'����������1�c�4�'8�9�9�9�9�9rc��d�d��}tdd|��\}}}|�|���d��td|dd���\}}}|�|���d��td|dd���\}}}|�|���d	��tdd|dd���\}}}|�|���d��tdd
dd|��\}}}|�|���d	��dS)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�ss���y�y�:�;�;��/�t�T�4�@�@���V�V���������(�3�3�3�.�t�T�BD�=?�A�A�A���V�V�	
��������(�3�3�3�.�t�T�BE�=?�A�A�A���V�V�	
��������'�2�2�2�.�t�T�4�BE�=?�A�A�A���V�V�	
��������(�3�3�3�/�t�T�5�/3�T�;�;���V�V���������'�2�2�2�2�2r)r2r3r4rWr3r=r@rBrGrLrZr�r�s@rr.r.9s��������:�:�:�:�:�)�)�)�
2�
2�
2�5�5�5�4�4�4����$:�:�:�&3�3�3�3�3�3�3rr.c�D�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
S)�FutureGatherTestsc��|Srr)r-rs  rr9zFutureGatherTests.wrap_futures�s���rc�$�tj|i|��Sr�r
r�)r-r$r�s   rr8zFutureGatherTests._gather�s���~�t�.�v�.�.�.rc�4�|�t��5}|�t��5t	j��ddd��n#1swxYwYddd��n#1swxYwY|�|jt��dSr)	r�r�rlr�r
r�r^r�r�)r-rrs  r�,test_constructor_empty_sequence_without_loopz>FutureGatherTests.test_constructor_empty_sequence_without_loop�s��
�
�
�0�
1�
1�	!�R��"�"�<�0�0�
!�
!��� � � �
!�
!�
!�
!�
!�
!�
!�
!�
!�
!�
!����
!�
!�
!�
!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�	
�����h�/�/�/�/�/s4�A-�A�
A-�A	�A-�A	�A-�-A1�4A1c��d�}|j�|����}|�|tj��|�|j|j��|�|j��|�|�	����|�
|���g��dS)Nc��,K�tj��Srr_rrrr�zRFutureGatherTests.test_constructor_empty_sequence_use_running_loop.<locals>.gather�s�����>�#�#�#r)r1rnr`r
rPr�r�r3rir�r^r�)r-r�r�s   r�0test_constructor_empty_sequence_use_running_loopzBFutureGatherTests.test_constructor_empty_sequence_use_running_loop�s���	$�	$�	$��m�.�.�v�v�x�x�8�8�����c�7�>�2�2�2��
�
�c�i���/�/�/����t�}�%�%�%�������
�
�#�#�#���������r�*�*�*�*�*rc��tj|j��|�tjd��|�t
��5}tj��}ddd��n#1swxYwY|�|jt��|�
|tj��|�|j
|j��|�|j��|�|�����|�|���g��dSr)r
r�r1r�r�r�r�r^r�r�r`rPr�r�r3rir�r�)r-rrr�s   r�/test_constructor_empty_sequence_use_global_loopzAFutureGatherTests.test_constructor_empty_sequence_use_global_loop�s:����t�}�-�-�-�����.��5�5�5�
�
�
�0�
1�
1�	#�R��.�"�"�C�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#������h�/�/�/����c�7�>�2�2�2��
�
�c�i���/�/�/����t�}�%�%�%�������
�
�#�#�#���������r�*�*�*�*�*s�A4�4A8�;A8c��|j���}|j���}|�t��5tj||��ddd��dS#1swxYwYdSr)r1rZr�rlr�r
r�)r-r�r�s   r�%test_constructor_heterogenous_futuresz7FutureGatherTests.test_constructor_heterogenous_futures�s����}�*�*�,�,����,�,�.�.��
�
�
�z�
*�
*�	'�	'��N�4��&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�	'�	's�
A0�0A4�7A4c����fd�td��D��}tj|�}��|j�j�����j����|�����tj|�}��|j�j�����j����|�����dS)Nc�B��g|]}�j�����Sr)r�rZr7s  �rr�zIFutureGatherTests.test_constructor_homogenous_futures.<locals>.<listcomp>�s'���F�F�F��D�O�1�1�3�3�F�F�Frr)	r�r
r�r�r�r�r3r1r�)r-�childrenr�s`  r�#test_constructor_homogenous_futuresz5FutureGatherTests.test_constructor_homogenous_futures�s����F�F�F�F�U�1�X�X�F�F�F���n�h�'���
�
�c�i���1�1�1����t��'�'�'���������$�$�$��n�h�'���
�
�c�i���1�1�1����t��'�'�'���������$�$�$�$�$rc�6���fd�td��D��\}}}}}tj|||||��}tj��}|�|��|�d��|������j	����
|�����|�|����
|�������|���tj��|�d��|���|�t'����|���dS)Nc�B��g|]}�j�����Srr6r7s  �rr�z;FutureGatherTests.test_one_cancellation.<locals>.<listcomp>�rErrbrr)r�r
r�r�r:r�r�rkr3r1rir�r;r1r<r`rormrvr�)r-r�rr�r�rFr�r<s`       r�test_one_cancellationz'FutureGatherTests.test_one_cancellation�sC���I�I�I�I��a���I�I�I�
��1�a��A��n�Q��1�a��+�+��
�
$�
&�
&�����b�!�!�!�	���Q����	���
�
�
����t�}�%�%�%�������
�
�#�#�#�
�"�"�3�'�'�'���������)�)�)����c�m�m�o�o�w�/E�F�F�F�	���Q����	���
�
�
�	������'�'�'�	���
�
�
�
�
rc	�����fd�td��D��\}}}}}}tj||||||d���}tj��}|�|��|�d��t��}	|�|	��|�	����
�j����|�
����|�d��|�	��t��}
|�|
���j�|��}��|dtj����|dtj��dx|d<|d<��|d|	ddd|
g��|�|��dS)	Nc�B��g|]}�j�����Srr6r7s  �rr�zLFutureGatherTests.test_result_exception_one_cancellation.<locals>.<listcomp>�s7���/�/�/� !�!�M�7�7�9�9�/�/�/rrTrrrr�rJ)r�r
r�r�r:r�r�rrvrkr3r1r1r�r�rnr`rmr^r;)r-r�rr�r�rFr�r�r<�zde�rter�s`           r�&test_result_exception_one_cancellationz8FutureGatherTests.test_result_exception_one_cancellation�s����/�/�/�/�%*�1�X�X�/�/�/���1�a��A�q��n�Q��1�a��A��F�F�F��
�
$�
&�
&�����b�!�!�!�	���Q�����!�!��	�������	���
�
�
����t�}�%�%�%���������$�$�$�	���Q����	���
�
�
��n�n��	��������m�.�.�s�3�3�����c�!�f�g�&<�=�=�=����c�!�f�g�&<�=�=�=����A���Q������q�#�t�Q��c�:�;�;�;�
�"�"�3�'�'�'�'�'rN)r2r3r4r9r8rardrfrhrlrortrrrr\r\�s����������/�/�/�0�0�0�+�+�+�+�+�+�'�'�'�	%�	%�	%����$(�(�(�(�(rr\c�D�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
S)�CoroutineGatherTestsc�X�g}|D]$}|fd�}|�|�����%|S)Nc��K�|�d{V��Srrr�s rrKz/CoroutineGatherTests.wrap_futures.<locals>.coros���� �y�y�y�y�y�y� r)r2)r-r�corosr�rKs     rr9z!CoroutineGatherTests.wrap_futuressM�����	!�	!�C�"�
!�
!�
!�
!��L�L����� � � � ��rc�V�����fd�}|j�|����S)Nc��*�K�tj�i���Srr_)r$r�s��rrKz*CoroutineGatherTests._gather.<locals>.coro
s������>�4�2�6�2�2�2r)r1rn)r-r$r�rKs `` rr8zCoroutineGatherTests._gather	s>����	3�	3�	3�	3�	3�	3��}�/�/�����7�7�7rc���d�}|��}|�|j��|��}|�|j��|�t��5}|�t
��5t
j||��ddd��n#1swxYwYddd��n#1swxYwY|�|j	t��dS)Nc��
K�dSr�rrrrrKz@CoroutineGatherTests.test_constructor_without_loop.<locals>.coror�r)r�r@r�r�rlr�r
r�r^r�r�)r-rK�gen1�gen2rrs     r�test_constructor_without_loopz2CoroutineGatherTests.test_constructor_without_loopsQ��	�	�	��t�v�v������
�#�#�#��t�v�v������
�#�#�#�
�
�
�0�
1�
1�	+�R��"�"�<�0�0�
+�
+���t�T�*�*�*�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�	
�����h�/�/�/�/�/s6�&B:�B#�B:�#B'	�'B:�*B'	�+B:�:B>�B>c����d�}|���|�����fd�}|j�|����}|�|j|j��|j�|��dS)Nc��
K�dSr�rrrrrKzDCoroutineGatherTests.test_constructor_use_running_loop.<locals>.coror�rc��2�K�tj����Srr_)r~rs��rr�zFCoroutineGatherTests.test_constructor_use_running_loop.<locals>.gathers������>�$��-�-�-r)r1rnr�r�)r-rKr�r�r~rs    @@r�!test_constructor_use_running_loopz6CoroutineGatherTests.test_constructor_use_running_loops�����	�	�	��t�v�v���t�v�v��	.�	.�	.�	.�	.�	.��m�.�.�v�v�x�x�8�8���
�
�c�i���/�/�/��
�(�(��-�-�-�-�-rc���d�}tj|j��|�tjd��|��}|��}|�t
��5}tj||��}ddd��n#1swxYwY|�|jt��|�
|j|j��|j�|��dS)Nc��
K�dSr�rrrrrKzCCoroutineGatherTests.test_constructor_use_global_loop.<locals>.coro'r�r)
r
r�r�r�r�r�r�r^r�r�r�r�rn)r-rKr~rrrr�s      r� test_constructor_use_global_loopz5CoroutineGatherTests.test_constructor_use_global_loop%s��	�	�	���t��/�/�/�����.��5�5�5��t�v�v���t�v�v��
�
�
�0�
1�
1�	-�R��.��t�,�,�C�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-������h�/�/�/��
�
�c�i���1�1�1���*�*�3�/�/�/�/�/s�+B
�
B�Bc���d�}|d��}|�|||d��|��}|�|j��|�|���gd���dS)Nc��
K�|Srrr�s rrKz<CoroutineGatherTests.test_duplicate_coroutines.<locals>.coro4r�rr��def)r�r�r�r�)r8r3r1r^r�)r-rKr�r�s    r�test_duplicate_coroutinesz.CoroutineGatherTests.test_duplicate_coroutines3s|��	�	�	��D��K�K���l�l�1�a���e���a�0�0�����t�}�%�%�%���������'C�'C�'C�D�D�D�D�Drc��������d�|j������fd�}tj|��|j����tj|��|j����d�����fd�}tj|��|j���}t	j|j��|�|�����|�tj	��5|j�
|��ddd��n#1swxYwY|�������|�������|�������|�������t	j|j��|�
�d��dS)Nrc��&�K���d{V���dz
�dSr�rr�s��rr�z?CoroutineGatherTests.test_cancellation_broadcast.<locals>.inner@r�rrOc��P�K�tj�������d{V���dz
�dSr�r_)r�r��gathererr�s����rrz?CoroutineGatherTests.test_cancellation_broadcast.<locals>.outerIs6������~�f�f�5�5�H��N�N�N�N�N�N�N��S�L�E�E�Er)r1rZr
r�r�rrirkrlrmrnr1r<r^)	r-r�rr�r�r�r�r�r�s	    @@@@@r�test_cancellation_broadcastz0CoroutineGatherTests.test_cancellation_broadcast;s�����������,�,�.�.��	�	�	�	�	�	�
�&�u�u�w�w�T�]�C�C�C���&�u�u�w�w�T�]�C�C�C����	�	�	�	�	�	�	�	�
�!�%�%�'�'��
�>�>�>����t�}�-�-�-�������
�
�#�#�#�
�
�
�w�5�
6�
6�	0�	0��M�,�,�Q�/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�������*�*�+�+�+�����(�(�*�*�+�+�+�����(�(�*�*�+�+�+�����(�(�*�*�+�+�+���t�}�-�-�-������"�"�"�"�"s�9D � D$�'D$c�����d��|j����|j�������fd�}tj|��|j���}t	j|j����d��t	j|j����d��t	j|j��|�|���t��dS)Nc��4K�|�d{V��td���)Nzshould not be ignoredr�r�s rr�z:CoroutineGatherTests.test_exception_marking.<locals>.inner^s&�����G�G�G�G�G�G�G��6�7�7�7rc��f�K�tj�����������d{V��dSrr_)r�rr�s���rrz:CoroutineGatherTests.test_exception_marking.<locals>.outeresA������.���q���5�5��8�8�4�4�4�4�4�4�4�4�4�4�4rrO)
r1rZr
r�r�rr�r`ror�)r-rr�r�rr�s   @@@r�test_exception_markingz+CoroutineGatherTests.test_exception_marking[s������	8�	8�	8�
�M�'�'�)�)���M�'�'�)�)��	5�	5�	5�	5�	5�	5�	5�
�!�%�%�'�'��
�>�>�>����t�}�-�-�-�	���T������t�}�-�-�-�	���T������t�}�-�-�-����a�k�k�m�m�\�:�:�:�:�:rc�|�tjd��5d�}|d��}|�t��5|�|i��ddd��n#1swxYwY|�|j��|jj���ddd��dS#1swxYwYdS)Nz8asyncio.base_events.BaseEventLoop.call_exception_handlerc��
K�|Srrr�s rrKz2CoroutineGatherTests.test_issue46672.<locals>.corots�����rr�)	rrrrlr�r8r3r1r��assert_not_called)r-rKr�s   r�test_issue46672z$CoroutineGatherTests.test_issue46672psS��
�Z�F�
�
�	E�	E�
�
�
���U���A��"�"�9�-�-�
$�
$����Q��#�#�#�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$����
$�
$�
$�
$��N�N�4�=�)�)�)��M�0�B�B�D�D�D�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E����	E�	E�	E�	E�	E�	Es4�)B1�A!�B1�!A%	�%B1�(A%	�);B1�1B5�8B5N)r2r3r4r9r8r�r�r�r�r�r�r�rrrrvrv�s����������8�8�8�

0�
0�
0�	.�	.�	.�0�0�0�E�E�E�#�#�#�@;�;�;�*E�E�E�E�Errvc�R��eZdZ	�fd�Zdd�Z		dd�Zd�Zd�Zd�Zd	�Z	d
�Z
�xZS)
�RunCoroutineThreadsafeTestsc���t�����tj��|_|�|j��dSrr
r[s �rrWz!RunCoroutineThreadsafeTests.setUp�rrFc��K�	tjd���d{V��|rtd���|rEtj|j�����tjd���d{V��||zS)NrA�Fail!r)r
r.r�r9rGrk)r-r�rr�rks     rr+zRunCoroutineThreadsafeTests.add�s�����0��m�D�!�!�!�!�!�!�!�!�!��	(��w�'�'�'��	#�� ���+�+�2�2�4�4�4��-��"�"�"�"�"�"�"�"�"��1�u�rNc��	|�dd||���}tj||j��}|r |j�|jd��	|�|��|���p|���SS#|���p|���wwxYw)Nrr�)r�rk)	r+r
�run_coroutine_threadsaferG�call_soon_threadsafer<r�r�rk)r-r�rkr?�advance_cororKr�s       r�targetz"RunCoroutineThreadsafeTests.target�s���2��x�x��1�4��x�7�7���1�$��	�B�B���	<�
�I�*�*�4�9�d�;�;�;�	-��=�=��)�)��K�K�M�M�,�V�]�]�_�_�_�_�,�,��F�K�K�M�M�,�V�]�]�_�_�_�_�,�,���s�B�,Cc��	|j�d|j��}|j�|��}|�|d��dS)Nr)rG�run_in_executorr�rnr^)r-r�r�s   r�test_run_coroutine_threadsafez9RunCoroutineThreadsafeTests.test_run_coroutine_threadsafe�sO��G���*�*�4���=�=����-�-�f�5�5�������#�#�#�#�#rc�"�	|j�d|jd��}|�t��5}|j�|��ddd��n#1swxYwY|�d|jj��dS)NTr�)	rGr�r�rlr�rnr4ror$)r-r��exc_contexts   r�,test_run_coroutine_threadsafe_with_exceptionzHRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_with_exception�s���	(���*�*�4���d�C�C��
�
�
�|�
,�
,�	1���I�(�(��0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1��
�
�g�{�4�9�:�:�:�:�:s�A$�$A(�+A(c���	�fd�}�j�d|��}��tj��5�j�|��ddd��n#1swxYwYt
j�j��tj�j��D])}��	|�
�����*dS)Nc�0����d���S)Nrr�r�r,s�rrUzXRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_with_timeout.<locals>.<lambda>�s���4�;�;�q�;�1�1�r)rGr�rlr
rIrnr�rr�rir�)r-rdr�rbs`   r�*test_run_coroutine_threadsafe_with_timeoutzFRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_with_timeout�s���	%�1�1�1�1����*�*�4��:�:��
�
�
�w�3�
4�
4�	1�	1��I�(�(��0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1���t�y�)�)�)��%�d�i�0�0�	)�	)�D��O�O�D�I�I�K�K�(�(�(�(�	)�	)s�A)�)A-�0A-c����	�fd�}�j�d|��}��tj��5�j�|��ddd��dS#1swxYwYdS)Nc�0����d���S)NTrCr�r,s�rrUzZRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_task_cancelled.<locals>.<lambda>�s���4�;�;�d�;�3�3�r)rGr�rlr
rmrn)r-rdr�s`  r�,test_run_coroutine_threadsafe_task_cancelledzHRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_task_cancelled�s����	'�3�3�3�3����*�*�4��:�:��
�
�
�w�5�
6�
6�	1�	1��I�(�(��0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�	1�	1s�A*�*A.�1A.c���	d�}�j�d�fd���}tj��}�j�|�����jj�j������j�|����t��5}�j�
|��ddd��n#1swxYwY��t|j
��d��|j\\}}}��|d|j��dS)Nc��t�r)�	NameError)rGrKs  r�task_factoryzfRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_task_factory_exception.<locals>.task_factory�s���Orc�0����d���S)NT)r�r�r,s�rrUzbRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_task_factory_exception.<locals>.<lambda>�s���$�+�+�4�+�8�8�rrro)rGr�r�r:r�r�rY�get_task_factoryrlr�rnr^r�call_args_listr'ro)r-r�r�rdr�rGr'r�s`       r�4test_run_coroutine_threadsafe_task_factory_exceptionzPRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_task_factory_exception�s����	5�	�	�	��i�'�'��8�8�8�8�:�:���*�,�,���	�'�'��1�1�1�	
����	�2��	�2�2�4�4�	6�	6�	6��	�"�"�<�0�0�0��
�
�y�
)�
)�	.�[��I�(�(��-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�	
����X�4�5�5�q�9�9�9�"*�"4����w�������-�{�/D�E�E�E�E�Es�<C#�#C'�*C')FF)FFNF)r2r3r4rWr+r�r�r�r�r�r�r�r�s@rr�r�s��������9�'�'�'�'�'�
����8<�!�-�-�-�-�"$�$�$�;�;�;�
)�
)�
)�1�1�1�F�F�F�F�F�F�Frr�c�.��eZdZ�fd�Z�fd�Zd�Z�xZS)�
SleepTestsc���t�����tj��|_|�|j��dSrr
r[s �rrWzSleepTests.setUp�rrc���|j���d|_t�����dSr�rGr@rV�tearDownr[s �rr�zSleepTests.tearDown��8����	��������	�
���������rc�����d��fd�����fd�}�j�|�������d��dS)Nrc����|z
�dSrr)rVr�s �r�
inc_resultz.SleepTests.test_sleep_zero.<locals>.inc_result�s����c�M�F�F�Frc����K��j��d�����d��tjdd����d{V��}���d���|��dS)Nrrr,r�)rGr\r^r
r.)rVr�r�r-s ���rrKz(SleepTests.test_sleep_zero.<locals>.coro�s�������I���
�A�.�.�.����V�Q�'�'�'��
�a��3�3�3�3�3�3�3�3�3�C����V�Q�'�'�'��J�s�O�O�O�O�Or�)rGrnr^)r-rKr�r�s` @@r�test_sleep_zerozSleepTests.test_sleep_zero�s��������	�	�	�	�	�	�	�	�	�	�	�	�	
�	�$�$�T�T�V�V�,�,�,������$�$�$�$�$r)r2r3r4rWr�r�r�r�s@rr�r��s`�������'�'�'�'�'�
�����
%�%�%�%�%�%�%rr�c�(��eZdZ�fd�Z�fd�Z�xZS)�CompatibilityTestsc���t�����tj��|_|�|j��dSrr
r[s �rrWzCompatibilityTests.setUp
rrc���|j���d|_t�����dSrr�r[s �rr�zCompatibilityTests.tearDown
r�r)r2r3r4rWr�r�r�s@rr�r��sQ�������'�'�'�'�'�
��������rr��__main__)F)>rx�
contextlibrF�	functoolsr{r�rTr�rG�textwrapr��unittestr�typesrr
rrr�test.test_asynciorr�r�r	�test.support.script_helperr
rrr r(r*r6rDr�r��
skipUnlessrj�TestCaser�r�r�r�r�r�r�r�r�r�r�rrrrr r.r\rvr�r�r�r2rrrr�<module>r�s��������������������	�	�	�	�	�	�	�	�
�
�
�
�	�	�	�	�
�
�
�
�����������������������������������������������1�1�1�1�1�1�������7�7�7�7�7�7�(�(�(�	�	�	�
?�
?�
?�
?�
(�
(�
(� 
�
�
�
�
�
�
�
���������x$�x$�x$�x$�x$�x$�x$�x$�vI7�7�7�t2�2�2�2�2�2�2�2�j���W�W�W�j�1�1�.��W�U�H�-�-�5�7�7�*�*�*�*�*�-��$�-�*�*�7�7�*�8���W�W�W�j�1�1�.��W�U�H�-�-�5�7�7��0�0�0�0�0�-��1D�0�0���7�7�0����W�W�U�H�-�-�5�7�7�������=�*�2E�����7�7�����W�W�W�j�1�1�5�7�7�������=�*�2E�����7�7�����W�W�U�H�-�-�5�7�7������=�*�*=���7�7�����W�W�W�j�1�1�5�7�7�0�0�0�0�0�=�*�*=�0�0�7�7�0������M�>�&�/����������M�:�3F������
���W�W�U�H�-�-�5�7�7�&�&�&�&�&��,�&�&�7�7�&�0m9�m9�m9�m9�m9�m9�m9�m9�`5�5�5�5�5�:�.�0J�5�5�5����W�W�U�$6�7�7�5�7�7�M�M�M�M�M�*�-�/I�M�M�7�7�M�@�@�@�@�@�@�@�@�:3�3�3�3�3�-�z�/B�3�3�3����W�W�U�H�-�-�5�7�7�>�>�>�>�>�,�j�.A�>�>�7�7�>�8�8�8�8�8�z�*�8�8�8�0c3�c3�c3�c3�c3�c3�c3�c3�L](�](�](�](�](���)<�](�](�](�@}E�}E�}E�}E�}E�?�J�,?�}E�}E�}E�@_F�_F�_F�_F�_F�*�"5�_F�_F�_F�D%�%�%�%�%��$�%�%�%�:������,�����z����H�M�O�O�O�O�O��r