HEX
Server: LiteSpeed
System: Linux server.nevid-deploma.com 4.18.0-553.111.1.lve.el8.x86_64 #1 SMP Fri Mar 13 13:42:17 UTC 2026 x86_64
User: smilepac (1037)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/cppython/lib/python3.8/test/test_asyncio/__pycache__/test_futures.cpython-38.pyc
U

/D�g�i�@s�dZddlZddlZddlZddlZddlZddlZddlmZddl	Z	ddl	m
Z
ddlmZ
ddlmZdd�Zd	d
�Zdd�Zd
d�ZGdd�d�ZGdd�de
j�ZGdd�d�Ze�ee
d�d�Gdd�dee
j��Ze�ee
d�d�Gdd�dee
j��ZGdd�dee
j�ZGdd�d�Ze�ee
d�d�Gdd �d ee
j��Ze�ee
d�d�Gd!d"�d"ee
j��ZGd#d$�d$ee
j�Z Gd%d&�d&�Z!Gd'd(�d(e!e
j�Z"Gd)d*�d*e!e
j�Z#e$d+k�r�e�%�dS),zTests for futures.py.�N)�mock)�futures)�utils)�supportcCst�d�dS�N)�asyncioZset_event_loop_policy�rr�=/opt/cppython/lib/python3.8/test/test_asyncio/test_futures.py�tearDownModulesr
cCs|Srr��frrr	�	_fakefuncsr
cCsdSrrrrrr	�first_cbsrcCsdSrrrrrr	�last_cbsrc@s\eZdZdZdZdZdZdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�ZdS)�
DuckFutureFNcCs|��rdSd|_dS)NFT)�done�_DuckFuture__cancelled��selfrrr	�cancel*szDuckFuture.cancelcCs|jSr)rrrrr	�	cancelled0szDuckFuture.cancelledcCs|jp|jdk	p|jdk	Sr)r�_DuckFuture__result�_DuckFuture__exceptionrrrr	r3s
��zDuckFuture.donecCs"|��rt�|jdk	r|j�|jSr)r�AssertionErrorrrrrrr	�result8s
zDuckFuture.resultcCs|��rt�|jSr)rrrrrrr	�	exception>szDuckFuture.exceptioncCs"|��rt�|dk	st�||_dSr)rrr)rrrrr	�
set_resultBszDuckFuture.set_resultcCs"|��rt�|dk	st�||_dSr)rrr)rrrrr	�
set_exceptionGszDuckFuture.set_exceptionccs(|��sd|_|V|��s t�|��S�NT)r�_asyncio_future_blockingrrrrrr	�__iter__Ls
zDuckFuture.__iter__)�__name__�
__module__�__qualname__rrrrrrrrrrrr rrrr	r!srcs,eZdZ�fdd�Zdd�Zdd�Z�ZS)�	DuckTestscs&t���|��|_|�|jj�dSr��super�setUp�
new_test_loop�loopZ
addCleanup�closer��	__class__rr	r'Vs

zDuckTests.setUpcCs t�}t�|�}||kst�dSr)rr�wrap_futurer�rr�grrr	�test_wrap_future[s
zDuckTests.test_wrap_futurecCs t�}t�|�}||kst�dSr)rrZ
ensure_futurerr.rrr	�test_ensure_future`s
zDuckTests.test_ensure_future)r!r"r#r'r0r1�
__classcell__rrr+r	r$Tsr$cs�eZdZdd�Z�fdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Ze�d!�d"d#��Ze�d!�d$d%��Ze�d!�d&d'��Ze�d!�d(d)��Ze�d!�d*d+��Ze�d!�d,d-��Ze�d!�d.d/��Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Z d:d;�Z!e�d!�d<d=��Z"d>d?�Z#d@dA�Z$dBdC�Z%dDdE�Z&dFdG�Z'dHdI�Z(�Z)S)J�BaseFutureTestscOs|j||�Sr)�cls�r�args�kwargsrrr	�_new_futurehszBaseFutureTests._new_futurecs&t���|��|_|�|jj�dSrr%rr+rr	r'ks

zBaseFutureTests.setUpcCs�Gdd�d�}|�t�|��|�t�|���|�t�d��|�t�t����|j|jd�}|�t�|��|�t�t|���|�t�t�t|����|�	�dS)Nc@seZdZdZdd�ZdS)z/BaseFutureTests.test_isfuture.<locals>.MyFutureNcSs
d|_dS�NF)rrrrr	�__init__tsz8BaseFutureTests.test_isfuture.<locals>.MyFuture.__init__)r!r"r#rr:rrrr	�MyFutureqsr;��r))
�assertFalser�isfuture�
assertTruerZMockr8r)�typer)rr;rrrr	�
test_isfuturepszBaseFutureTests.test_isfuturecCsD|j|jd�}|�|���|�|���|��|�|���dS�Nr=)r8r)r>rrrr@�rrrrr	�test_initial_state�s
z"BaseFutureTests.test_initial_statecCs:t�|j�|��}|�|j|j�|�|��|j�dSr)rZset_event_loopr)r8�assertIs�_loop�get_looprDrrr	�"test_init_constructor_default_loop�sz2BaseFutureTests.test_init_constructor_default_loopcCs|�t|jd�dS)N�*)�assertRaises�	TypeErrorr8rrrr	�test_constructor_positional�sz+BaseFutureTests.test_constructor_positionalc	CsF|jj|j|jd�}|�tj|j�|jj|j|jd�}|�tj|j�|jj|j|jd�}|�tt	f��|�
d�W5QRX|jj|j|jd�}|�tt	f��|�t�W5QRX|jj|j|jd�}|�tt	f��|�
�W5QRX|jj|j|jd�}|�tt	f��|�dd��W5QRX|jj|j|jd�}|�tt	f��|�dd��W5QRX|jj|j|jd�}zt|�Wntt	fk
�r�YnX|jj|j|jd�}z|��Wntk
�r�YnX|jj|j|jd�}zt|�Wntk
�rYnX|jj|j|jd�}|�|���|�|���dS)Nr=cSsdSrrrrrr	�<lambda>��z4BaseFutureTests.test_uninitialized.<locals>.<lambda>cSsdSrrrrrr	rN�rO)r4�__new__r)rKr�InvalidStateErrorrr�RuntimeError�AttributeErrorrr�	Exceptionr�add_done_callback�remove_done_callback�repr�	__await__�iterr>rr�r�futrrr	�test_uninitialized�sJz"BaseFutureTests.test_uninitializedcCs�|j|jd�}|�|���|�|���|�|���|�tj|j	�|�tj|j
�|�tj|jd�|�tj|j
d�|�|���dSrC)r8r)r@rrrrKr�CancelledErrorrrrQrrr>rDrrr	�test_cancel�szBaseFutureTests.test_cancelcCs�|j|jd�}|�tj|j�|�d�|�|���|�	|�
��|�|��d�|�|��d�|�tj|jd�|�tj|j
d�|�|���dS�Nr=rJ)r8r)rKrrQrrr>rr@r�assertEqualrrrrDrrr	�test_result�s
zBaseFutureTests.test_resultcCs�t�}|j|jd�}|�tj|j�|�td|j	t
�|�	|�|�|���|�
|���|�t|j�|�|��|�|�tj|jd�|�tj|j	d�|�|���dS)Nr=z!StopIteration .* cannot be raised)rRr8r)rKrrQr�assertRaisesRegexrLr�
StopIterationr>rr@rrr`rr)r�excrrrr	�test_exception�s�
zBaseFutureTests.test_exceptioncCs,|j|jd�}|�t�|�|��t�dSrC)r8r)rrR�assertIsInstancerrDrrr	�test_exception_class�s
z$BaseFutureTests.test_exception_classcsn|j|jd���fdd�}|�}|�t|�d�|�t|�����d�|�t|�d�|�t|�d�dS)Nr=c3s2dV�EdH}d|fV�EdH}d|fVdS)N�A�B�Cr)�x�yrrr	�fixture�s



z6BaseFutureTests.test_yield_from_twice.<locals>.fixturerhrJ)rirJ)rjrJ)r8r)r`�nextr)rrmr/rrr	�test_yield_from_twice�s
z%BaseFutureTests.test_yield_from_twicec
Cs�|j�d�|j|jd�}|jd}|�t|�d|jj�d|d�d|d�d	��|��|j�d
�|j|jd�}|�t|�d|jj�d��|��|j|jd�}|��|�t|�d|jj�d��|j|jd�}|�	d
�|�t|�d|jj�d��|�|�
�d
�t�}|j|jd�}|�|�|�t|�d|jj�d��|�
|��|�dd�}|j|jd�}	|	�t�|t�}
|�t|	�d|jjd|
�|	��|�t|	�d|jj�d��|j|jd�}|�t�|�t�|t�}|t�}
|�t|�d|jjd||
f�|j|jd�}|�t�td�D]}|�t��q<|�t�d||
f}|�t|�d|jjd|�|��|�t|�d|jj�d��dS)NTr=����<z pending created at r�:r<�>Fz	 pending>z cancelled>�z finished result=4>z# finished exception=RuntimeError()>cSs(t�|�\}}d|j||f}t�|�S)Nz
%s() at %s:%s)�
test_utilsZget_function_sourcer#�re�escape)�func�filename�lineno�textrrr	�	func_repr-sz3BaseFutureTests.test_future_repr.<locals>.func_reprz pending cb=\[%s\]>z pending cb=\[%s, %s\]>�z%s, <8 more>, %s)r)�	set_debugr8�_source_tracebackr`rWr4r!rrrrRrrFrrUr
�assertRegexrr�range)rZf_pending_debug�frameZ	f_pending�f_cancelledZf_resultrd�f_exceptionr|Zf_one_callbacksZ	fake_reprZf_two_callbacksZ
first_reprZ	last_reprZf_many_callbacks�iZcb_regexrrr	�test_future_repr
s�
"�
�
�
�
�


��

�
�z BaseFutureTests.test_future_reprcCs�ddlm}|j|jd�}|�d�|j|jd�}|||�|�|���|�|��d�|j|jd�}|�	t
��|j|jd�}|||�|�|���|�t
|j�|j|jd�}|��|j|jd�}|||�|�|�
��dS)Nr)�_copy_future_stater=�
)Zasyncio.futuresr�r8r)rr@rr`rrrRrKrr)rr�rZnewfr�Znewf_exceptionr�Znewf_cancelledrrr	�test_copy_stateRs$



zBaseFutureTests.test_copy_statec	sP|j|jd���fdd���fdd�}|�td��|�W5QRX���dS)Nr=c3s�EdHdSrrr�r[rr	�coroosz'BaseFutureTests.test_iter.<locals>.corocs��\}}dSrr)Zarg1Zarg2)r�rr	�testrsz'BaseFutureTests.test_iter.<locals>.testzawait wasn't used)r8r)rbrRr)rr�r)r�r[r	�	test_iterlszBaseFutureTests.test_iterc	Cs0|j|jd�}|�td��d|_W5QRXdS)Nr=zcan only be set to FalseT)r8r)rb�
ValueError�_log_tracebackrZrrr	�test_log_tracebackysz"BaseFutureTests.test_log_tracebackzasyncio.base_events.loggercCs"|j|jd�}~|�|jj�dSrC)r8r)r>�error�called�r�m_logr[rrr	�test_tb_logger_abandoned~sz(BaseFutureTests.test_tb_logger_abandonedcCs6|j|jd�}|�t��|��~|�|jj�dSrC)r8r)rrTrr>r�r�r�rrr	�&test_tb_logger_not_called_after_cancel�s
z6BaseFutureTests.test_tb_logger_not_called_after_cancelcCs,|j|jd�}|�d�~|�|jj�dSr_)r8r)rr>r�r�r�rrr	�!test_tb_logger_result_unretrieved�s
z1BaseFutureTests.test_tb_logger_result_unretrievedcCs4|j|jd�}|�d�|��~|�|jj�dSr_)r8r)rrr>r�r�r�rrr	�test_tb_logger_result_retrieved�s

z/BaseFutureTests.test_tb_logger_result_retrievedcCsD|j|jd�}|�td��~t�|j�t��|�|j	j
�dS�Nr=Zboom)r8r)rrRru�run_brieflyr�
gc_collectr@r�r�r�rrr	�$test_tb_logger_exception_unretrieved�sz4BaseFutureTests.test_tb_logger_exception_unretrievedcCs8|j|jd�}|�td��|��~|�|jj�dSr�)r8r)rrRrr>r�r�r�rrr	�"test_tb_logger_exception_retrieved�s
z2BaseFutureTests.test_tb_logger_exception_retrievedcCs>|j|jd�}|�td��|�t|j�~|�|jj�dSr�)	r8r)rrRrKrr>r�r�r�rrr	�)test_tb_logger_exception_result_retrieved�s
z9BaseFutureTests.test_tb_logger_exception_result_retrievedcCs|dd�}tj�d�}|�|d�}tj||jd�}|j�|�\}}|�t�	|��|�
|d�|�|t�
��|jdd�dS)NcSs|t��fSr��	threading�	get_ident��argrrr	�run�sz-BaseFutureTests.test_wrap_future.<locals>.runr<�oir=T��wait)�
concurrentr�ThreadPoolExecutor�submitrr-r)Zrun_until_completer@r?r`ZassertNotEqualr�r��shutdown)rr��ex�f1�f2�res�identrrr	r0�sz BaseFutureTests.test_wrap_futurecCs(|j|jd�}t�|�}|�||�dSrC)r8r)rr-rF�rr�r�rrr	�test_wrap_future_future�s
z'BaseFutureTests.test_wrap_future_futurec	snt�d��Z}�fdd�|_dd�}tj�d�}|�|d�}t�|�}��	�j
|j�|jdd	�W5QRXdS)
Nzasyncio.futures.eventscs�jSrr=rrrr	rN�rOzBBaseFutureTests.test_wrap_future_use_global_loop.<locals>.<lambda>cSs|t��fSrr�r�rrr	r��sz=BaseFutureTests.test_wrap_future_use_global_loop.<locals>.runr<r�Tr�)
r�patchZget_event_loopr�rr�r�rr-rFr)rGr�)r�eventsr�r�r�r�rrr	� test_wrap_future_use_global_loop�s
z0BaseFutureTests.test_wrap_future_use_global_loopcCsNtj��}tj||jd�}|��t�|j�|�	|�
��|�	|�
��dSrC)r�r�Futurerr-r)rrur�r@rr�rrr	�test_wrap_future_cancel�s
z'BaseFutureTests.test_wrap_future_cancelcCshtj��}tj||jd�}|�d�|��t�	|j�|�
|���|�|�
�d�|�|���dSr_)r�rr�rr-r)rrrur�r>rr`rr@r�rrr	�test_wrap_future_cancel2�s

z(BaseFutureTests.test_wrap_future_cancel2cCsZ|j�d�|j|jd�}t��jd}|�|jt�|�	|jddd�t
|df�dS)NTr=r<�����test_future_source_traceback)r)r~r8�sys�	_getframe�f_linenorfr�listr`�__file__)r�futurerzrrr	r��s��z,BaseFutureTests.test_future_source_tracebackc	Cs�|j�|�dd�}|�}|j|jd�}|�|�d}t�|j�t��tj	dkr�d|j
j�d�}t|�||j
f}|jjtj|d�nd}|jjtjd	d�|jjd
d
}|�|t�|tj��dS)Nc
Ss:z
t��Wn*tk
r4}z|WY�Sd}~XYnXdSr)�MemoryError�
BaseException)rdrrr	�memory_error�s
zLBaseFutureTests.check_future_exception_never_retrieved.<locals>.memory_errorr=)r�rt�^z exception was never retrieved
)�exc_infoz,^Future/Task exception was never retrieved\nFr)r)r~r8rrur�rr�r��version_infor4r!rA�
__traceback__r�Zassert_called_once_withr�ANYZ	call_argsr�rv�compile�DOTALL)	r�debugr�r�rdr�Zregexr��messagerrr	�&check_future_exception_never_retrieved�s 

z6BaseFutureTests.check_future_exception_never_retrievedcCs|�d�dSr9�r�rrrr	�%test_future_exception_never_retrieved	sz5BaseFutureTests.test_future_exception_never_retrievedcCs|�d�dSrr�rrrr	�+test_future_exception_never_retrieved_debugsz;BaseFutureTests.test_future_exception_never_retrieved_debugcCs4|j|jd�}|��t�|d�|�|���dS)Nr=�)r8r)rrZ_set_result_unless_cancelledr@rrZrrr	� test_set_result_unless_cancelledsz0BaseFutureTests.test_set_result_unless_cancelledc
Csz|j|jd�}|�d�|��}d}z|�d�Wn,tk
r^}z|jd}W5d}~XYnX|�d�|�|d�dS)Nr=)r<r�rzStopIteration was expected)	r8r)rr �sendrcr6Zfailr`)rr[�firr�rrr	�test_future_stop_iteration_argss

z/BaseFutureTests.test_future_stop_iteration_argscCs\|j|jd�}t|�}|�t|jttd�d�|�t|jtd�td��|�t|jt�dS)Nr=Zelephant� )r8r)rYrKrL�throwrTr�)rr[r�rrr	�test_future_iter_throw"s
�
�z&BaseFutureTests.test_future_iter_throwcCs:Gdd�d�}td�D]}|j|jd�}|�|��qdS)Nc@seZdZdd�ZdS)z5BaseFutureTests.test_future_del_collect.<locals>.EvilcSst��dSr)�gcZcollectrrrr	�__del__-sz=BaseFutureTests.test_future_del_collect.<locals>.Evil.__del__N)r!r"r#r�rrrr	�Evil,sr��dr=)r�r8r)r)rr�r�r[rrr	�test_future_del_collect+sz'BaseFutureTests.test_future_del_collect)*r!r"r#r8r'rBrErIrMr\r^rarergror�r�r�r�rr�r�r�r�r�r�r�r�r0r�r�r�r�r�r�r�r�r�r�r�r�r2rrr+r	r3fsX4
E











	r3�_CFuturezrequires the C _asyncio modulec@s8eZdZz
ejZWnek
r*dZYnXdd�ZdS)�CFutureTestsNc	CsF|j|jd�}|�t��
|`W5QRX|�t��
|`W5QRXdSrC)r8r)rKrSrr�rZrrr	�test_future_del_segfault=s
z%CFutureTests.test_future_del_segfault)r!r"r#rr�r4rSr�rrrr	r�5s


r�c@s@eZdZzGdd�dej�ZeZWnek
r:dZYnXdS)�CSubFutureTestsc@seZdZdS)zCSubFutureTests.CSubFutureN�r!r"r#rrrr	�
CSubFutureIsr�N)r!r"r#rr�r�r4rSrrrr	r�Es
r�c@seZdZejZdS)�
PyFutureTestsN)r!r"r#r�	_PyFuturer4rrrr	r�Qsr�cs|eZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Z�ZS)�BaseFutureDoneCallbackTestscst���|��|_dSr)r&r'r(r)rr+rr	r'Ws
z!BaseFutureDoneCallbackTests.setUpcCst�|j�dSr)rur�r)rrrr	r�[sz'BaseFutureDoneCallbackTests.run_brieflycs��fdd�}|S)Ncs����dSr)�append)r���bag�thingrr	�bag_appender`sz@BaseFutureDoneCallbackTests._make_callback.<locals>.bag_appenderr)rr�r�r�rr�r	�_make_callback^sz*BaseFutureDoneCallbackTests._make_callbackcCst�dSr��NotImplementedErrorrrrr	r8dsz'BaseFutureDoneCallbackTests._new_futurecCs�g}|��}|�|d�}|�|d�}|�|d�}|�|�|�|�|�|�|�|�|�|�|�|g�|�d�|��|�|ddg�|�|��d�dS�NrJ�r��foo�r8r�rUrVr`rr�r�rr�r�cb1�cb2�cb3rrr	�$test_callbacks_remove_first_callbackgs





z@BaseFutureDoneCallbackTests.test_callbacks_remove_first_callbackcCs�g}|��}|�|d�}|�|d�}|�|d�}|�|�|�|�|�|�|�|�|�|�|�|�|�|g�|�d�|��|�|dg�|�|��d�dSr�r�r�rrr	�/test_callbacks_remove_first_and_second_callback~s 






zKBaseFutureDoneCallbackTests.test_callbacks_remove_first_and_second_callbackcCs�g}|��}|�|d�}|�|d�}|�|d�}|�|�|�|�|�|�|�|�|�|�|�|g�|�d�|��|�|ddg�|�|��d�dSr�r�r�rrr	�$test_callbacks_remove_third_callback�s





z@BaseFutureDoneCallbackTests.test_callbacks_remove_third_callbackcCsrg}|��}|�|�|d��|�|�|d��|�|g�|�d�|��|�|ddg�|�|��d�dS)NrJr�r�)r8rUr�r`rr�r)rr�rrrr	�$test_callbacks_invoked_on_set_result�s
z@BaseFutureDoneCallbackTests.test_callbacks_invoked_on_set_resultcCsdg}|��}|�|�|d��|�|g�t�}|�|�|��|�|dg�|�|��|�dS)Nr�)r8rUr�r`rRrr�r)rr�rrdrrr	�'test_callbacks_invoked_on_set_exception�s
zCBaseFutureDoneCallbackTests.test_callbacks_invoked_on_set_exceptioncCs�g}|��}|�|d�}|�|d�}|�|d�}|�|�|�|�|�|�|�d�|�|�|�d�|�|�td�D]}|�|�qz|�|�|�d�|�|g�|�d�|��|�|dg�|�|��d�dS)Nr<r�r�r��r�)	r8r�rUr`rVr�rr�r)rr�rr�r�r�r�rrr	�test_remove_done_callback�s$



z5BaseFutureDoneCallbackTests.test_remove_done_callbackcsL|�����t�td�D]}��t�qG�fdd�d�}��|��dS)N�?cseZdZ�fdd�ZdS)zRBaseFutureDoneCallbackTests.test_remove_done_callbacks_list_mutation.<locals>.evilcs��t�dSr9)rV�id�r�otherr�rr	�__eq__�s
zYBaseFutureDoneCallbackTests.test_remove_done_callbacks_list_mutation.<locals>.evil.__eq__N�r!r"r#rrr�rr	�evil�sr�r8rU�strr�rrV�r�_rrr�r	�(test_remove_done_callbacks_list_mutation�s
zDBaseFutureDoneCallbackTests.test_remove_done_callbacks_list_mutationcCsHdd�}|��}|�|�|�t�|�t�|�d�t�|j�dS)NcSs|�t�dSr)rVrrrrr	�mut�szPBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_1.<locals>.mutr<)r8rUrrrur�r))rrr[rrr	�'test_schedule_callbacks_list_mutation_1�s



zCBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_1csX|�����t�td�D]}��t�qd�d�G���fdd�d�}��|��dS)Nrr�rcseZdZ���fdd�ZdS)zQBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_2.<locals>.evilcs�d7���kr��t�dS)Nr<F)rUrr�Z	extra_cbsr[Z
max_extra_cbsrr	rs
zXBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_2.<locals>.evil.__eq__Nrrrrr	rsrrr	rrr	�'test_schedule_callbacks_list_mutation_2s
zCBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_2)r!r"r#r'r�r�r8r�r�r�r�r�r�rr
rr2rrr+r	r�Us!
r�c@seZdZdd�ZdS)�CFutureDoneCallbackTestscCstj|jd�SrC�rr�r)rrrr	r8#sz$CFutureDoneCallbackTests._new_futureN�r!r"r#r8rrrr	rsrc@seZdZdd�ZdS)�CSubFutureDoneCallbackTestscCsGdd�dtj�}||jd�S)Nc@seZdZdS)z;CSubFutureDoneCallbackTests._new_future.<locals>.CSubFutureNr�rrrr	r�-sr�r=r)rr�rrr	r8,sz'CSubFutureDoneCallbackTests._new_futureNrrrrr	r'src@seZdZdd�ZdS)�PyFutureDoneCallbackTestscCstj|jd�SrC)rr�r)rrrr	r85sz%PyFutureDoneCallbackTests._new_futureNrrrrr	r2srcs,eZdZdd�Z�fdd�Zdd�Z�ZS)�BaseFutureInheritanceTestscCst�dSrr�rrrr	�_get_future_cls;sz*BaseFutureInheritanceTests._get_future_clscs&t���|��|_|�|jj�dSrr%rr+rr	r'>s

z BaseFutureInheritanceTests.setUpc	CsH|��}Gdd�d|�}||jd�}|�td��|��W5QRXdS)Nc@seZdZdd�ZdS)zQBaseFutureInheritanceTests.test_inherit_without_calling_super_init.<locals>.MyFutc_sdSrrr5rrr	r:HszZBaseFutureInheritanceTests.test_inherit_without_calling_super_init.<locals>.MyFut.__init__N)r!r"r#r:rrrr	�MyFutGsrr=z!Future object is not initialized.)rr)rbrRrH)rr4rr[rrr	�'test_inherit_without_calling_super_initCs�zBBaseFutureInheritanceTests.test_inherit_without_calling_super_init)r!r"r#rr'rr2rrr+r	r9src@seZdZdd�ZdS)�PyFutureInheritanceTestscCstjSr)rr�rrrr	rVsz(PyFutureInheritanceTests._get_future_clsN�r!r"r#rrrrr	rTsrc@seZdZdd�ZdS)�CFutureInheritanceTestscCstjSr)rr�rrrr	r\sz'CFutureInheritanceTests._get_future_clsNrrrrr	rZsr�__main__)&�__doc__�concurrent.futuresr�r�rvr�r�ZunittestrrrZtest.test_asynciorrur�rr
r
rrrZTestCaser$r3Z
skipUnless�hasattrr�r�r�r�rrrrrrr!�mainrrrr	�<module>sp3R��
J����	���