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_futures.cpython-311.opt-1.pyc
�

��Vc�w����dZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddlZddlmZddl
mZddlmZd�Zd	�Zd
�Zd�ZGd�d
��ZGd�dej��ZGd�d��Zejeed��d��Gd�deej����Zejeed��d��Gd�deej����ZGd�deej��ZGd�d��Zejeed��d��Gd�deej����Z ejeed��d��Gd�deej����Z!Gd �d!eej��Z"Gd"�d#��Z#Gd$�d%e#ej��Z$ejeed��d��Gd&�d'e#ej����Z%e&d(krej'��dSdS))zTests for futures.py.�N)�mock)�GenericAlias)�futures)�utils)�supportc�.�tjd��dS�N)�asyncio�set_event_loop_policy���2D:\Python311\Lib\test\test_asyncio\test_futures.py�tearDownModulers���!�$�'�'�'�'�'r
c��|Sr	r��fs r�	_fakefuncrs���Hr
c��dSr	rrr
r�first_cbr����Dr
c��dSr	rrr
r�last_cbrrr
c�N�eZdZdZdZdZdZd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�ZdS)�
DuckFutureFNc�@�|���rdSd|_dS)NFT)�done�_DuckFuture__cancelled��selfs r�cancelzDuckFuture.cancel*s$���9�9�;�;�	��5�����tr
c��|jSr	)rrs r�	cancelledzDuckFuture.cancelled0s����r
c�4�|jp|jdup|jduSr	)r�_DuckFuture__result�_DuckFuture__exceptionrs rrzDuckFuture.done3s,��� �0��=��,�0��#�4�/�	1r
c�z�|�|�����|j�|j�|jSr	)�assertFalser"r%r$rs r�resultzDuckFuture.result8s<��������)�)�*�*�*���	#��"�"��}�r
c�^�|�|�����|jSr	)r'r"r%rs r�	exceptionzDuckFuture.exception>s)��������)�)�*�*�*���r
c��|�|�����|�|��||_dSr	)r'r�assertIsNotNoner$)rr(s  r�
set_resultzDuckFuture.set_resultBs=����������%�%�%����V�$�$�$���
�
�
r
c��|�|�����|�|��||_dSr	)r'rr,r%)rr*s  r�
set_exceptionzDuckFuture.set_exceptionGs@����������%�%�%����Y�'�'�'�$����r
c#�K�|���sd|_|V�|�|�����|���S�NT)r�_asyncio_future_blocking�
assertTruer(rs r�__iter__zDuckFuture.__iter__LsO�����y�y�{�{�	�,0�D�)��J�J�J�����	�	���$�$�$��{�{�}�}�r
)�__name__�
__module__�__qualname__r2rr$r%r r"rr(r*r-r/r4rr
rrr!s������� %���K��H��K���� � � �1�1�1�
��� � � ����
%�%�%�
����r
rc�*��eZdZ�fd�Zd�Zd�Z�xZS)�	DuckTestsc���t�����|���|_|�|jj��dSr	��super�setUp�
new_test_loop�loop�
addCleanup�close�r�	__class__s �rr=zDuckTests.setUpV�C���
���
�
�����&�&�(�(��	�����	��(�(�(�(�(r
c�v�t��}tj|��}|�||��dSr	)rr
�wrap_future�assertIs�rr�gs   r�test_wrap_futurezDuckTests.test_wrap_future[s5���L�L�����"�"���
�
�a������r
c�v�t��}tj|��}|�||��dSr	)rr
�
ensure_futurerGrHs   r�test_ensure_futurezDuckTests.test_ensure_future`s5���L�L���!�!�$�$���
�
�a������r
)r5r6r7r=rJrM�
__classcell__�rCs@rr9r9TsV�������)�)�)�)�)�
���
������r
r9c�z��eZdZd�Z�fd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zejd��d���Zejd��d���Zejd��d���Zejd��d���Zejd��d���Zejd��d���Zejd��d���Z d�Z!d�Z"d �Z#d!�Z$d"�Z%d#�Z&d$�Z'd%�Z(ejd��d&���Z)d'�Z*d(�Z+d)�Z,d*�Z-d+�Z.d,�Z/�xZ0S)-�BaseFutureTestsc��|j|i|��Sr	)�cls�r�args�kwargss   r�_new_futurezBaseFutureTests._new_futurehs���t�x��(��(�(�(r
c���t�����|���|_|�|jj��dSr	r;rBs �rr=zBaseFutureTests.setUpkrDr
c��|jt}|�|jtf��|�|t
��dSr	)rS�str�assertEqual�__args__�assertIsInstancer)r�futures  r�test_generic_aliasz"BaseFutureTests.test_generic_aliaspsC����#��������3�&�1�1�1����f�l�3�3�3�3�3r
c	�*�Gd�d��}|�tj|����|�tj|������|�tjd����|�tjt	j������|�|j���}|�tj|����|�tjt|������|�tjt	jt|��������|�	��dS)Nc��eZdZdZd�ZdS)�/BaseFutureTests.test_isfuture.<locals>.MyFutureNc��d|_dS�NF)r2rs r�__init__z8BaseFutureTests.test_isfuture.<locals>.MyFuture.__init__ys��05��-�-�-r
)r5r6r7r2rerr
r�MyFuturerbvs)������'+�$�
6�
6�
6�
6�
6r
rf��r?)
r'r
�isfuturer3r�MockrWr?�typer )rrfrs   r�
test_isfuturezBaseFutureTests.test_isfutureusN��	6�	6�	6�	6�	6�	6�	6�	6�	
����)�(�3�3�4�4�4�����(�����4�4�5�5�5�����)�!�,�,�-�-�-�	
����)�$�)�+�+�6�6�7�7�7����$�)��,�,������(��+�+�,�,�,�����)�$�q�'�'�2�2�3�3�3�	
����(���4��7�7�);�);�<�<�=�=�=�	���
�
�
�
�
r
c�N�|�|j���}|�|�����|�|�����|���|�|�����dS�Nrh)rWr?r'r"rr r3�rrs  r�test_initial_statez"BaseFutureTests.test_initial_state�s�����$�)��,�,����������'�'�'���������"�"�"�	���
�
�
�������
�
�&�&�&�&�&r
c�8�|�t��5}|�td��5|���ddd��n#1swxYwYddd��n#1swxYwY|�|jt��dS)NzThere is no current event loop)�assertWarns�DeprecationWarning�assertRaisesRegex�RuntimeErrorrWr[�filename�__file__)r�cms  r�test_constructor_without_loopz-BaseFutureTests.test_constructor_without_loop�s��
�
�
�0�
1�
1�	#�R��'�'��6V�W�W�
#�
#�� � �"�"�"�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#����
#�
#�
#�
#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�	
�����h�/�/�/�/�/s4�A/�A�A/�A	�A/�A	� A/�/A3�6A3c�����fd�}�j�|����}��|j�j����|����j��dS)Nc��0�K�����Sr	)rWrs�r�testz?BaseFutureTests.test_constructor_use_running_loop.<locals>.test�s������#�#�%�%�%r
)r?�run_until_completerG�_loop�get_loop)rr|rs`  r�!test_constructor_use_running_loopz1BaseFutureTests.test_constructor_use_running_loop�ss���	&�	&�	&�	&�	&��I�(�(�����0�0���
�
�a�g�t�y�)�)�)��
�
�a�j�j�l�l�D�I�.�.�.�.�.r
c���tj|j��|�tjd��|�t
��5}|���}ddd��n#1swxYwY|�|jt��|�
|j|j��|�
|���|j��dSr	)
r
�set_event_loopr?r@rrrsrWr[rvrwrGr~r)rrxrs   r� test_constructor_use_global_loopz0BaseFutureTests.test_constructor_use_global_loop�s�����t�y�)�)�)�����.��5�5�5�
�
�
�0�
1�
1�	#�R�� � �"�"�A�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#������h�/�/�/��
�
�a�g�t�y�)�)�)��
�
�a�j�j�l�l�D�I�.�.�.�.�.s�A5�5A9�<A9c�H�|�t|jd��dS)N�*)�assertRaises�	TypeErrorrWrs r�test_constructor_positionalz+BaseFutureTests.test_constructor_positional�s#�����)�T�%5�r�:�:�:�:�:r
c�p�|j�|j|j���}|�tj|j��|j�|j|j���}|�tj|j��|j�|j|j���}|�ttf��5|�
d��ddd��n#1swxYwY|j�|j|j���}|�ttf��5|�t��ddd��n#1swxYwY|j�|j|j���}|�ttf��5|�
��ddd��n#1swxYwY|j�|j|j���}|�ttf��5|�d���ddd��n#1swxYwY|j�|j|j���}|�ttf��5|�d���ddd��n#1swxYwY|j�|j|j���}	t!|��n#ttf$rYnwxYw|j�|j|j���}	|���n#t$rYnwxYw|j�|j|j���}	t%|��n#t$rYnwxYw|j�|j|j���}|�|�����|�|�����dS)Nrhc��dSr	rrs r�<lambda>z4BaseFutureTests.test_uninitialized.<locals>.<lambda>�s��D�r
c��dSr	rrs rr�z4BaseFutureTests.test_uninitialized.<locals>.<lambda>�s��t�r
)rS�__new__r?r�r
�InvalidStateErrorr(r*ru�AttributeErrorr-r/�	Exceptionr �add_done_callback�remove_done_callback�repr�	__await__�iterr'r"r�r�futs  r�test_uninitializedz"BaseFutureTests.test_uninitialized�s����h���t�x�d�i��8�8�����'�3�S�Z�@�@�@��h���t�x�d�i��8�8�����'�3�S�]�C�C�C��h���t�x�d�i��8�8��
�
�
��n�=�
>�
>�	!�	!��N�N�4� � � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!��h���t�x�d�i��8�8��
�
�
��n�=�
>�
>�	)�	)����i�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)��h���t�x�d�i��8�8��
�
�
��n�=�
>�
>�	�	��J�J�L�L�L�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��h���t�x�d�i��8�8��
�
�
��n�=�
>�
>�	2�	2��!�!�.�.�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2��h���t�x�d�i��8�8��
�
�
��n�=�
>�
>�	5�	5��$�$�^�^�4�4�4�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5����	5�	5�	5�	5��h���t�x�d�i��8�8��	���I�I�I�I���n�-�	�	�	��D�	�����h���t�x�d�i��8�8��	��M�M�O�O�O�O���	�	�	��D�	�����h���t�x�d�i��8�8��	���I�I�I�I���	�	�	��D�	�����h���t�x�d�i��8�8����������)�)�)���������$�$�$�$�$s��D�D�D�E9�9E=�E=�G,�,G0�3G0�>I!�!I%�(I%�3K�K�K�L�L,�+L,�M+�+
M8�7M8�"N2�2
N?�>N?c��|�|j���}|�t|d����|�|jd��|�d��|�tj	��5|j�
|��ddd��n#1swxYwY|�|jd��dS)Nrh�_cancel_message�
my message)rWr?r3�hasattrr[r�r r�r
�CancelledErrorr}ros  r�!test_future_cancel_message_getterz1BaseFutureTests.test_future_cancel_message_getter�s�����$�)��,�,�������#4�5�5�6�6�6�����*�D�1�1�1�	�������
�
�
�w�5�
6�
6�	,�	,��I�(�(��+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�����*�L�9�9�9�9�9s�B5�5B9�<B9c��|�|j���}|�d��d|_|�|jd��|�tj��5|j�|��ddd��n#1swxYwY|�|jd��dS)Nrhr�zmy new message)	rWr?r r�r[r�r
r�r}ros  r�!test_future_cancel_message_setterz1BaseFutureTests.test_future_cancel_message_setter�s������$�)��,�,��	�������,�������*�,<�=�=�=��
�
�w�5�
6�
6�	,�	,��I�(�(��+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�����*�,<�=�=�=�=�=s�2B�B� Bc��|�|j���}|�|�����|�|�����|�|�����|�tj|j	��|�tj|j
��|�tj|jd��|�tj|j
d��|�|�����dSrn)rWr?r3r r"rr�r
r�r(r*r�r-r/r'ros  r�test_cancelzBaseFutureTests.test_cancel�s������$�)��,�,��������
�
�#�#�#�������
�
�&�&�&���������!�!�!����'�0�!�(�;�;�;����'�0�!�+�>�>�>����'�3�Q�\�4�H�H�H����'�3�Q�_�d�K�K�K���������$�$�$�$�$r
c���|�|j���}|�tj|j��|�d��|�|�����|�	|�
����|�|���d��|�|���d��|�tj|jd��|�tj|j
d��|�|�����dS�Nrhr�)rWr?r�r
r�r(r-r'r"r3rr[r*r/r ros  r�test_resultzBaseFutureTests.test_results�����$�)��,�,�����'�3�Q�X�>�>�>�	���R������������'�'�'���������!�!�!���������R�(�(�(����������-�-�-����'�3�Q�\�4�H�H�H����'�3�Q�_�d�K�K�K���������$�$�$�$�$r
c�,�t��}|�|j���}|�tj|j��|�td|j	t��|�	|��|�|�����|�
|�����|�t|j��|�|���|��|�tj|jd��|�tj|j	d��|�|�����dS)Nrhz!StopIteration .* cannot be raised)rurWr?r�r
r�r*rtr�r/�
StopIterationr'r"r3rr(r[r-r )r�excrs   r�test_exceptionzBaseFutureTests.test_exceptions@���n�n�����$�)��,�,�����'�3�Q�[�A�A�A�	
���y�*M� ��
�	?�	?�	?�	
���������������'�'�'���������!�!�!����,���1�1�1����������,�,�,����'�3�Q�\�4�H�H�H����'�3�Q�_�d�K�K�K���������$�$�$�$�$r
c���|�|j���}|�t��|�|���t��dSrn)rWr?r/rur]r*ros  r�test_exception_classz$BaseFutureTests.test_exception_class!sP�����$�)��,�,��	����%�%�%����a�k�k�m�m�\�:�:�:�:�:r
c���|�|j�����fd�}|��}|�t|��d��|�t|�������d��|�t|��d��|�t|��d��dS)Nrhc3�L�K�dV��Ed{V��}d|fV��Ed{V��}d|fV�dS)N�A�B�Cr)�x�yrs  �r�fixturez6BaseFutureTests.test_yield_from_twice.<locals>.fixture)sP������I�I�I��������A��q�&�L�L�L��������A��q�&�L�L�L�L�Lr
r�r�)r�r�)r�r�)rWr?r[�nextr-)rr�rIrs   @r�test_yield_from_twicez%BaseFutureTests.test_yield_from_twice&s�������$�)��,�,��	�	�	�	�	�
�G�I�I������a���#�&�&�&�����a���!�$�$�$�	���R��������a���)�,�,�,�����a���)�,�,�,�,�,r
c
�	�|j�d��|�|j���}|jd}|�t|��d|jj�d|d�d|d�d	���|���|j�d
��|�|j���}|�t|��d|jj�d���|���|�|j���}|���|�t|��d|jj�d���|�|j���}|�	d
��|�t|��d|jj�d���|�|�
��d
��t��}|�|j���}|�|��|�t|��d|jj�d���|�
|���|��d�}|�|j���}	|	�t ��|t ��}
|�t|	��d|jjzd|
zz��|	���|�t|	��d|jj�d���|�|j���}|�t$��|�t&��|t$��}|t&��}
|�t|��d|jjzd|�d|
�d�z��|�|j���}|�t$��t)d��D]}|�t ���|�t&��|�d|
��}|�t|��d|jjzd|zz��|���|�t|��d|jj�d���dS)NTrh����<z pending created at r�:rg�>Fz	 pending>z cancelled>�z finished result=4>z# finished exception=RuntimeError()>c�v�tj|��\}}|j�d|�d|��}tj|��S)Nz() at r�)�
test_utils�get_function_sourcer7�re�escape)�funcrv�lineno�texts    r�	func_reprz3BaseFutureTests.test_future_repr.<locals>.func_reprXs@��)�=�d�C�C��H�f�&*�&7�&7�&7����6�6�J�D��9�T�?�?�"r
z pending cb=\[%s\]>z pending cb=\[z, z\]>�z, <8 more>, )r?�	set_debugrW�_source_tracebackr[r�rSr5r r-r(rur/rGr*r�r�assertRegexrr�range)r�f_pending_debug�frame�	f_pending�f_cancelled�f_resultr��f_exceptionr��f_one_callbacks�	fake_repr�f_two_callbacks�
first_repr�	last_repr�f_many_callbacks�i�cb_regexs                 r�test_future_reprz BaseFutureTests.test_future_repr8s	���	���D�!�!�!��*�*��	�*�:�:���1�"�5�������!�!�M���!�M�M�u�Q�x�M�M�%��(�M�M�M�	O�	O�	O�	��� � � ��	���E�"�"�"��$�$�$�)�$�4�4�	�����i���*J�d�h�.?�*J�*J�*J�K�K�K��������&�&�D�I�&�6�6������������k�*�*�,N���0A�,N�,N�,N�O�O�O��#�#���#�3�3�����A���������N�N�F��� 1�F�F�F�	H�	H�	H�������*�*�A�.�.�.��n�n���&�&�D�I�&�6�6���!�!�#�&�&�&��������F���!�F�F�F�	H�	H�	H�	
�
�
�k�+�+�-�-�s�3�3�3�	#�	#�	#�
�*�*��	�*�:�:���)�)�)�4�4�4��I�i�(�(�	������!�!��4�8�$�$�'=�	�'I�I�	K�	K�	K�	��� � � �����o�.�.�;�T�X�.�;�;�;�	=�	=�	=��*�*��	�*�:�:���)�)�(�3�3�3��)�)�'�2�2�2��Y�x�(�(�
��I�g�&�&�	�����o�.�.���� 1�1�1�&�J�J�	�	�	�53�3�	4�	4�	4� �+�+���+�;�;���*�*�8�4�4�4��q���	:�	:�A��.�.�y�9�9�9�9��*�*�7�3�3�3�*4�*�*�i�i�@������!�"�"��4�8�$�$�'=��'H�H�	J�	J�	J�	���!�!�!�����.�/�/�;�T�X�.�;�;�;�	=�	=�	=�	=�	=r
c��ddlm}|�|j���}|�d��|�|j���}|||��|�|�����|�|���d��|�|j���}|�	t����|�|j���}|||��|�|�����|�t|j��|�|j���}|���|�|j���}|||��|�|�
����dS)Nr)�_copy_future_staterh�
)�asyncio.futuresr�rWr?r-r3rr[r(r/rur�r r")rr�r�newfr��newf_exceptionr��newf_cancelleds        r�test_copy_statezBaseFutureTests.test_copy_state}s���6�6�6�6�6�6����$�)��,�,��	���R�������T�Y��/�/����1�d�#�#�#�����	�	���$�$�$����������+�+�+��&�&�D�I�&�6�6���!�!�,�.�.�1�1�1��)�)�t�y�)�9�9����;��7�7�7�����+�+�-�-�.�.�.����,��(=�>�>�>��&�&�D�I�&�6�6���������)�)�t�y�)�9�9����;��7�7�7�����0�0�2�2�3�3�3�3�3r
c����|�|j�����fd���fd�}|�td��5|��ddd��n#1swxYwY����dS)Nrhc3��K��Ed{V��dSr	r�r�s�r�coroz'BaseFutureTests.test_iter.<locals>.coro�s������N�N�N�N�N�N�N�N�Nr
c�"�����\}}dSr	r)�arg1�arg2r�s  �rr|z'BaseFutureTests.test_iter.<locals>.test�s�������J�D�$�$�$r
zawait wasn't used)rWr?rtrur )rr|r�r�s  @@r�	test_iterzBaseFutureTests.test_iter�s��������D�I��.�.��	�	�	�	�	�	 �	 �	 �	 �	 ��
#�
#�L�2E�
F�
F�	�	��D�F�F�F�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
�
�����s�A�A�!Ac��|�|j���}|�td��5d|_ddd��dS#1swxYwYdS)Nrhzcan only be set to FalseT)rWr?rt�
ValueError�_log_tracebackr�s  r�test_log_tracebackz"BaseFutureTests.test_log_traceback�s������D�I��.�.��
�
#�
#�J�0J�
K�
K�	&�	&�!%�C��	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�	&�	&s�A�A�Azasyncio.base_events.loggerc�|�|�|j���}~|�|jj��dSrn)rWr?r'�error�called�r�m_logr�s   r�test_tb_logger_abandonedz(BaseFutureTests.test_tb_logger_abandoned�s<�����D�I��.�.��������+�,�,�,�,�,r
c���|�|j���}|�t����|���~|�|jj��dSrn)rWr?r/r�r r'r�r�r�s   r�&test_tb_logger_not_called_after_cancelz6BaseFutureTests.test_tb_logger_not_called_after_cancel�sa�����D�I��.�.�����)�+�+�&�&�&��
�
����������+�,�,�,�,�,r
c��|�|j���}|�d��~|�|jj��dSr�)rWr?r-r'r�r�r�s   r�!test_tb_logger_result_unretrievedz1BaseFutureTests.test_tb_logger_result_unretrieved�sN�����D�I��.�.�����r����������+�,�,�,�,�,r
c���|�|j���}|�d��|���~|�|jj��dSr�)rWr?r-r(r'r�r�r�s   r�test_tb_logger_result_retrievedz/BaseFutureTests.test_tb_logger_result_retrieved�s[�����D�I��.�.�����r�����
�
����������+�,�,�,�,�,r
c��|�|j���}|�td����~t	j|j��t
j��|�|j	j
��dS�Nrh�boom)rWr?r/rur��run_brieflyr�
gc_collectr3r�r�r�s   r�$test_tb_logger_exception_unretrievedz4BaseFutureTests.test_tb_logger_exception_unretrieved�sx�����D�I��.�.�����,�v�.�.�/�/�/����t�y�)�)�)�����������*�+�+�+�+�+r
c���|�|j���}|�td����|���~|�|jj��dSr�)rWr?r/rur*r'r�r�r�s   r�"test_tb_logger_exception_retrievedz2BaseFutureTests.test_tb_logger_exception_retrieved�se�����D�I��.�.�����,�v�.�.�/�/�/��
�
����������+�,�,�,�,�,r
c��|�|j���}|�td����|�t|j��~|�|jj��dSr�)	rWr?r/rur�r(r'r�r�r�s   r�)test_tb_logger_exception_result_retrievedz9BaseFutureTests.test_tb_logger_exception_result_retrieved�sp�����D�I��.�.�����,�v�.�.�/�/�/����,��
�3�3�3�������+�,�,�,�,�,r
c���d�}tj�d��}|�|d��}t	j||j���}|j�|��\}}|�t	j	|����|�
|d��|�|tj
����|�d���dS)Nc�,�|tj��fSr	��	threading�	get_ident��args r�runz-BaseFutureTests.test_wrap_future.<locals>.run������,�.�.�/�/r
rg�oirhT��wait)�
concurrentr�ThreadPoolExecutor�submitr
rFr?r}r3rir[�assertNotEqualrr�shutdown)rr
�ex�f1�f2�res�idents       rrJz BaseFutureTests.test_wrap_future�s���	0�	0�	0�
�
�
2�
2�1�
5�
5��
�Y�Y�s�D�
!�
!��
�
 ��$�)�
4�
4�
4���Y�1�1�"�5�5�
��U�����(��,�,�-�-�-�����d�#�#�#����E�9�#6�#8�#8�9�9�9�
���������r
c��|�|j���}tj|��}|�||��dSrn)rWr?r
rFrG�rrrs   r�test_wrap_future_futurez'BaseFutureTests.test_wrap_future_future�sD��
�
�
�4�9�
�
-�
-��
�
 ��
$�
$���
�
�b�"�����r
c���d�}tj�d��}|�|d��}|�t
��5}|�t��5tj	|��ddd��n#1swxYwYddd��n#1swxYwY|�
|jt��|�
d���dS)Nc�,�|tj��fSr	rrs rr
z:BaseFutureTests.test_wrap_future_without_loop.<locals>.run�rr
rgrTr
)rrrrrrrsr�rur
rFr[rvrwr)rr
rrrxs     r�test_wrap_future_without_loopz-BaseFutureTests.test_wrap_future_without_loop�sO��	0�	0�	0�
�
�
2�
2�1�
5�
5��
�Y�Y�s�D�
!�
!��
�
�
�0�
1�
1�	(�R��"�"�<�0�0�
(�
(��#�B�'�'�'�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(����
(�
(�
(�
(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	
�����h�/�/�/�
���������s6�B&�.B�B&�B	�B&�B	�B&�&B*�-B*c�2��d�}tj�d��}|�|d����fd�}|j�|����}|�|j|j��|�d���dS)Nc�,�|tj��fSr	rrs rr
z>BaseFutureTests.test_wrap_future_use_running_loop.<locals>.run�rr
rgrc��0�K�tj���Sr	)r
rF)rs�rr|z?BaseFutureTests.test_wrap_future_use_running_loop.<locals>.tests������&�r�*�*�*r
Tr
)	rrrrr?r}rGr~r)rr
rr|rrs     @r�!test_wrap_future_use_running_loopz1BaseFutureTests.test_wrap_future_use_running_loop�s����	0�	0�	0�
�
�
2�
2�1�
5�
5��
�Y�Y�s�D�
!�
!��	+�	+�	+�	+�	+�
�Y�
)�
)�$�$�&�&�
1�
1���
�
�d�i���*�*�*�
���������r
c� �tj|j��|�tjd��d�}tj�d��}|�|d��}|�t��5}tj
|��}ddd��n#1swxYwY|�|jt��|�|j|j��|�d���dS)Nc�,�|tj��fSr	rrs rr
z=BaseFutureTests.test_wrap_future_use_global_loop.<locals>.runrr
rgrTr
)r
r�r?r@rrrrrrrsrFr[rvrwrGr~r)rr
rrrxrs      r� test_wrap_future_use_global_loopz0BaseFutureTests.test_wrap_future_use_global_loops%����t�y�)�)�)�����.��5�5�5�	0�	0�	0�
�
�
2�
2�1�
5�
5��
�Y�Y�s�D�
!�
!��
�
�
�0�
1�
1�	)�R��$�R�(�(�B�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)������h�/�/�/��
�
�d�i���*�*�*�
���������s�B-�-B1�4B1c�n�tj���}tj||j���}|���tj|j��|�	|�
����|�	|�
����dSrn)rr�Futurer
rFr?r r�r�r3r"rs   r�test_wrap_future_cancelz'BaseFutureTests.test_wrap_future_cancels���
�
�
&�
&�
(�
(��
�
 ��$�)�
4�
4�
4��
�	�	������t�y�)�)�)���������'�'�'���������'�'�'�'�'r
c���tj���}tj||j���}|�d��|���tj	|j��|�
|�����|�|�
��d��|�|�����dSr�)rrr'r
rFr?r-r r�r�r'r"r[r(r3rs   r�test_wrap_future_cancel2z(BaseFutureTests.test_wrap_future_cancel2s���
�
�
&�
&�
(�
(��
�
 ��$�)�
4�
4�
4��
�
�
�b����
�	�	������t�y�)�)�)���������(�(�(���������b�)�)�)���������'�'�'�'�'r
c�H�|j�d��|�|j���}tj��jdz
}|�|jt��|�	|jddd�t|df��dS)NTrhrg�����test_future_source_traceback)r?r�rW�sys�	_getframe�f_linenor]r��listr[rw)rr^r�s   rr.z,BaseFutureTests.test_future_source_traceback's����	���D�!�!�!��!�!�t�y�!�1�1������)�A�-�����f�6��=�=�=�����1�"�5�b�q�b�9�"� �8�:�	;�	;�	;�	;�	;r
c�@�|j�|��d�}|��}|�|j���}|�|��d}t	j|j��t
j��d|jj	�d�}t|��||jf}|j�
tj|���|jjdd}|�|t%j|t$j����dS)Nc�R�	t���#t$r}|cYd}~Sd}~wwxYwr	)�MemoryError�
BaseException)r�s r�memory_errorzLBaseFutureTests.check_future_exception_never_retrieved.<locals>.memory_error6s?��
�!�m�m�#�� �
�
�
��
�
�
�
�
�
�����
���s��
&�!�&�&rh�^z exception was never retrieved
)�exc_infor)r?r�rWr/r�r�rr�rSr5rk�
__traceback__r��assert_called_once_withr�ANY�	call_argsr�r��compile�DOTALL)	r�debugr�r7r�r^�regexr9�messages	         r�&check_future_exception_never_retrievedz6BaseFutureTests.check_future_exception_never_retrieved2s���	���E�"�"�"�	�	�	�
�l�n�n���!�!�t�y�!�1�1�����S�!�!�!�����t�y�)�)�)������G�D�H�%�G�G�G����I�I�s�C�$5�6��
��+�+�D�H�x�+�H�H�H��+�'��*�1�-������"�*�U�B�I�">�">�?�?�?�?�?r
c�0�|�d��dSrd�rCrs r�%test_future_exception_never_retrievedz5BaseFutureTests.test_future_exception_never_retrievedJs���3�3�E�:�:�:�:�:r
c�0�|�d��dSr1rErs r�+test_future_exception_never_retrieved_debugz;BaseFutureTests.test_future_exception_never_retrieved_debugMs���3�3�D�9�9�9�9�9r
c���|�|j���}|���tj|d��|�|�����dS)Nrh�)rWr?r r�_set_result_unless_cancelledr3r"r�s  r� test_set_result_unless_cancelledz0BaseFutureTests.test_set_result_unless_cancelledPsZ�����D�I��.�.���
�
�����,�S�!�4�4�4�����
�
���(�(�(�(�(r
c�^�|�|j���}|�d��|���}d}	|�d��|�d��n$#t$r}|jd}Yd}~nd}~wwxYw|�|d��dS)Nrh)rgrJzStopIteration was expectedr)	rWr?r-r4�send�failr�rUr[)rr��fir(rs     r�test_future_stop_iteration_argsz/BaseFutureTests.test_future_stop_iteration_argsVs������D�I��.�.�����v����
�\�\�^�^����	4��G�G�D�M�M�M�
�I�I�2�3�3�3�3���	 �	 �	 ��W�Q�Z�F�F�F�F�F�F�����	 ����	
�����(�(�(�(�(s�A3�3
B�=
B�Bc��|�|j���}t|��}|�t|jtt
d��d��|�t|jt
d��t
d����|�t|jt��dS)Nrh�elephant� )rWr?r�r�r��throwr�r2)rr�rPs   r�test_future_iter_throwz&BaseFutureTests.test_future_iter_throwcs������D�I��.�.��
�#�Y�Y�����)�R�X�#�Y�z�%:�%:�B�	@�	@�	@����)�R�X�#�J�/�/��:�1F�1F�	H�	H�	H����)�R�X�t�4�4�4�4�4r
c��Gd�d��}td��D]:}|�|j���}|�|�����;dS)Nc��eZdZd�ZdS)�5BaseFutureTests.test_future_del_collect.<locals>.Evilc�,�tj��dSr	)�gc�collectrs r�__del__z=BaseFutureTests.test_future_del_collect.<locals>.Evil.__del__ns���
�����r
N)r5r6r7r]rr
r�EvilrYms#������
�
�
�
�
r
r^�drh)r�rWr?r-)rr^r�r�s    r�test_future_del_collectz'BaseFutureTests.test_future_del_collectls~��	�	�	�	�	�	�	�	��s���	#�	#�A��"�"��	�"�2�2�C��N�N�4�4�6�6�"�"�"�"�	#�	#r
)1r5r6r7rWr=r_rlrpryr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�patchr�r�r�r�r�rrrJrrr"r%r(r*r.rCrFrHrLrQrVr`rNrOs@rrQrQfs��������)�)�)�)�)�)�)�)�
4�4�4�
���.'�'�'�0�0�0�/�/�/�/�/�/�;�;�;�2%�2%�2%�h:�:�:�	>�	>�	>�	%�	%�	%�%�%�%�%�%�%�$;�;�;�
-�-�-�$C=�C=�C=�J4�4�4�4���&�&�&�
�T�Z�,�-�-�-�-�.�-�-�
�T�Z�,�-�-�-�-�.�-�-��T�Z�,�-�-�-�-�.�-�-��T�Z�,�-�-�-�-�.�-�-��T�Z�,�-�-�,�,�.�-�,��T�Z�,�-�-�-�-�.�-�-��T�Z�,�-�-�-�-�.�-�-�������
	�	�	�	�	�	����(�(�(�(�(�(�	;�	;�	;��T�Z�,�-�-�@�@�.�-�@�.;�;�;�:�:�:�)�)�)�)�)�)�5�5�5�#�#�#�#�#�#�#r
rQ�_CFuturezrequires the C _asyncio modulec�@�eZdZ	ejZn
#e$rdZYnwxYwd�ZdS)�CFutureTestsNc��|�|j���}|�t��5|`ddd��n#1swxYwY|�t��5|`ddd��dS#1swxYwYdSrn)rWr?r�r�r2r�r�s  r�test_future_del_segfaultz%CFutureTests.test_future_del_segfault~s�����D�I��.�.��
�
�
�~�
.�
.�	-�	-��,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�
�
�
�~�
.�
.�	#�	#��"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�	#�	#s#�A�A	�A	�*A:�:A>�A>)r5r6r7rrbrSr�rfrr
rrdrdvsV������������������������#�#�#�#�#s���rdc�V�eZdZ	Gd�dej��ZeZdS#e$rdZYdSwxYw)�CSubFutureTestsc��eZdZdS)�CSubFutureTests.CSubFutureN�r5r6r7rr
r�
CSubFuturerj���������Dr
rlN)r5r6r7rrbrlrSr�rr
rrhrh�sm�������	�	�	�	�	��)�	�	�	������������������s��(�(rhc��eZdZejZdS)�
PyFutureTestsN)r5r6r7r�	_PyFuturerSrr
rroro�s������
�
�C�C�Cr
roc�f��eZdZ�fd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Z�xZS)�BaseFutureDoneCallbackTestsc�z��t�����|���|_dSr	)r<r=r>r?rBs �rr=z!BaseFutureDoneCallbackTests.setUp�s+���
���
�
�����&�&�(�(��	�	�	r
c�8�tj|j��dSr	)r�r�r?rs rr�z'BaseFutureDoneCallbackTests.run_briefly�s����t�y�)�)�)�)�)r
c������fd�}|S)Nc�2�������dSr	)�append)r^�bag�things ��r�bag_appenderz@BaseFutureDoneCallbackTests._make_callback.<locals>.bag_appender�s����J�J�u�����r
r)rrxryrzs `` r�_make_callbackz*BaseFutureDoneCallbackTests._make_callback�s(����	�	�	�	�	�	��r
c��t�r	��NotImplementedErrorrs rrWz'BaseFutureDoneCallbackTests._new_future����!�!r
c��g}|���}|�|d��}|�|d��}|�|d��}|�|��|�|��|�|��|�|��|�|��|�|g��|�d��|���|�|ddg��|�|���d��dS�Nr��r_�foo�rWr{r�r�r[r-r�r(�rrxr�cb1�cb2�cb3s      r�$test_callbacks_remove_first_callbackz@BaseFutureDoneCallbackTests.test_callbacks_remove_first_callback�s3�����������!�!�#�r�*�*���!�!�#�r�*�*���!�!�#�s�+�+��	���C� � � �	���C� � � �	���C� � � �	���s�#�#�#�	���s�#�#�#�����b�!�!�!�	���U��������������r�3�i�(�(�(���������U�+�+�+�+�+r
c��g}|���}|�|d��}|�|d��}|�|d��}|�|��|�|��|�|��|�|��|�|��|�|��|�|g��|�d��|���|�|dg��|�|���d��dSr�r�r�s      r�/test_callbacks_remove_first_and_second_callbackzKBaseFutureDoneCallbackTests.test_callbacks_remove_first_and_second_callback�sE�����������!�!�#�r�*�*���!�!�#�r�*�*���!�!�#�s�+�+��	���C� � � �	���C� � � �	���C� � � �	���s�#�#�#�	���s�#�#�#�	���s�#�#�#�����b�!�!�!�	���U��������������s�e�$�$�$���������U�+�+�+�+�+r
c��g}|���}|�|d��}|�|d��}|�|d��}|�|��|�|��|�|��|�|��|�|��|�|g��|�d��|���|�|ddg��|�|���d��dSr�r�r�s      r�$test_callbacks_remove_third_callbackz@BaseFutureDoneCallbackTests.test_callbacks_remove_third_callback�s3�����������!�!�#�r�*�*���!�!�#�r�*�*���!�!�#�s�+�+��	���C� � � �	���C� � � �	���C� � � �	���s�#�#�#�	���s�#�#�#�����b�!�!�!�	���U��������������r�2�h�'�'�'���������U�+�+�+�+�+r
c���g}|���}|�|�|d����|�|�|d����|�|g��|�d��|���|�|ddg��|�|���d��dS)Nr�r�r�)rWr�r{r[r-r�r()rrxrs   r�$test_callbacks_invoked_on_set_resultz@BaseFutureDoneCallbackTests.test_callbacks_invoked_on_set_result�s�����������	���D�/�/��R�8�8�9�9�9�	���D�/�/��R�8�8�9�9�9�����b�!�!�!�	���U��������������r�2�h�'�'�'���������U�+�+�+�+�+r
c��g}|���}|�|�|d����|�|g��t	��}|�|��|���|�|dg��|�|���|��dS)Nr_)rWr�r{r[rur/r�r*)rrxrr�s    r�'test_callbacks_invoked_on_set_exceptionzCBaseFutureDoneCallbackTests.test_callbacks_invoked_on_set_exception�s�����������	���D�/�/��S�9�9�:�:�:�����b�!�!�!��n�n��	�����������������s�e�$�$�$����������,�,�,�,�,r
c�t�g}|���}|�|d��}|�|d��}|�|d��}|�|��|�|��|�|�|��d��|�|�|��d��|�|��td��D]}|�|���|�|�|��d��|�|g��|�d��|���|�|dg��|�|���d��dS)NrgrJr-r��r�)	rWr{r�r[r�r�r-r�r()rrxrr�r�r�r�s       r�test_remove_done_callbackz5BaseFutureDoneCallbackTests.test_remove_done_callback
s������������!�!�#�q�)�)���!�!�#�q�)�)���!�!�#�q�)�)��	
���C� � � �	���C� � � �	
����/�/��4�4�a�8�8�8�	
����/�/��4�4�a�8�8�8�	
���C� � � ��q���	%�	%�A�
����$�$�$�$�	
����/�/��4�4�a�8�8�8�����b�!�!�!�	���U��������������q�c�"�"�"���������U�+�+�+�+�+r
c���|������t��td��D]}��t���G�fd�d��}��|����dS)N�?c���eZdZ�fd�ZdS)�RBaseFutureDoneCallbackTests.test_remove_done_callbacks_list_mutation.<locals>.evilc�<����t��dSrd)r��id)r�otherr�s  �r�__eq__zYBaseFutureDoneCallbackTests.test_remove_done_callbacks_list_mutation.<locals>.evil.__eq__5s����(�(��,�,�,��ur
N�r5r6r7r�r�s�r�evilr�4s.�������
�
�
�
�
�
�
r
r��rWr�rZr�r�r�)r�_r�r�s   @r�(test_remove_done_callbacks_list_mutationzDBaseFutureDoneCallbackTests.test_remove_done_callbacks_list_mutation+s������� � �����c�"�"�"��r���	&�	&�A��!�!�"�%�%�%�%�	�	�	�	�	�	�	�	�	�	�
	� � �����(�(�(�(�(r
c�"�d�}|���}|�|��|�t��|�t��|�d��t	j|j��dS)Nc�:�|�t��dSr	)r�rZrs r�mutzPBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_1.<locals>.mut>s��
�"�"�3�'�'�'�'�'r
rg)rWr�rZr-r�r�r?)rr�r�s   r�'test_schedule_callbacks_list_mutation_1zCBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_1;s���	(�	(�	(���� � �����c�"�"�"����c�"�"�"����c�"�"�"����q������t�y�)�)�)�)�)r
c�$����|������t��td��D]}��t���d�d�G���fd�d��}��|����dS)Nr�r_rc���eZdZ���fd�ZdS)�QBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_2.<locals>.evilc�R���dz
���kr��t��dS)NrgF)r�r�)rr��	extra_cbsr��
max_extra_cbss  ���rr�zXBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_2.<locals>.evil.__eq__Us2����Q��	��}�,�.��)�)�"�-�-�-��ur
Nr�)r�r�r�s���rr�r�Ts8�������
�
�
�
�
�
�
�
�
r
r�r�)rr�r�r�r�r�s   @@@r�'test_schedule_callbacks_list_mutation_2zCBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_2Hs��������� � �����c�"�"�"��r���	&�	&�A��!�!�"�%�%�%�%��
��	�	�	�	�	�	�	�	�	�	�	�	�	�	� � �����(�(�(�(�(r
)r5r6r7r=r�r{rWr�r�r�r�r�r�r�r�r�rNrOs@rrrrr�s��������)�)�)�)�)�*�*�*����"�"�"�,�,�,�.,�,�,�0,�,�,�.,�,�,�-�-�-�,�,�,�B)�)�)� *�*�*�)�)�)�)�)�)�)r
rrc��eZdZd�ZdS)�CFutureDoneCallbackTestsc�6�tj|j���Srn�rrbr?rs rrWz$CFutureDoneCallbackTests._new_futureds����T�Y�/�/�/�/r
N�r5r6r7rWrr
rr�r�_s#������
0�0�0�0�0r
r�c��eZdZd�ZdS)�CSubFutureDoneCallbackTestsc�T�Gd�dtj��}||j���S)Nc��eZdZdS)�;CSubFutureDoneCallbackTests._new_future.<locals>.CSubFutureNrkrr
rrlr�nrmr
rlrhr�)rrls  rrWz'CSubFutureDoneCallbackTests._new_futuremsD��	�	�	�	�	��)�	�	�	��z�t�y�)�)�)�)r
Nr�rr
rr�r�hs#������
*�*�*�*�*r
r�c��eZdZd�ZdS)�PyFutureDoneCallbackTestsc�6�tj|j���Srn)rrpr?rs rrWz%PyFutureDoneCallbackTests._new_futurevs��� �d�i�0�0�0�0r
Nr�rr
rr�r�ss#������1�1�1�1�1r
r�c�*��eZdZd�Z�fd�Zd�Z�xZS)�BaseFutureInheritanceTestsc��t�r	r}rs r�_get_future_clsz*BaseFutureInheritanceTests._get_future_cls|rr
c���t�����|���|_|�|jj��dSr	r;rBs �rr=z BaseFutureInheritanceTests.setUprDr
c��|���}Gd�d|��}||j���}|�td��5|���ddd��dS#1swxYwYdS)Nc��eZdZd�ZdS)�QBaseFutureInheritanceTests.test_inherit_without_calling_super_init.<locals>.MyFutc��dSr	rrTs   rrezZBaseFutureInheritanceTests.test_inherit_without_calling_super_init.<locals>.MyFut.__init__�s���r
N)r5r6r7rerr
r�MyFutr��s#������
�
�
�
�
r
r�rhz!Future object is not initialized.)r�r?rtrur)rrSr�r�s    r�'test_inherit_without_calling_super_initzBBaseFutureInheritanceTests.test_inherit_without_calling_super_init�s����"�"�$�$��	�	�	�	�	�C�	�	�	�
�e���#�#�#��
�
#�
#��/�
�
�	�	�
�L�L�N�N�N�		�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�A1�1A5�8A5)r5r6r7r�r=r�rNrOs@rr�r�zsV�������"�"�"�)�)�)�)�)�
������r
r�c��eZdZd�ZdS)�PyFutureInheritanceTestsc��tjSr	)rrprs rr�z(PyFutureInheritanceTests._get_future_cls�s��� � r
N�r5r6r7r�rr
rr�r��s#������!�!�!�!�!r
r�c��eZdZd�ZdS)�CFutureInheritanceTestsc��tjSr	)rrbrs rr�z'CFutureInheritanceTests._get_future_cls�s����r
Nr�rr
rr�r��s#������ � � � � r
r��__main__)(�__doc__�concurrent.futuresrr[r�r/r�unittestr�typesrr
r�test.test_asynciorr�r|rrrrrr�TestCaser9rQ�
skipUnlessr�rdrhrorrr�r�r�r�r�r�r5�mainrr
r�<module>r�s]��������	�	�	�	�	�	�	�	�
�
�
�
�������������������������������1�1�1�1�1�1�������(�(�(�
�
�
�	�	�	�	�	�	�0�0�0�0�0�0�0�0�f�����
�#����$M#�M#�M#�M#�M#�M#�M#�M#�`���W�W�W�j�1�1�5�7�7�#�#�#�#�#�?�J�$7�#�#�7�7�#����W�W�W�j�1�1�5�7�7������o�z�':���7�7�������O�Z�%8����F)�F)�F)�F)�F)�F)�F)�F)�R���W�W�W�j�1�1�5�7�7�0�0�0�0�0�:�)�2�0�0�7�7�0����W�W�W�j�1�1�5�7�7�*�*�*�*�*�"=�",�"5�*�*�7�7�*�1�1�1�1�1� ;� *� 3�1�1�1���������6!�!�!�!�!�9�)�2�!�!�!����W�W�W�j�1�1�5�7�7� � � � � �8�(�1� � �7�7� ��z����H�M�O�O�O�O�O��r