HEX
Server: Apache
System: Linux bd12.noc223.com 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: handcraf (1693)
PHP: 8.1.28
Disabled: NONE
Upload Files
File: //opt/alt/python312/lib64/python3.12/test/test_asyncio/__pycache__/test_futures.cpython-312.pyc
�

}h�e�u����dZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddlZddlmZddl
Z
ddlmZddlmZd�Zd	�Zd
�Zd�ZGd�d
�ZGd�dej0�ZGd�d�Zej6eed�d�Gd�deej0��Zej6eed�d�Gd�deej0��ZGd�deej0�ZGd�d�Z ej6eed�d�Gd�de ej0��Z!ej6eed�d�Gd�de ej0��Z"Gd �d!e ej0�Z#Gd"�d#�Z$Gd$�d%e$ej0�Z%ej6eed�d�Gd&�d'e$ej0��Z&e'd(k(rejP�yy))zTests for futures.py.�N)�mock)�GenericAlias)�futures)�utils)�supportc�.�tjd�y�N)�asyncio�set_event_loop_policy���E/opt/alt/python312/lib64/python3.12/test/test_asyncio/test_futures.py�tearDownModulers���!�!�$�'r
c��|Sr	r��fs r�	_fakefuncrs���Hr
c��yr	rrr
r�first_cbr���r
c��yr	rrr
r�last_cbrrr
c�L�eZdZdZdZdZdZd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zy)�
DuckFutureFNc�4�|j�ryd|_y)NFT)�done�_DuckFuture__cancelled��selfs r�cancelzDuckFuture.cancel+s���9�9�;�����r
c��|jSr	)rrs r�	cancelledzDuckFuture.cancelled1s�����r
c�Z�|jxs|jduxs|jduSr	)r�_DuckFuture__result�_DuckFuture__exceptionrs rrzDuckFuture.done4s4��� � �0��=�=��,�0��#�#�4�/�	1r
c��|j|j��|j�|j�|jSr	)�assertFalser"r%r$rs r�resultzDuckFuture.result9s9��������)�*����'��"�"�"��}�}�r
c�X�|j|j��|jSr	)r'r"r%rs r�	exceptionzDuckFuture.exception?s#��������)�*����r
c�r�|j|j��|j|�||_yr	)r'r�assertIsNotNoner$)rr(s  r�
set_resultzDuckFuture.set_resultCs+���������%����V�$���
r
c�r�|j|j��|j|�||_yr	)r'rr,r%)rr*s  r�
set_exceptionzDuckFuture.set_exceptionHs,���������%����Y�'�$��r
c#�K�|j�sd|_|��|j|j��|j�S�w�NT)r�_asyncio_future_blocking�
assertTruer(rs r�__iter__zDuckFuture.__iter__Ms:�����y�y�{�,0�D�)��J�����	�	��$��{�{�}��s�AA
)�__name__�
__module__�__qualname__r2rr$r%r r"rr(r*r-r/r4rr
rrr"sA�� %���K��H��K�� �1�
� ��
%�
r
rc�*��eZdZ�fd�Zd�Zd�Z�xZS)�	DuckTestsc���t�|��|j�|_|j	|jj
�yr	��super�setUp�
new_test_loop�loop�
addCleanup�close�r�	__class__s �rr=zDuckTests.setUpW�0���
��
���&�&�(��	�����	�	���(r
c�f�t�}tj|�}|j||�yr	)rr
�wrap_future�assertIs�rr�gs   r�test_wrap_futurezDuckTests.test_wrap_future\s'���L������"���
�
�a��r
c�f�t�}tj|�}|j||�yr	)rr
�
ensure_futurerGrHs   r�test_ensure_futurezDuckTests.test_ensure_futureas'���L���!�!�!�$���
�
�a��r
)r5r6r7r=rJrM�
__classcell__�rCs@rr9r9Us���)�
�
r
r9c�j��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�Zej2d�d��Zej2d�d��Zej2d�d��Zej2d�d��Zej2d�d��Zej2d�d��Zej2d�d��Z d�Z!d�Z"d �Z#d!�Z$d"�Z%d#�Z&d$�Z'd%�Z(ej2d�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_futureis���t�x�x��(��(�(r
c���t�|��|j�|_|j	|jj
�yr	r;rBs �rr=zBaseFutureTests.setUplrDr
c��|jt}|j|jtf�|j	|t
�yr	)rS�str�assertEqual�__args__�assertIsInstancer)r�futures  r�test_generic_aliasz"BaseFutureTests.test_generic_aliasqs5�����#���������3�&�1����f�l�3r
c	���Gd�d�}|jtj|��|jtj|���|jtjd��|jtjt	j
���|j
|j��}|jtj|��|jtjt|���|jtjt	j
t|����|j�y)Nc��eZdZdZd�Zy)�/BaseFutureTests.test_isfuture.<locals>.MyFutureNc��d|_y�NF)r2rs r�__init__z8BaseFutureTests.test_isfuture.<locals>.MyFuture.__init__zs
��05��-r
)r5r6r7r2rerr
r�MyFuturerbws
��'+�$�
6r
rf��r?)
r'r
�isfuturer3r�MockrWr?�typer )rrfrs   r�
test_isfuturezBaseFutureTests.test_isfuturevs���	6�	6�	
����)�)�(�3�4�����(�(���4�5�����)�)�!�,�-�	
����)�)�$�)�)�+�6�7����$�)�)��,������(�(��+�,�����)�)�$�q�'�2�3�	
����(�(����4��7�);�<�=�	���
r
c��|j|j��}|j|j��|j|j	��|j�|j
|j��y�Nrh)rWr?r'r"rr r3�rrs  r�test_initial_statez"BaseFutureTests.test_initial_state�s\�����$�)�)��,���������'��������"�	���
�������
�&r
c�z�|jtd�5|j�ddd�y#1swYyxYw)N�no current event loop)�assertRaisesRegex�RuntimeErrorrWrs r�test_constructor_without_loopz-BaseFutureTests.test_constructor_without_loop�s4��
�
#�
#�L�2I�
J�	�����	�	�	�s�1�:c�����fd�}�jj|��}�j|j�j��j|j	��j�y)Nc��,�K��j�S�wr	)rWrs�r�testz?BaseFutureTests.test_constructor_use_running_loop.<locals>.test�s������#�#�%�%�s�)r?�run_until_completerG�_loop�get_loop)rrxrs`  r�!test_constructor_use_running_loopz1BaseFutureTests.test_constructor_use_running_loop�sL���	&��I�I�(�(���0���
�
�a�g�g�t�y�y�)��
�
�a�j�j�l�D�I�I�.r
c�B�tj|j�|jtjd�|j	�}|j|j|j�|j|j�|j�yr	)r
�set_event_loopr?r@rWrGrzr{ros  r� test_constructor_use_global_loopz0BaseFutureTests.test_constructor_use_global_loop�sd�����t�y�y�)�����.�.��5�������
�
�a�g�g�t�y�y�)��
�
�a�j�j�l�D�I�I�.r
c�F�|jt|jd�y)N�*)�assertRaises�	TypeErrorrWrs r�test_constructor_positionalz+BaseFutureTests.test_constructor_positional�s�����)�T�%5�%5�r�:r
c��|jj|j|j��}|jtj
|j�|jj|j|j��}|jtj
|j�|jj|j|j��}|jttf�5|jd�ddd�|jj|j|j��}|jttf�5|jt�ddd�|jj|j|j��}|jttf�5|j�ddd�|jj|j|j��}|jttf�5|jd��ddd�|jj|j|j��}|jttf�5|jd��ddd�|jj|j|j��}	t!|�|jj|j|j��}	|j#�|jj|j|j��}	t%|�|jj|j|j��}|j'|j)��|j'|j+��y#1swY���xYw#1swY��vxYw#1swY��xYw#1swY���xYw#1swY��jxYw#ttf$rY��BwxYw#t$rY��wxYw#t$rY��wxYw)Nrhc��yr	rrs r�<lambda>z4BaseFutureTests.test_uninitialized.<locals>.<lambda>���r
c��yr	rrs rr�z4BaseFutureTests.test_uninitialized.<locals>.<lambda>�r�r
)rS�__new__r?r�r
�InvalidStateErrorr(r*rt�AttributeErrorr-r/�	Exceptionr �add_done_callback�remove_done_callback�repr�	__await__�iterr'r"r�r�futs  r�test_uninitializedz"BaseFutureTests.test_uninitialized�sG���h�h���t�x�x�d�i�i��8�����'�3�3�S�Z�Z�@��h�h���t�x�x�d�i�i��8�����'�3�3�S�]�]�C��h�h���t�x�x�d�i�i��8��
�
�
��n�=�
>�	!��N�N�4� �	!��h�h���t�x�x�d�i�i��8��
�
�
��n�=�
>�	)����i�(�	)��h�h���t�x�x�d�i�i��8��
�
�
��n�=�
>�	��J�J�L�	��h�h���t�x�x�d�i�i��8��
�
�
��n�=�
>�	2��!�!�.�1�	2��h�h���t�x�x�d�i�i��8��
�
�
��n�=�
>�	5��$�$�^�4�	5��h�h���t�x�x�d�i�i��8��	���I��h�h���t�x�x�d�i�i��8��	��M�M�O��h�h���t�x�x�d�i�i��8��	���I��h�h���t�x�x�d�i�i��8���������)��������$�O	!�	!��	)�	)��	�	��	2�	2��	5�	5���n�-�	��	���	��	���	��	�sr�O&�)O3�P�8P
�P�,P'�)P=�+Q
�&O0�3O=�P
�
P�P$�'P:�9P:�=	Q
�	Q
�
	Q�Qc��|j|j��}|jt|d��|j	|j
d�|j
d�|jtj�5|jj|�ddd�|j	|j
d�y#1swY�&xYw)Nrh�_cancel_message�
my message)rWr?r3�hasattrr[r�r r�r
�CancelledErrorryros  r�!test_future_cancel_message_getterz1BaseFutureTests.test_future_cancel_message_getter�s������$�)�)��,�������#4�5�6�����*�*�D�1�	�����
�
�
�w�5�5�
6�	,��I�I�(�(��+�	,�����*�*�L�9�	,�	,�s�C�Cc�z�|j|j��}|jd�d|_|j	|jd�|jtj�5|jj|�ddd�|j	|jd�y#1swY�&xYw)Nrhr�zmy new message)	rWr?r r�r[r�r
r�ryros  r�!test_future_cancel_message_setterz1BaseFutureTests.test_future_cancel_message_setter�s������$�)�)��,��	�����,�������*�*�,<�=��
�
�w�5�5�
6�	,��I�I�(�(��+�	,�����*�*�,<�=�	,�	,�s�0B1�1B:c��|j|j��}|j|j��|j|j	��|j|j��|j
tj|j�|j
tj|j�|j
tj|jd�|j
tj|jd�|j|j��yrn)rWr?r3r r"rr�r
r�r(r*r�r-r/r'ros  r�test_cancelzBaseFutureTests.test_cancel�s������$�)�)��,��������
�#�������
�&��������!����'�0�0�!�(�(�;����'�0�0�!�+�+�>����'�3�3�Q�\�\�4�H����'�3�3�Q�_�_�d�K��������$r
c��|j|j��}|jtj|j
�|j
d�|j|j��|j|j��|j|j�d�|j|j�d�|jtj|jd�|jtj|jd�|j|j��y�Nrhr�)rWr?r�r
r�r(r-r'r"r3rr[r*r/r ros  r�test_resultzBaseFutureTests.test_result�s������$�)�)��,�����'�3�3�Q�X�X�>�	���R���������'��������!��������R�(���������-����'�3�3�Q�\�\�4�H����'�3�3�Q�_�_�d�K��������$r
c��t�}|j|j��}|jtj
|j�|jtd|jt�|j|�|j|j��|j|j��|jt|j�|j!|j
�|�|jtj
|j"d�|jtj
|jd�|j|j%��y)Nrhz!StopIteration .* cannot be raised)rtrWr?r�r
r�r*rsr�r/�
StopIterationr'r"r3rr(r[r-r )r�excrs   r�test_exceptionzBaseFutureTests.test_exceptions���n�����$�)�)��,�����'�3�3�Q�[�[�A�	
���y�*M� ���
�	?�	
������������'��������!����,����1���������,����'�3�3�Q�\�\�4�H����'�3�3�Q�_�_�d�K��������$r
c��|j|j��}|jt�|j	|j�t�yrn)rWr?r/rtr]r*ros  r�test_exception_classz$BaseFutureTests.test_exception_classs;�����$�)�)��,��	����%����a�k�k�m�\�:r
c�P��|j|j����fd�}|�}|jt|�d�|jt|����j	d�|jt|�d�|jt|�d�y)Nrhc3�^�K�d���Ed{���}d|f���Ed{���}d|f��y7�7�
�w)N�A�B�Cr)�x�yrs  �r�fixturez6BaseFutureTests.test_yield_from_twice.<locals>.fixture&s5������I���A��q�&�L���A��q�&�L����s�
-�)�-�+�-�-r�r�)r�r�)r�r�)rWr?r[�nextr-)rr�rIrs   @r�test_yield_from_twicez%BaseFutureTests.test_yield_from_twice#s�������$�)�)��,��	�
�I������a��#�&�����a��!�$�	���R������a��)�,�����a��)�,r
c
�x	�|jjd�|j|j��}|jd}|j	t|�d|jj�d|d�d|d�d	��|j�|jjd
�|j|j��}|j	t|�d|jj�d��|j�|j|j��}|j�|j	t|�d|jj�d��|j|j��}|jd
�|j	t|�d|jj�d��|j	|j�d
�t�}|j|j��}|j|�|j	t|�d|jj�d��|j|j�|�d�}|j|j��}	|	jt �|t �}
|j#t|	�d|jjzd|
zz�|	j�|j	t|	�d|jj�d��|j|j��}|jt$�|jt&�|t$�}|t&�}
|j#t|�d|jjzd|�d|
�d�z�|j|j��}|jt$�t)d�D]}|jt ��|jt&�|�d|
��}|j#t|�d|jjzd|zz�|j�|j	t|�d|jj�d��y)NTrh����<z pending created at r�:rg�>Fz	 pending>z cancelled>�z finished result=4>z# finished exception=RuntimeError()>c��tj|�\}}|j�d|�d|��}tj|�S)Nz() at r�)�
test_utils�get_function_sourcer7�re�escape)�func�filename�lineno�texts    r�	func_reprz3BaseFutureTests.test_future_repr.<locals>.func_reprUs7��)�=�=�d�C��H�f�&*�&7�&7��6�J�D��9�9�T�?�"r
z pending cb=\[%s\]>z pending cb=\[z, z\]>�z, <8 more>, )r?�	set_debugrW�_source_tracebackr[r�rSr5r r-r(rtr/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_repr5s���	�	���D�!��*�*��	�	�*�:���1�1�"�5�������!�����!�!�"�"6�u�Q�x�j��%��(��1�M�	O�	��� ��	�	���E�"��$�$�$�)�)�$�4�	�����i��A�d�h�h�.?�.?�-@�	�*J�K������&�&�D�I�I�&�6����������k�*�a����0A�0A�/B�+�,N�O��#�#����#�3�����A�������N�a���� 1� 1�2�2E�F�	H�������*�A�.��n���&�&�D�I�I�&�6���!�!�#�&�����������!�!�"�"E�F�	H�	
�
�
�k�+�+�-�s�3�	#�
�*�*��	�	�*�:���)�)�)�4��i�(�	������!��4�8�8�$�$�$�'=�	�'I�I�	K�	��� �����o�.��T�X�X�.�.�/�{�;�	=��*�*��	�	�*�:���)�)�(�3��)�)�'�2��x�(�
��g�&�	�����o�.����� 1� 1�1�&�	�53�3�	4� �+�+����+�;���*�*�8�4��q��	:�A��.�.�y�9�	:��*�*�7�3�*4�i�@������!�"��4�8�8�$�$�$�'=��'H�H�	J�	���!�����.�/��T�X�X�.�.�/�{�;�	=r
c�D�ddlm}|j|j��}|j	d�|j|j��}|||�|j|j
��|j|j�d�|j|j��}|jt��|j|j��}|||�|j|j
��|jt|j�|j|j��}|j�|j|j��}|||�|j|j��y)Nr)�_copy_future_staterh�
)�asyncio.futuresr�rWr?r-r3rr[r(r/rtr�r r")rr�r�newfr��newf_exceptionr��newf_cancelleds        r�test_copy_statezBaseFutureTests.test_copy_statezs=��6����$�)�)��,��	���R�����T�Y�Y��/���1�d�#�����	�	��$���������+��&�&�D�I�I�&�6���!�!�,�.�1��)�)�t�y�y�)�9���;��7�����+�+�-�.����,��(=�(=�>��&�&�D�I�I�&�6�������)�)�t�y�y�)�9���;��7�����0�0�2�3r
c�����|j|j����fd���fd�}|jtd�5|�ddd��j	�y#1swY�xYw)Nrhc3�&�K��Ed{���y7��wr	r�r�s�r�coroz'BaseFutureTests.test_iter.<locals>.coro�s������N�N�s���c�����\}}yr	r)�arg1�arg2r�s  �rrxz'BaseFutureTests.test_iter.<locals>.test�s�����J�D�$r
zawait wasn't used)rWr?rsrtr )rrxr�r�s  @@r�	test_iterzBaseFutureTests.test_iter�sZ������D�I�I��.��	�	 ��
#�
#�L�2E�
F�	��F�	��
�
��	�	�s�A � A)c��|j|j��}|jtd�5d|_ddd�y#1swYyxYw)Nrhzcan only be set to FalseT)rWr?rs�
ValueError�_log_tracebackr�s  r�test_log_tracebackz"BaseFutureTests.test_log_traceback�sG�����D�I�I��.��
�
#�
#�J�0J�
K�	&�!%�C��	&�	&�	&�s�A�A
zasyncio.base_events.loggerc��|j|j��}~|j|jj�yrn)rWr?r'�error�called�r�m_logr�s   r�test_tb_logger_abandonedz(BaseFutureTests.test_tb_logger_abandoned�s4�����D�I�I��.���������+�+�,r
c���|j|j��}|jt��|j	�~|j|jj�yrn)rWr?r/r�r r'r�r�r�s   r�&test_tb_logger_not_called_after_cancelz6BaseFutureTests.test_tb_logger_not_called_after_cancel�sM�����D�I�I��.�����)�+�&��
�
���������+�+�,r
c��|j|j��}|jd�~|j|jj
�yr�)rWr?r-r'r�r�r�s   r�!test_tb_logger_result_unretrievedz1BaseFutureTests.test_tb_logger_result_unretrieved�s@�����D�I�I��.�����r���������+�+�,r
c���|j|j��}|jd�|j�~|j	|j
j�yr�)rWr?r-r(r'r�r�r�s   r�test_tb_logger_result_retrievedz/BaseFutureTests.test_tb_logger_result_retrieved�sI�����D�I�I��.�����r���
�
���������+�+�,r
c�"�|j|j��}|jtd��~t	j
|j�t
j�|j|jj�y�Nrh�boom)rWr?r/rtr��run_brieflyr�
gc_collectr3r�r�r�s   r�$test_tb_logger_exception_unretrievedz4BaseFutureTests.test_tb_logger_exception_unretrieved�sc�����D�I�I��.�����,�v�.�/�����t�y�y�)�����������*�*�+r
c���|j|j��}|jtd��|j	�~|j|jj�yr�)rWr?r/rtr*r'r�r�r�s   r�"test_tb_logger_exception_retrievedz2BaseFutureTests.test_tb_logger_exception_retrieved�sP�����D�I�I��.�����,�v�.�/��
�
���������+�+�,r
c��|j|j��}|jtd��|j	t|j
�~|j
|jj�yr�)	rWr?r/rtr�r(r'r�r�r�s   r�)test_tb_logger_exception_result_retrievedz9BaseFutureTests.test_tb_logger_exception_result_retrieved�s[�����D�I�I��.�����,�v�.�/����,��
�
�3��������+�+�,r
c���d�}tjjd�}|j|d�}t	j
||j��}|jj|�\}}|jt	j|��|j|d�|j|tj��|jd��y)Nc�.�|tj�fSr	��	threading�	get_ident��args r�runz-BaseFutureTests.test_wrap_future.<locals>.run������,�,�.�/�/r
rg�oirhT��wait)�
concurrentr�ThreadPoolExecutor�submitr
rFr?ryr3rir[�assertNotEqualrr�shutdown)rr�ex�f1�f2�res�idents       rrJz BaseFutureTests.test_wrap_future�s���	0�
�
�
�
2�
2�1�
5��
�Y�Y�s�D�
!��
�
 �
 ��$�)�)�
4���Y�Y�1�1�"�5�
��U�����(�(��,�-�����d�#����E�9�#6�#6�#8�9�
�����r
c��|j|j��}tj|�}|j	||�yrn)rWr?r
rFrG�rrrs   r�test_wrap_future_futurez'BaseFutureTests.test_wrap_future_future�s7��
�
�
�4�9�9�
�
-��
�
 �
 ��
$���
�
�b�"�r
c��d�}tjjd�}|j|d�}|j	t
d�5t
j|�ddd�|jd��y#1swY�xYw)Nc�.�|tj�fSr	rrs rrz:BaseFutureTests.test_wrap_future_without_loop.<locals>.run�r	r
rgr
rrTr)	r
rrrrsrtr
rFr)rrrrs    r�test_wrap_future_without_loopz-BaseFutureTests.test_wrap_future_without_loop�so��	0�
�
�
�
2�
2�1�
5��
�Y�Y�s�D�
!��
�
#�
#�L�2I�
J�	$�����#�	$�
������	$�	$�s�A<�<Bc�(��d�}tjjd�}|j|d���fd�}|jj|��}|j
|j|j�|jd��y)Nc�.�|tj�fSr	rrs rrz>BaseFutureTests.test_wrap_future_use_running_loop.<locals>.run�r	r
rgr
c��6�K�tj��S�wr	)r
rF)rs�rrxz?BaseFutureTests.test_wrap_future_use_running_loop.<locals>.test�s������&�&�r�*�*�s�Tr)	r
rrrr?ryrGrzr)rrrrxrrs     @r�!test_wrap_future_use_running_loopz1BaseFutureTests.test_wrap_future_use_running_loop�sm���	0�
�
�
�
2�
2�1�
5��
�Y�Y�s�D�
!��	+�
�Y�Y�
)�
)�$�&�
1���
�
�d�i�i����*�
�����r
c��tj|j�|jtjd�d�}tj
j
d�}|j|d�}tj|�}|j|j|j�|jd��y)Nc�.�|tj�fSr	rrs rrz=BaseFutureTests.test_wrap_future_use_global_loop.<locals>.runr	r
rgr
Tr)r
r~r?r@r
rrrrFrGrzr)rrrrrs     r� test_wrap_future_use_global_loopz0BaseFutureTests.test_wrap_future_use_global_loops������t�y�y�)�����.�.��5�	0�
�
�
�
2�
2�1�
5��
�Y�Y�s�D�
!��
�
 �
 ��
$���
�
�d�i�i����*�
�����r
c�\�tjj�}tj||j
��}|j
�tj|j
�|j|j��|j|j��yrn)r
r�Futurer
rFr?r r�r�r3r"rs   r�test_wrap_future_cancelz'BaseFutureTests.test_wrap_future_cancelsk��
�
�
�
&�
&�
(��
�
 �
 ��$�)�)�
4��
�	�	�����t�y�y�)��������'��������'r
c��tjj�}tj||j
��}|j
d�|j�tj|j
�|j|j��|j|j�d�|j|j��yr�)r
rr%r
rFr?r-r r�r�r'r"r[r(r3rs   r�test_wrap_future_cancel2z(BaseFutureTests.test_wrap_future_cancel2s���
�
�
�
&�
&�
(��
�
 �
 ��$�)�)�
4��
�
�
�b��
�	�	�����t�y�y�)��������(��������b�)��������'r
c�F�|jjd�|j|j��}tj�j
dz
}|j
|jt�|j|jdddt|df�y)NTrhrg�����test_future_source_traceback)r?r�rW�sys�	_getframe�f_linenor]r��listr[�__file__)rr^r�s   rr,z,BaseFutureTests.test_future_source_traceback s����	�	���D�!��!�!�t�y�y�!�1������)�)�A�-�����f�6�6��=�����1�1�"�5�b�q�9�"� �8�:�	;r
c�l�|jj|�d�}|�}|j|j��}|j|�d}t	j
|j�t
j�d|jj�d�}t|�||jf}|jjtj|��|jj dd}|j#|t%j&|t$j(��y)Nc�H�	t��#t$r}|cYd}~Sd}~wwxYwr	)�MemoryError�
BaseException)r�s r�memory_errorzLBaseFutureTests.check_future_exception_never_retrieved.<locals>.memory_error/s$��
�!�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�r6r�r^�regexr8�messages	         r�&check_future_exception_never_retrievedz6BaseFutureTests.check_future_exception_never_retrieved+s����	�	���E�"�	�
�n���!�!�t�y�y�!�1�����S�!������t�y�y�)������D�H�H�%�%�&�&F�G����I�s�C�$5�$5�6��
���+�+�D�H�H�x�+�H��+�+�'�'��*�1�-������"�*�*�U�B�I�I�">�?r
c�&�|jd�yrd�rBrs r�%test_future_exception_never_retrievedz5BaseFutureTests.test_future_exception_never_retrievedCs���3�3�E�:r
c�&�|jd�yr1rDrs r�+test_future_exception_never_retrieved_debugz;BaseFutureTests.test_future_exception_never_retrieved_debugFs���3�3�D�9r
c���|j|j��}|j�tj|d�|j|j
��y)Nrh�)rWr?r r�_set_result_unless_cancelledr3r"r�s  r� test_set_result_unless_cancelledz0BaseFutureTests.test_set_result_unless_cancelledIsD�����D�I�I��.���
�
���,�,�S�!�4�����
�
��(r
c�6�|j|j��}|jd�|j�}d}	|j	d�|jd�|j|d�y#t$r}|jd}Yd}~�0d}~wwxYw)Nrh)rgrIzStopIteration was expectedr)	rWr?r-r4�send�failr�rUr[)rr��fir(rs     r�test_future_stop_iteration_argsz/BaseFutureTests.test_future_stop_iteration_argsOs������D�I�I��.�����v��
�\�\�^����	4��G�G�D�M�
�I�I�2�3������(��	�	 ��W�W�Q�Z�F��	 �s�A6�6	B�?B�Bc	���|j|j��}t|�}|jt�5|jt|jtt
d�d�ddd�tj�5tjdt��|jt|jtt
d�d�|jt|jt
d�t
d��|jt|jtdd�ddd�|jt|jt�y#1swY��xYw#1swY�;xYw)Nrh�zebra�ignore)�category�elephant� )rWr?r��assertWarns�DeprecationWarningr�r��throw�warnings�catch_warnings�filterwarningsr�r�r0)rr�rOs   r�test_future_iter_throwz&BaseFutureTests.test_future_iter_throw\s�����D�I�I��.��
�#�Y��
�
�
�0�
1�	X����i����9�i��>P�RV�W�	X�
�
$�
$�
&�	L��#�#�H�7I�J����i����%�y��'<�b�
B����i����%�j�1�9�Z�3H�
J�
���j�"�(�(�J��d�K�	L�	
���)�R�X�X�t�4�	X�	X��	L�	L�s�1E�
B'E+�E(�+E4c��Gd�d�}td�D]4}|j|j��}|j|���6y)Nc��eZdZd�Zy)�5BaseFutureTests.test_future_del_collect.<locals>.Evilc�,�tj�yr	)�gc�collectrs r�__del__z=BaseFutureTests.test_future_del_collect.<locals>.Evil.__del__ms���
�
�r
N)r5r6r7rdrr
r�Evilr`ls��
r
re�drh)r�rWr?r-)rrer�r�s    r�test_future_del_collectz'BaseFutureTests.test_future_del_collectksF��	�	��s��	#�A��"�"��	�	�"�2�C��N�N�4�6�"�	#r
)1r5r6r7rWr=r_rlrprur|rr�r�r�r�r�r�r�r�r�r�r�r�r�r�patchr�r�r�r�r�r�rrJrrr r#r&r(r,rBrErGrKrPr]rgrNrOs@rrQrQgs����)�)�
4�
�.'��/�/�;�2%�h:�	>�	%�%�%�$;�
-�$C=�J4�4�&�
�T�Z�Z�,�-�-�.�-�
�T�Z�Z�,�-�-�.�-��T�Z�Z�,�-�-�.�-��T�Z�Z�,�-�-�.�-��T�Z�Z�,�-�,�.�,��T�Z�Z�,�-�-�.�-��T�Z�Z�,�-�-�.�-���
�	�
�(�(�	;��T�Z�Z�,�-�@�.�@�.;�:�)�)�
5�#r
rQ�_CFuturezrequires the C _asyncio modulec�L�eZdZ	ejZd�Zy#e$rdZYd�ZywxYw)�CFutureTestsNc���|j|j��}|jt�5|`ddd�|jt�5|`ddd�y#1swY�*xYw#1swYyxYwrn)rWr?r�r�r2r�r�s  r�test_future_del_segfaultz%CFutureTests.test_future_del_segfault}sp�����D�I�I��.��
�
�
�~�
.�	-��,�	-�
�
�
�~�
.�	#��"�	#�	#�	-�	-��	#�	#�s�A�A*�A'�*A3)r5r6r7rrirSr�rmrr
rrkrkus2�������#������#��s��#�#rkc�V�eZdZ	Gd�dej�ZeZy#e$rdZYywxYw)�CSubFutureTestsc��eZdZy)�CSubFutureTests.CSubFutureN�r5r6r7rr
r�
CSubFuturerq����r
rsN)r5r6r7rrirsrSr�rr
rroro�s4���	��)�)�	���������s��(�(roc�$�eZdZejZy)�
PyFutureTestsN)r5r6r7r�	_PyFuturerSrr
rrvrv�s
��
�
�
�Cr
rvc�l��eZdZ�fd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Z�xZS)�BaseFutureDoneCallbackTestsc�L��t�|��|j�|_yr	)r<r=r>r?rBs �rr=z!BaseFutureDoneCallbackTests.setUp�s���
��
���&�&�(��	r
c�B�tj|j�yr	)r�r�r?rs rr�z'BaseFutureDoneCallbackTests.run_briefly�s�����t�y�y�)r
c������fd�}|S)Nc�(���j��yr	)�append)r^�bag�things ��r�bag_appenderz@BaseFutureDoneCallbackTests._make_callback.<locals>.bag_appender�s����J�J�u�r
r)rrr�r�s `` r�_make_callbackz*BaseFutureDoneCallbackTests._make_callback�s���	��r
c��t�r	��NotImplementedErrorrs rrWz'BaseFutureDoneCallbackTests._new_future����!�!r
c��g}|j�}|j|d�}|j|d�}|j|d�}|j|�|j|�|j|�|j|�|j|�|j	|g�|jd�|j
�|j	|ddg�|j	|j�d�y�Nr��rf�foo�rWr�r�r�r[r-r�r(�rrr�cb1�cb2�cb3s      r�$test_callbacks_remove_first_callbackz@BaseFutureDoneCallbackTests.test_callbacks_remove_first_callback�s�����������!�!�#�r�*���!�!�#�r�*���!�!�#�s�+��	���C� �	���C� �	���C� �	���s�#�	���s�#�����b�!�	���U����������r�3�i�(��������U�+r
c�,�g}|j�}|j|d�}|j|d�}|j|d�}|j|�|j|�|j|�|j|�|j|�|j|�|j	|g�|jd�|j
�|j	|dg�|j	|j�d�yr�r�r�s      r�/test_callbacks_remove_first_and_second_callbackzKBaseFutureDoneCallbackTests.test_callbacks_remove_first_and_second_callback�s�����������!�!�#�r�*���!�!�#�r�*���!�!�#�s�+��	���C� �	���C� �	���C� �	���s�#�	���s�#�	���s�#�����b�!�	���U����������s�e�$��������U�+r
c��g}|j�}|j|d�}|j|d�}|j|d�}|j|�|j|�|j|�|j|�|j|�|j	|g�|jd�|j
�|j	|ddg�|j	|j�d�yr�r�r�s      r�$test_callbacks_remove_third_callbackz@BaseFutureDoneCallbackTests.test_callbacks_remove_third_callback�s�����������!�!�#�r�*���!�!�#�r�*���!�!�#�s�+��	���C� �	���C� �	���C� �	���s�#�	���s�#�����b�!�	���U����������r�2�h�'��������U�+r
c�z�g}|j�}|j|j|d��|j|j|d��|j|g�|j	d�|j�|j|ddg�|j|j
�d�y)Nr�r�r�)rWr�r�r[r-r�r()rrrs   r�$test_callbacks_invoked_on_set_resultz@BaseFutureDoneCallbackTests.test_callbacks_invoked_on_set_result�s����������	���D�/�/��R�8�9�	���D�/�/��R�8�9�����b�!�	���U����������r�2�h�'��������U�+r
c�J�g}|j�}|j|j|d��|j|g�t	�}|j|�|j
�|j|dg�|j|j�|�y)Nrf)rWr�r�r[rtr/r�r*)rrrr�s    r�'test_callbacks_invoked_on_set_exceptionzCBaseFutureDoneCallbackTests.test_callbacks_invoked_on_set_exception�s����������	���D�/�/��S�9�:�����b�!��n��	�������������s�e�$���������,r
c���g}|j�}|j|d�}|j|d�}|j|d�}|j|�|j|�|j|j	|�d�|j|j	|�d�|j|�td�D]}|j|��|j|j	|�d�|j|g�|j
d�|j�|j|dg�|j|j�d�y)NrgrIr+r��r�)	rWr�r�r[r�r�r-r�r()rrrr�r�r�r�s       r�test_remove_done_callbackz5BaseFutureDoneCallbackTests.test_remove_done_callback	sA����������!�!�#�q�)���!�!�#�q�)���!�!�#�q�)��	
���C� �	���C� �	
����/�/��4�a�8�	
����/�/��4�a�8�	
���C� ��q��	%�A�
����$�	%�	
����/�/��4�a�8�����b�!�	���U����������q�c�"��������U�+r
c����|j���jt�td�D]}�jt��G�fd�d�}�j|��y)N�?c���eZdZ�fd�Zy)�RBaseFutureDoneCallbackTests.test_remove_done_callbacks_list_mutation.<locals>.evilc�0���jt�yrd)r��id�r�otherr�s  �r�__eq__zYBaseFutureDoneCallbackTests.test_remove_done_callbacks_list_mutation.<locals>.evil.__eq__4s����(�(��,�r
N�r5r6r7r�r�s�r�evilr�3s���
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����|j���jt�td�D]}�jt��G�fd�d�}�j|��y)Nr�c���eZdZ�fd�Zy)�OBaseFutureDoneCallbackTests.test_remove_done_callbacks_list_clear.<locals>.evilc�(���j|�yr	)r�r�s  �rr�zVBaseFutureDoneCallbackTests.test_remove_done_callbacks_list_clear.<locals>.evil.__eq__Ds����(�(��/r
Nr�r�s�rr�r�Cs���
0r
r�r�r�s   @r�%test_remove_done_callbacks_list_clearzABaseFutureDoneCallbackTests.test_remove_done_callbacks_list_clear:s^������ �����c�"��r��	&�A��!�!�"�%�	&�	0�	0�	� � ���(r
c��d�}|j�}|j|�|jt�|jt�|jd�t	j
|j�y)Nc�.�|jt�yr	)r�rZrs r�mutzPBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_1.<locals>.mutLs��
�"�"�3�'r
rg)rWr�rZr-r�r�r?)rr�r�s   r�'test_schedule_callbacks_list_mutation_1zCBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_1Is_��	(���� �����c�"����c�"����c�"����q�����t�y�y�)r
c������|j���jt�td�D]}�jt��d�d�G���fd�d�}�j|��y)Nr�rfrc���eZdZ���fd�Zy)�QBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_2.<locals>.evilc�D���dz
���kr�jt�y)NrgF)r�r�)rr��	extra_cbsr��
max_extra_cbss  ���rr�zXBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_2.<locals>.evil.__eq__cs%����Q��	��}�,��)�)�"�-�r
Nr�)r�r�r�s���rr�r�bs���
r
r�r�)rr�r�r�r�r�s   @@@r�'test_schedule_callbacks_list_mutation_2zCBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_2Vsj������ �����c�"��r��	&�A��!�!�"�%�	&��
��	�	�	�	� � ���(r
)r5r6r7r=r�r�rWr�r�r�r�r�r�r�r�r�r�rNrOs@rryry�sJ���)�*��"�,�.,�0,�.,�-�,�B)� 
)�*�)r
ryc��eZdZd�Zy)�CFutureDoneCallbackTestsc�B�tj|j��Srn�rrir?rs rrWz$CFutureDoneCallbackTests._new_futurers�����T�Y�Y�/�/r
N�r5r6r7rWrr
rr�r�ms��
0r
r�c��eZdZd�Zy)�CSubFutureDoneCallbackTestsc�Z�Gd�dtj�}||j��S)Nc��eZdZy)�;CSubFutureDoneCallbackTests._new_future.<locals>.CSubFutureNrrrr
rrsr�|rtr
rsrhr�)rrss  rrWz'CSubFutureDoneCallbackTests._new_future{s#��	��)�)�	��t�y�y�)�)r
Nr�rr
rr�r�vs��
*r
r�c��eZdZd�Zy)�PyFutureDoneCallbackTestsc�B�tj|j��Srn)rrwr?rs rrWz%PyFutureDoneCallbackTests._new_future�s��� � �d�i�i�0�0r
Nr�rr
rr�r��s��1r
r�c�*��eZdZd�Z�fd�Zd�Z�xZS)�BaseFutureInheritanceTestsc��t�r	r�rs r�_get_future_clsz*BaseFutureInheritanceTests._get_future_cls�r�r
c���t�|��|j�|_|j	|jj
�yr	r;rBs �rr=z BaseFutureInheritanceTests.setUp�rDr
c���|j�}Gd�d|�}||j��}|jtd�5|j	�ddd�y#1swYyxYw)Nc��eZdZd�Zy)�QBaseFutureInheritanceTests.test_inherit_without_calling_super_init.<locals>.MyFutc��yr	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?rsrtr{)rrSr�r�s    r�'test_inherit_without_calling_super_initzBBaseFutureInheritanceTests.test_inherit_without_calling_super_init�s`���"�"�$��	�C�	�
����#��
�
#�
#��/�
�	�
�L�L�N�		�	�	�s�A�A()r5r6r7r�r=r�rNrOs@rr�r��s���"�)�
r
r�c��eZdZd�Zy)�PyFutureInheritanceTestsc�"�tjSr	)rrwrs rr�z(PyFutureInheritanceTests._get_future_cls�s��� � � r
N�r5r6r7r�rr
rr�r��s��!r
r�c��eZdZd�Zy)�CFutureInheritanceTestsc�"�tjSr	)rrirs rr�z'CFutureInheritanceTests._get_future_cls�s�����r
Nr�rr
rr�r��s�� r
r��__main__))�__doc__�concurrent.futuresr
rbr�r-r�unittestr�typesrr
rrZ�test.test_asynciorr�rxrrrrrr�TestCaser9rQ�
skipUnlessr�rkrorvryr�r�r�r�r�r�r5�mainrr
r�<module>r�s����	�	�
��������1��(�
�	�	�0�0�f�
�#�#��$K#�K#�\����W�W�j�1�5�7�#�?�J�$7�$7�#�7�#�����W�W�j�1�5�7��o�z�':�':��7���O�Z�%8�%8��U)�U)�p����W�W�j�1�5�7�0�:�)�2�2�0�7�0�����W�W�j�1�5�7�*�"=�",�"5�"5�*�7�*�1� ;� *� 3� 3�1���6!�9�)�2�2�!�����W�W�j�1�5�7� �8�(�1�1� �7� ��z���H�M�M�O�r