Your IP : 216.73.216.213


Current Path : /opt/alt/python39/lib64/python3.9/test/test_asyncio/__pycache__/
Upload File :
Current File : //opt/alt/python39/lib64/python3.9/test/test_asyncio/__pycache__/test_futures.cpython-39.pyc

a

XC?h.n�@s�dZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddlZddlmZddl
mZddlmZdd	�Zd
d�Zdd
�Zdd�ZGdd�d�ZGdd�dej�ZGdd�d�Ze�eed�d�Gdd�deej��Ze�eed�d�Gdd�deej��ZGdd�deej�ZGdd�d�Ze�eed�d�Gd d!�d!eej��Z e�eed�d�Gd"d#�d#eej��Z!Gd$d%�d%eej�Z"Gd&d'�d'�Z#Gd(d)�d)e#ej�Z$e�eed�d�Gd*d+�d+e#ej��Z%e&d,k�r�e�'�dS)-zTests for futures.py.�N)�mock)�GenericAlias)�futures)�utils)�supportcCst�d�dS�N)�asyncioZset_event_loop_policy�r	r	�C/opt/alt/python39/lib64/python3.9/test/test_asyncio/test_futures.py�tearDownModulesrcCs|Srr	��fr	r	r
�	_fakefuncsrcCsdSrr	r	r	r	r
�first_cbsrcCsdSrr	r	r	r	r
�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��selfr	r	r
�cancel*szDuckFuture.cancelcCs|jSr)rrr	r	r
�	cancelled0szDuckFuture.cancelledcCs|jp|jdup|jduSr)r�_DuckFuture__result�_DuckFuture__exceptionrr	r	r
r3s
��zDuckFuture.donecCs"|��rJ�|jdur|j�|jSr)rrrrr	r	r
�result8s
zDuckFuture.resultcCs|��rJ�|jSr)rrrr	r	r
�	exception>szDuckFuture.exceptioncCs"|��rJ�|dusJ�||_dSr)rr)rrr	r	r
�
set_resultBszDuckFuture.set_resultcCs"|��rJ�|dusJ�||_dSr)rr)rrr	r	r
�
set_exceptionGszDuckFuture.set_exceptionccs(|��sd|_|V|��s J�|��S�NT)r�_asyncio_future_blockingrrr	r	r
�__iter__Ls
zDuckFuture.__iter__)�__name__�
__module__�__qualname__rrrrrrrrrrrr r	r	r	r
r!srcs,eZdZ�fdd�Zdd�Zdd�Z�ZS)�	DuckTestscs&t���|��|_|�|jj�dSr��super�setUp�
new_test_loop�loopZ
addCleanup�closer��	__class__r	r
r'Vs

zDuckTests.setUpcCs t�}t�|�}||usJ�dSr)rr�wrap_future�rr
�gr	r	r
�test_wrap_future[s
zDuckTests.test_wrap_futurecCs t�}t�|�}||usJ�dSr)rrZ
ensure_futurer.r	r	r
�test_ensure_future`s
zDuckTests.test_ensure_future)r!r"r#r'r0r1�
__classcell__r	r	r+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 �Zd!d"�Zd#d$�Zd%d&�Ze�d'�d(d)��Ze�d'�d*d+��Ze�d'�d,d-��Ze�d'�d.d/��Ze�d'�d0d1��Ze�d'�d2d3��Ze�d'�d4d5��Zd6d7�Zd8d9�Z d:d;�Z!d<d=�Z"d>d?�Z#d@dA�Z$e�d'�dBdC��Z%dDdE�Z&dFdG�Z'dHdI�Z(dJdK�Z)dLdM�Z*dNdO�Z+�Z,S)P�BaseFutureTestscOs|j|i|��Sr)�cls�r�args�kwargsr	r	r
�_new_futurehszBaseFutureTests._new_futurecs&t���|��|_|�|jj�dSrr%rr+r	r
r'ks

zBaseFutureTests.setUpcCs*|jt}|�|jtf�|�|t�dSr)r4�str�assertEqual�__args__�assertIsInstancer)r�futurer	r	r
�test_generic_aliasps
z"BaseFutureTests.test_generic_aliascCs�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)rrr	r	r
�__init__ysz8BaseFutureTests.test_isfuture.<locals>.MyFuture.__init__)r!r"r#rr@r	r	r	r
�MyFuturevsrA��r))
�assertFalser�isfuture�
assertTruerZMockr8r)�typer)rrAr
r	r	r
�
test_isfutureuszBaseFutureTests.test_isfuturecCsD|j|jd�}|�|���|�|���|��|�|���dS�NrC)r8r)rDrrrrF�rr
r	r	r
�test_initial_state�s
z"BaseFutureTests.test_initial_statecCs:t�|j�|��}|�|j|j�|�|��|j�dSr)rZset_event_loopr)r8�assertIs�_loop�get_looprJr	r	r
�"test_init_constructor_default_loop�sz2BaseFutureTests.test_init_constructor_default_loopcCs|�t|jd�dS)N�*)�assertRaises�	TypeErrorr8rr	r	r
�test_constructor_positional�sz+BaseFutureTests.test_constructor_positionalc	Cs�|jj|j|jd�}|�tj|j�|jj|j|jd�}|�tj|j�|jj|j|jd�}|�tt	f��|�
d�Wd�n1s�0Y|jj|j|jd�}|�tt	f��|�t�Wd�n1s�0Y|jj|j|jd�}|�tt	f��|�
�Wd�n1�s"0Y|jj|j|jd�}|�tt	f��|�dd��Wd�n1�st0Y|jj|j|jd�}|�tt	f��|�dd��Wd�n1�s�0Y|jj|j|jd�}zt|�Wntt	f�yYn0|jj|j|jd�}z|��Wnt�y>Yn0|jj|j|jd�}zt|�Wnt�ytYn0|jj|j|jd�}|�|���|�|���dS)NrCcSsdSrr	rr	r	r
�<lambda>��z4BaseFutureTests.test_uninitialized.<locals>.<lambda>cSsdSrr	rr	r	r
rT�rU)r4�__new__r)rQr�InvalidStateErrorrr�RuntimeError�AttributeErrorrr�	Exceptionr�add_done_callback�remove_done_callback�repr�	__await__�iterrDrr�r�futr	r	r
�test_uninitialized�sJ(((..z"BaseFutureTests.test_uninitializedcCs�|j|jd�}|�t|d��|�|jd�|�d�|�tj	��|j�
|�Wd�n1sd0Y|�|jd�dS)NrC�_cancel_message�
my message)r8r)rF�hasattrr:rcrrQr�CancelledError�run_until_completerJr	r	r
�!test_future_cancel_message_getter�s
*z1BaseFutureTests.test_future_cancel_message_gettercCsv|j|jd�}|�d�d|_|�|jd�|�tj��|j�|�Wd�n1sZ0Y|�|jd�dS)NrCrdzmy new message)	r8r)rrcr:rQrrfrgrJr	r	r
�!test_future_cancel_message_setter�s
*z1BaseFutureTests.test_future_cancel_message_settercCs�|j|jd�}|�|���|�|���|�|���|�tj|j	�|�tj|j
�|�tj|jd�|�tj|j
d�|�|���dSrI)r8r)rFrrrrQrrfrrrWrrrDrJr	r	r
�test_cancel�szBaseFutureTests.test_cancelcCs�|j|jd�}|�tj|j�|�d�|�|���|�	|�
��|�|��d�|�|��d�|�tj|jd�|�tj|j
d�|�|���dS�NrCrP)r8r)rQrrWrrrDrrFrr:rrrrJr	r	r
�test_result�s
zBaseFutureTests.test_resultcCs�t�}|j|jd�}|�tj|j�|�td|j	t
�|�	|�|�|���|�
|���|�t|j�|�|��|�|�tj|jd�|�tj|j	d�|�|���dS)NrCz!StopIteration .* cannot be raised)rXr8r)rQrrWr�assertRaisesRegexrRr�
StopIterationrDrrFrrr:rr)r�excr
r	r	r
�test_exception�s�
zBaseFutureTests.test_exceptioncCs,|j|jd�}|�t�|�|��t�dSrI)r8r)rrXr<rrJr	r	r
�test_exception_classs
z$BaseFutureTests.test_exception_classcsn|j|jd���fdd�}|�}|�t|�d�|�t|�����d�|�t|�d�|�t|�d�dS)NrCc3s2dV�EdH}d|fV�EdH}d|fVdS)N�A�B�Cr	)�x�yrr	r
�fixtures



z6BaseFutureTests.test_yield_from_twice.<locals>.fixturerrrP)rsrP)rtrP)r8r)r:�nextr)rrwr/r	rr
�test_yield_from_twices
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)NTrC����<z pending created at r�:rB�>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�textr	r	r
�	func_reprGsz3BaseFutureTests.test_future_repr.<locals>.func_reprz pending cb=\[%s\]>z pending cb=\[%s, %s\]>�z%s, <8 more>, %s)r)�	set_debugr8�_source_tracebackr:r]r4r!rrrrXrrLrr[r�assertRegexrr�range)rZf_pending_debug�frameZ	f_pending�f_cancelledZf_resultro�f_exceptionr�Zf_one_callbacksZ	fake_reprZf_two_callbacksZ
first_reprZ	last_reprZf_many_callbacks�iZcb_regexr	r	r
�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_staterC�
)Zasyncio.futuresr�r8r)rrFrr:rrrXrQrr)rr�r
Znewfr�Znewf_exceptionr�Znewf_cancelledr	r	r
�test_copy_statels$



zBaseFutureTests.test_copy_statecsd|j|jd���fdd���fdd�}|�td��|�Wd�n1sN0Y���dS)NrCc3s�EdHdSrr	r	�rar	r
�coro�sz'BaseFutureTests.test_iter.<locals>.corocs��\}}dSrr	)Zarg1Zarg2)r�r	r
�test�sz'BaseFutureTests.test_iter.<locals>.testzawait wasn't used)r8r)rmrXr)rr�r	)r�rar
�	test_iter�s$zBaseFutureTests.test_itercCsD|j|jd�}|�td��d|_Wd�n1s60YdS)NrCzcan only be set to FalseT)r8r)rm�
ValueError�_log_tracebackr`r	r	r
�test_log_traceback�sz"BaseFutureTests.test_log_tracebackzasyncio.base_events.loggercCs"|j|jd�}~|�|jj�dSrI)r8r)rD�error�called�r�m_lograr	r	r
�test_tb_logger_abandoned�sz(BaseFutureTests.test_tb_logger_abandonedcCs6|j|jd�}|�t��|��~|�|jj�dSrI)r8r)rrZrrDr�r�r�r	r	r
�&test_tb_logger_not_called_after_cancel�s
z6BaseFutureTests.test_tb_logger_not_called_after_cancelcCs,|j|jd�}|�d�~|�|jj�dSrk)r8r)rrDr�r�r�r	r	r
�!test_tb_logger_result_unretrieved�s
z1BaseFutureTests.test_tb_logger_result_unretrievedcCs4|j|jd�}|�d�|��~|�|jj�dSrk)r8r)rrrDr�r�r�r	r	r
�test_tb_logger_result_retrieved�s

z/BaseFutureTests.test_tb_logger_result_retrievedcCsD|j|jd�}|�td��~t�|j�t��|�|j	j
�dS�NrCZboom)r8r)rrXr�run_brieflyr�
gc_collectrFr�r�r�r	r	r
�$test_tb_logger_exception_unretrieved�sz4BaseFutureTests.test_tb_logger_exception_unretrievedcCs8|j|jd�}|�td��|��~|�|jj�dSr�)r8r)rrXrrDr�r�r�r	r	r
�"test_tb_logger_exception_retrieved�s
z2BaseFutureTests.test_tb_logger_exception_retrievedcCs>|j|jd�}|�td��|�t|j�~|�|jj�dSr�)	r8r)rrXrQrrDr�r�r�r	r	r
�)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��argr	r	r
�run�sz-BaseFutureTests.test_wrap_future.<locals>.runrB�oirCT��wait)�
concurrentr�ThreadPoolExecutor�submitrr-r)rgrFrEr:ZassertNotEqualr�r��shutdown)rr��ex�f1�f2�resZidentr	r	r
r0�sz BaseFutureTests.test_wrap_futurecCs(|j|jd�}t�|�}|�||�dSrI)r8r)rr-rL�rr�r�r	r	r
�test_wrap_future_future�s
z'BaseFutureTests.test_wrap_future_futurecs�t�d��d}�fdd�|_dd�}tj�d�}|�|d�}t�|�}��	�j
|j�|jdd	�Wd�n1st0YdS)
Nzasyncio.futures.eventscs�jSrrCr	rr	r
rT�rUzBBaseFutureTests.test_wrap_future_use_global_loop.<locals>.<lambda>cSs|t��fSrr�r�r	r	r
r��sz=BaseFutureTests.test_wrap_future_use_global_loop.<locals>.runrBr�Tr�)
r�patchZget_event_loopr�rr�r�rr-rLr)rMr�)rZeventsr�r�r�r�r	rr
� test_wrap_future_use_global_loop�s
z0BaseFutureTests.test_wrap_future_use_global_loopcCsNtj��}tj||jd�}|��t�|j�|�	|�
��|�	|�
��dSrI)r�r�Futurerr-r)rrr�rFrr�r	r	r
�test_wrap_future_cancel�s
z'BaseFutureTests.test_wrap_future_cancelcCshtj��}tj||jd�}|�d�|��t�	|j�|�
|���|�|�
�d�|�|���dSrk)r�rr�rr-r)rrrr�rDrr:rrFr�r	r	r
�test_wrap_future_cancel2�s

z(BaseFutureTests.test_wrap_future_cancel2cCsZ|j�d�|j|jd�}t��jd}|�|jt�|�	|jddd�t
|df�dS)NTrCrB�����test_future_source_traceback)r)r�r8�sys�	_getframe�f_linenor<r��listr:�__file__)rr=r�r	r	r
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
Ss8z
t��Wn(ty2}z|WYd}~Sd}~00dSr)�MemoryError�
BaseException)ror	r	r
�memory_errors
zLBaseFutureTests.check_future_exception_never_retrieved.<locals>.memory_errorrC)r�r~�^z exception was never retrieved
)�exc_infoz,^Future/Task exception was never retrieved\nFr)r)r�r8rrr�rr�r��version_infor4r!rG�
__traceback__r�Zassert_called_once_withr�ANYZ	call_argsr�r��compile�DOTALL)	r�debugr�r�ror=Zregexr��messager	r	r
�&check_future_exception_never_retrieveds 

z6BaseFutureTests.check_future_exception_never_retrievedcCs|�d�dSr?�r�rr	r	r
�%test_future_exception_never_retrieved#sz5BaseFutureTests.test_future_exception_never_retrievedcCs|�d�dSrr�rr	r	r
�+test_future_exception_never_retrieved_debug&sz;BaseFutureTests.test_future_exception_never_retrieved_debugcCs4|j|jd�}|��t�|d�|�|���dS)NrC�)r8r)rrZ_set_result_unless_cancelledrFrr`r	r	r
� test_set_result_unless_cancelled)sz0BaseFutureTests.test_set_result_unless_cancelledc
Cs||j|jd�}|�d�|��}d}z|�d�Wn.ty`}z|jd}WYd}~nd}~00|�d�|�|d�dS)NrC)rBr�rzStopIteration was expected)	r8r)rr �sendrnr6Zfailr:)rra�firr�r	r	r
�test_future_stop_iteration_args/s
 
z/BaseFutureTests.test_future_stop_iteration_argscCs\|j|jd�}t|�}|�t|jttd�d�|�t|jtd�td��|�t|jt�dS)NrCZelephant� )r8r)r_rQrR�throwrZr�)rrar�r	r	r
�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)�gcZcollectrr	r	r
�__del__Gsz=BaseFutureTests.test_future_del_collect.<locals>.Evil.__del__N)r!r"r#r�r	r	r	r
�EvilFsr��drC)r�r8r)r)rr�r�rar	r	r
�test_future_del_collectEsz'BaseFutureTests.test_future_del_collect)-r!r"r#r8r'r>rHrKrOrSrbrhrirjrlrprqryr�r�r�r�rr�r�r�r�r�r�r�r�r0r�r�r�r�r�r�r�r�r�r�r�r�r2r	r	r+r
r3fs^4

E











	r3�_CFuturezrequires the C _asyncio modulec@s6eZdZz
ejZWney(dZYn0dd�ZdS)�CFutureTestsNcCsn|j|jd�}|�t��|`Wd�n1s20Y|�t��|`Wd�n1s`0YdSrI)r8r)rQrYrr�r`r	r	r
�test_future_del_segfaultWs
"z%CFutureTests.test_future_del_segfault)r!r"r#rr�r4rYr�r	r	r	r
r�Os


r�c@s>eZdZzGdd�dej�ZeZWney8dZYn0dS)�CSubFutureTestsc@seZdZdS)zCSubFutureTests.CSubFutureN�r!r"r#r	r	r	r
�
CSubFuturecsr�N)r!r"r#rr�r�r4rYr	r	r	r
r�_s
r�c@seZdZejZdS)�
PyFutureTestsN)r!r"r#r�	_PyFuturer4r	r	r	r
r�ksr�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+r	r
r'qs
z!BaseFutureDoneCallbackTests.setUpcCst�|j�dSr)rr�r)rr	r	r
r�usz'BaseFutureDoneCallbackTests.run_brieflycs��fdd�}|S)Ncs����dSr)�append)r=��bag�thingr	r
�bag_appenderzsz@BaseFutureDoneCallbackTests._make_callback.<locals>.bag_appenderr	)rr�r�r�r	r�r
�_make_callbackxsz*BaseFutureDoneCallbackTests._make_callbackcCst�dSr��NotImplementedErrorrr	r	r
r8~sz'BaseFutureDoneCallbackTests._new_futurecCs�g}|��}|�|d�}|�|d�}|�|d�}|�|�|�|�|�|�|�|�|�|�|�|g�|�d�|��|�|ddg�|�|��d�dS�NrP�r��foo�r8r�r[r\r:rr�r�rr�r
�cb1�cb2�cb3r	r	r
�$test_callbacks_remove_first_callback�s





z@BaseFutureDoneCallbackTests.test_callbacks_remove_first_callbackcCs�g}|��}|�|d�}|�|d�}|�|d�}|�|�|�|�|�|�|�|�|�|�|�|�|�|g�|�d�|��|�|dg�|�|��d�dSr�r�r�r	r	r
�/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�r	r	r
�$test_callbacks_remove_third_callback�s





z@BaseFutureDoneCallbackTests.test_callbacks_remove_third_callbackcCsrg}|��}|�|�|d��|�|�|d��|�|g�|�d�|��|�|ddg�|�|��d�dS)NrPr�r�)r8r[r�r:rr�r)rr�r
r	r	r
�$test_callbacks_invoked_on_set_result�s
z@BaseFutureDoneCallbackTests.test_callbacks_invoked_on_set_resultcCsdg}|��}|�|�|d��|�|g�t�}|�|�|��|�|dg�|�|��|�dS)Nr�)r8r[r�r:rXrr�r)rr�r
ror	r	r
�'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)NrBr�r�r��r�)	r8r�r[r:r\r�rr�r)rr�r
r�r�r�r�r	r	r
�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�dSr?)r\�id�r�otherr�r	r
�__eq__s
zYBaseFutureDoneCallbackTests.test_remove_done_callbacks_list_mutation.<locals>.evil.__eq__N�r!r"r#rr	r�r	r
�evil
sr
�r8r[r9r�rr\�r�_r
r	r�r
�(test_remove_done_callbacks_list_mutations
zDBaseFutureDoneCallbackTests.test_remove_done_callbacks_list_mutationcCsHdd�}|��}|�|�|�t�|�t�|�d�t�|j�dS)NcSs|�t�dSr)r\r9rr	r	r
�mutszPBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_1.<locals>.mutrB)r8r[r9rrr�r))rrrar	r	r
�'test_schedule_callbacks_list_mutation_1s



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)NrBF)r[rr	�Z	extra_cbsraZ
max_extra_cbsr	r
r.s
zXBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_2.<locals>.evil.__eq__Nrr	rr	r
r
-sr
rrr	rr
�'test_schedule_callbacks_list_mutation_2!s
zCBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_2)r!r"r#r'r�r�r8r�rrrrrrrrr2r	r	r+r
r�os!
r�c@seZdZdd�ZdS)�CFutureDoneCallbackTestscCstj|jd�SrI�rr�r)rr	r	r
r8=sz$CFutureDoneCallbackTests._new_futureN�r!r"r#r8r	r	r	r
r8src@seZdZdd�ZdS)�CSubFutureDoneCallbackTestscCsGdd�dtj�}||jd�S)Nc@seZdZdS)z;CSubFutureDoneCallbackTests._new_future.<locals>.CSubFutureNr�r	r	r	r
r�Gsr�rCr)rr�r	r	r
r8Fsz'CSubFutureDoneCallbackTests._new_futureNrr	r	r	r
rAsrc@seZdZdd�ZdS)�PyFutureDoneCallbackTestscCstj|jd�SrI)rr�r)rr	r	r
r8Osz%PyFutureDoneCallbackTests._new_futureNrr	r	r	r
rLsrcs,eZdZdd�Z�fdd�Zdd�Z�ZS)�BaseFutureInheritanceTestscCst�dSrr�rr	r	r
�_get_future_clsUsz*BaseFutureInheritanceTests._get_future_clscs&t���|��|_|�|jj�dSrr%rr+r	r
r'Xs

z BaseFutureInheritanceTests.setUpcCs\|��}Gdd�d|�}||jd�}|�td��|��Wd�n1sN0YdS)Nc@seZdZdd�ZdS)zQBaseFutureInheritanceTests.test_inherit_without_calling_super_init.<locals>.MyFutc_sdSrr	r5r	r	r
r@bszZBaseFutureInheritanceTests.test_inherit_without_calling_super_init.<locals>.MyFut.__init__N)r!r"r#r@r	r	r	r
�MyFutasrrCz!Future object is not initialized.)rr)rmrXrN)rr4rrar	r	r
�'test_inherit_without_calling_super_init]s�zBBaseFutureInheritanceTests.test_inherit_without_calling_super_init)r!r"r#rr'rr2r	r	r+r
rSsrc@seZdZdd�ZdS)�PyFutureInheritanceTestscCstjSr)rr�rr	r	r
rpsz(PyFutureInheritanceTests._get_future_clsN�r!r"r#rr	r	r	r
rnsrc@seZdZdd�ZdS)�CFutureInheritanceTestscCstjSr)rr�rr	r	r
rxsz'CFutureInheritanceTests._get_future_clsNr r	r	r	r
r!tsr!�__main__)(�__doc__Zconcurrent.futuresr�r�r�r�r�Zunittestr�typesrrrZtest.test_asynciorrr�rrrrrrZTestCaser$r3Z
skipUnlessrer�r�r�r�rrrrrr!r!�mainr	r	r	r
�<module>sx3l��
J����	����