Your IP : 216.73.216.213


Current Path : /opt/alt/python36/lib64/python3.6/test/test_asyncio/__pycache__/
Upload File :
Current File : //opt/alt/python36/lib64/python3.6/test/test_asyncio/__pycache__/test_futures.cpython-36.pyc

3

� f�W�@spdZddlZddlZddlZddlZddlZddlZddlmZddl	Z	ddl	m
Z
ddl	mZyddlm
Z
Wn ek
r�ddl	mZ
YnXdd	�Zd
d�Zdd
�ZGdd�d�ZGdd�de
j�ZGdd�d�Zejeed�d�Gdd�dee
j��ZGdd�dee
j�ZGdd�d�Zejeed�d�Gdd�dee
j��ZGdd�dee
j�Zed k�rlej�dS)!zTests for futures.py.�N)�mock)�
test_utils)�futures)�support)�test_supportcCs|S)N�)�frr�C/opt/alt/python36/lib64/python3.6/test/test_asyncio/test_futures.py�	_fakefuncsr
cCsdS)Nrrrrr	�first_cbsrcCsdS)Nrrrrr	�last_cbsrc@s\eZdZdZdZdZdZdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�ZdS)�
DuckFutureFNcCs|j�rdSd|_dS)NFT)�done�_DuckFuture__cancelled)�selfrrr	�cancel)szDuckFuture.cancelcCs|jS)N)r)rrrr	�	cancelled/szDuckFuture.cancelledcCs|jp|jdk	p|jdk	S)N)r�_DuckFuture__result�_DuckFuture__exception)rrrr	r2s
zDuckFuture.donecCs$|j�st�|jdk	r|j�|jS)N)r�AssertionErrorrr)rrrr	�result7s
zDuckFuture.resultcCs|j�st�|jS)N)rrr)rrrr	�	exception=szDuckFuture.exceptioncCs$|j�st�|dk	st�||_dS)N)rrr)rrrrr	�
set_resultAszDuckFuture.set_resultcCs$|j�st�|dk	st�||_dS)N)rrr)rrrrr	�
set_exceptionFszDuckFuture.set_exceptionccs(|j�sd|_|V|j�s t�|j�S)NT)r�_asyncio_future_blockingrr)rrrr	�__iter__Ks
zDuckFuture.__iter__)�__name__�
__module__�__qualname__rrrrrrrrrrrrrrrr	r
 sr
cs,eZdZ�fdd�Zdd�Zdd�Z�ZS)�	DuckTestscs&t�j�|j�|_|j|jj�dS)N)�super�setUp�
new_test_loop�loop�
addCleanup�close)r)�	__class__rr	r!Us

zDuckTests.setUpcCs t�}tj|�}||kst�dS)N)r
�asyncio�wrap_futurer)rr�grrr	�test_wrap_futureZs
zDuckTests.test_wrap_futurecCs t�}tj|�}||kst�dS)N)r
r'Z
ensure_futurer)rrr)rrr	�test_ensure_future_s
zDuckTests.test_ensure_future)rrrr!r*r+�
__classcell__rr)r&r	rSsrcs|eZdZdd�Z�fdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zejd�d d!��Zejd�d"d#��Zejd�d$d%��Zejd�d&d'��Zejd�d(d)��Zejd�d*d+��Zejd�d,d-��Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Z ejd�d:d;��Z!d<d=�Z"d>d?�Z#d@dA�Z$dBdC�Z%dDdE�Z&dFdG�Z'�Z(S)H�BaseFutureTestscOs|j||�S)N)�cls)r�args�kwargsrrr	�_new_futuregszBaseFutureTests._new_futurecs&t�j�|j�|_|j|jj�dS)N)r r!r"r#r$r%)r)r&rr	r!js

zBaseFutureTests.setUpcCs�Gdd�d�}|jtj|��|jtj|���|jtjd��|jtjtj���|j|jd�}|jtj|��|jtjt|���|jtjtjt|����|j	�dS)Nc@seZdZdZdd�ZdS)z/BaseFutureTests.test_isfuture.<locals>.MyFutureNcSs
d|_dS)NF)r)rrrr	�__init__ssz8BaseFutureTests.test_isfuture.<locals>.MyFuture.__init__)rrrrr2rrrr	�MyFuturepsr3�)r#)
�assertFalser'�isfuture�
assertTruerZMockr1r#�typer)rr3rrrr	�
test_isfutureoszBaseFutureTests.test_isfuturecCsD|j|jd�}|j|j��|j|j��|j�|j|j��dS)N)r#)r1r#r5rrrr7)rrrrr	�test_initial_state�s
z"BaseFutureTests.test_initial_statecCs(tj|j�|j�}|j|j|j�dS)N)r'Zset_event_loopr#r1�assertIs�_loop)rrrrr	�"test_init_constructor_default_loop�sz2BaseFutureTests.test_init_constructor_default_loopcCs|jt|jd�dS)N�*)�assertRaises�	TypeErrorr1)rrrr	�test_constructor_positional�sz+BaseFutureTests.test_constructor_positionalc6Cs|jj|j|jd�}|jtj|j�|jj|j|jd�}|jtj|j�|jj|j|jd�}|jtt	f��|j
d�WdQRX|jj|j|jd�}|jtt	f��|jt�WdQRX|jj|j|jd�}|jtt	f��|j
�WdQRX|jj|j|jd�}|jtt	f��|jdd��WdQRX|jj|j|jd�}|jtt	f��|jdd��WdQRX|jj|j|jd�}|jtt	f��|j�WdQRX|jj|j|jd�}yt|�Wnt	k
�r�YnX|jj|j|jd�}|j�|j�t|�dS)N)r#cSsdS)Nr)rrrr	�<lambda>�sz4BaseFutureTests.test_uninitialized.<locals>.<lambda>cSsdS)Nr)rrrr	rB�s)r.�__new__r#r?r'�InvalidStateErrorrr�RuntimeError�AttributeErrorrr�	Exceptionr�add_done_callback�remove_done_callbackZ_schedule_callbacks�reprrr�iter)r�futrrr	�test_uninitialized�s>z"BaseFutureTests.test_uninitializedcCs�|j|jd�}|j|j��|j|j��|j|j��|jtj|j	�|jtj|j
�|jtj|jd�|jtj|j
d�|j|j��dS)N)r#)r1r#r7rrrr?r'ZCancelledErrorrrrDrrr5)rrrrr	�test_cancel�szBaseFutureTests.test_cancelcCs�|j|jd�}|jtj|j�|jd�|j|j��|j	|j
��|j|j�d�|j|j�d�|jtj|jd�|jtj|j
d�|j|j��dS)N)r#r>)r1r#r?r'rDrrr5rr7r�assertEqualrrr)rrrrr	�test_result�s
zBaseFutureTests.test_resultcCs�t�}|j|jd�}|jtj|j�|jtd|j	t
�|j	|�|j|j��|j
|j��|jt|j�|j|j�|�|jtj|jd�|jtj|j	d�|j|j��dS)N)r#z!StopIteration .* cannot be raised)rEr1r#r?r'rDrZassertRaisesRegexr@r�
StopIterationr5rr7rrrOrr)r�excrrrr	�test_exception�s

zBaseFutureTests.test_exceptioncCs,|j|jd�}|jt�|j|j�t�dS)N)r#)r1r#rrE�assertIsInstancer)rrrrr	�test_exception_class�s
z$BaseFutureTests.test_exception_classcsn|j|jd���fdd�}|�}|jt|�d�|jt|����jd�|jt|�d�|jt|�d	�dS)
N)r#c3s2dV�EdH}d|fV�EdH}d|fVdS)N�A�B�Cr)�x�y)rrr	�fixture�s



z6BaseFutureTests.test_yield_from_twice.<locals>.fixturerVr>rWrX)rWr>)rXr>)r1r#rO�nextr)rr[r)r)rr	�test_yield_from_twice�s
z%BaseFutureTests.test_yield_from_twicecCs4|jjd�|j|jd�}|jd}|jt|�d|d|df�|j�|jjd�|j|jd�}|jt|�d�|j�|j|jd�}|j�|jt|�d�|j|jd�}|jd	�|jt|�d
�|j|j�d	�t	�}|j|jd�}|j
|�|jt|�d�|j|j�|�dd
�}|j|jd�}	|	j
t�|t�}
|jt|	�d|
�|	j�|jt|	�d�|j|jd�}|j
t�|j
t�|t�}|t�}
|jt|�d||
f�|j|jd�}|j
t�xtd�D]}|j
t��q�W|j
t�d||
f}|jt|�d|�|j�|jt|�d�dS)NT)r#r4z!<Future pending created at %s:%s>rFz<Future pending>z<Future cancelled>�z<Future finished result=4>z*<Future finished exception=RuntimeError()>cSs(tj|�\}}d|j||f}tj|�S)Nz
%s() at %s:%s)rZget_function_sourcer�re�escape)�func�filename�lineno�textrrr	�	func_reprsz3BaseFutureTests.test_future_repr.<locals>.func_reprz<Future pending cb=\[%s\]>z<Future pending cb=\[%s, %s\]>�z%s, <8 more>, %s���)r#�	set_debugr1�_source_tracebackrOrJrrrrErr;rrHr
�assertRegexrr�range)rZf_pending_debug�frameZ	f_pending�f_cancelledZf_resultrR�f_exceptionreZf_one_callbacksZ	fake_reprZf_two_callbacksZ
first_reprZ	last_reprZf_many_callbacks�iZcb_regexrrr	�test_future_repr�sh
















z BaseFutureTests.test_future_reprcCs�ddlm}|j|jd�}|jd�|j|jd�}|||�|j|j��|j|j�d�|j|jd�}|j	t
��|j|jd�}|||�|j|j��|jt
|j�|j|jd�}|j�|j|jd�}|||�|j|j
��dS)Nr)�_copy_future_state)r#�
)Zasyncio.futuresrqr1r#rr7rrOrrrEr?rr)rrqrZnewfrnZnewf_exceptionrmZnewf_cancelledrrr	�test_copy_state9s$



zBaseFutureTests.test_copy_statecs>|j|jd���fdd���fdd�}|jt|��j�dS)N)r#c3s�EdHdS)Nrr)rLrr	�coroVsz'BaseFutureTests.test_iter.<locals>.corocs��\}}dS)Nr)Zarg1Zarg2)rtrr	�testYsz'BaseFutureTests.test_iter.<locals>.test)r1r#r?rr)rrur)rtrLr	�	test_iterSs
zBaseFutureTests.test_iterzasyncio.base_events.loggercCs"|j|jd�}~|j|jj�dS)N)r#)r1r#r5�error�called)r�m_logrLrrr	�test_tb_logger_abandoned_sz(BaseFutureTests.test_tb_logger_abandonedcCs6|j|jd�}|jt��|j�~|j|jj�dS)N)r#)r1r#rrGrr5rwrx)rryrLrrr	�&test_tb_logger_not_called_after_canceles
z6BaseFutureTests.test_tb_logger_not_called_after_cancelcCs,|j|jd�}|jd�~|j|jj�dS)N)r#r>)r1r#rr5rwrx)rryrLrrr	�!test_tb_logger_result_unretrievedms
z1BaseFutureTests.test_tb_logger_result_unretrievedcCs4|j|jd�}|jd�|j�~|j|jj�dS)N)r#r>)r1r#rrr5rwrx)rryrLrrr	�test_tb_logger_result_retrievedts

z/BaseFutureTests.test_tb_logger_result_retrievedcCsD|j|jd�}|jtd��~tj|j�tj�|j|j	j
�dS)N)r#�boom)r1r#rrEr�run_brieflyr�
gc_collectr7rwrx)rryrLrrr	�$test_tb_logger_exception_unretrieved|sz4BaseFutureTests.test_tb_logger_exception_unretrievedcCs8|j|jd�}|jtd��|j�~|j|jj�dS)N)r#r~)r1r#rrErr5rwrx)rryrLrrr	�"test_tb_logger_exception_retrieved�s
z2BaseFutureTests.test_tb_logger_exception_retrievedcCs>|j|jd�}|jtd��|jt|j�~|j|jj�dS)N)r#r~)	r1r#rrEr?rr5rwrx)rryrLrrr	�)test_tb_logger_exception_result_retrieved�s
z9BaseFutureTests.test_tb_logger_exception_result_retrievedcCs|dd�}tjjd�}|j|d�}tj||jd�}|jj|�\}}|jtj	|��|j
|d�|j|tj
��|jdd�dS)NcSs|tj�fS)N)�	threading�	get_ident)�argrrr	�run�sz-BaseFutureTests.test_wrap_future.<locals>.runr4�oi)r#T)�wait)�
concurrentr�ThreadPoolExecutor�submitr'r(r#Zrun_until_completer7r6rOZassertNotEqualr�r��shutdown)rr��ex�f1�f2�resZidentrrr	r*�sz BaseFutureTests.test_wrap_futurecCs(|j|jd�}tj|�}|j||�dS)N)r#)r1r#r'r(r;)rr�r�rrr	�test_wrap_future_future�s
z'BaseFutureTests.test_wrap_future_futurec
sntjd��Z}�fdd�|_dd�}tjjd�}|j|d�}tj|�}�j	�j
|j�|jdd	�WdQRXdS)
Nzasyncio.futures.eventscs�jS)N)r#r)rrr	rB�szBBaseFutureTests.test_wrap_future_use_global_loop.<locals>.<lambda>cSs|tj�fS)N)r�r�)r�rrr	r��sz=BaseFutureTests.test_wrap_future_use_global_loop.<locals>.runr4r�T)r�)
r�patchZget_event_loopr�rr�r�r'r(r;r#r<r�)rZeventsr�r�r�r�r)rr	� test_wrap_future_use_global_loop�s
z0BaseFutureTests.test_wrap_future_use_global_loopcCsNtjj�}tj||jd�}|j�tj|j�|j	|j
��|j	|j
��dS)N)r#)r�r�Futurer'r(r#rrrr7r)rr�r�rrr	�test_wrap_future_cancel�s
z'BaseFutureTests.test_wrap_future_cancelcCshtjj�}tj||jd�}|jd�|j�tj	|j�|j
|j��|j|j
�d�|j|j��dS)N)r#r>)r�rr�r'r(r#rrrrr5rrOrr7)rr�r�rrr	�test_wrap_future_cancel2�s

z(BaseFutureTests.test_wrap_future_cancel2cCsZ|jjd�|j|jd�}tj�jd}|j|jt�|j	|jddd�t
|df�dS)NT)r#r4���test_future_source_traceback���)r#rhr1�sys�	_getframe�f_linenorTri�listrO�__file__)r�futurercrrr	r��sz,BaseFutureTests.test_future_source_tracebackc	Cs�|jj|�dd�}|�}|j|jd�}|j|�d}tj|j�tj�tj	dkr|d}t
|�||jf}|jj
tj|d�nd}|jj
tjd	d�|jjd
d
}|j|tj|tj��dS)NcSs0y
t��Wn tk
r*}z|Sd}~XnXdS)N)�MemoryError�
BaseException)rRrrr	�memory_error�s
zLBaseFutureTests.check_future_exception_never_retrieved.<locals>.memory_error)r#r�r^z'^Future exception was never retrieved\n)�exc_infoz,^Future/Task exception was never retrieved\nFr)r�r^)r#rhr1rrrrr�r��version_infor8�
__traceback__rwZassert_called_once_withr�ANY�	call_argsrjr_�compile�DOTALL)	r�debugryr�rRr�Zregexr��messagerrr	�&check_future_exception_never_retrieved�s 

z6BaseFutureTests.check_future_exception_never_retrievedcCs|jd�dS)NF)r�)rrrr	�%test_future_exception_never_retrieved�sz5BaseFutureTests.test_future_exception_never_retrievedcCs|jd�dS)NT)r�)rrrr	�+test_future_exception_never_retrieved_debug�sz;BaseFutureTests.test_future_exception_never_retrieved_debugcCs4|j|jd�}|j�tj|d�|j|j��dS)N)r#r�)r1r#rrZ_set_result_unless_cancelledr7r)rrLrrr	� test_set_result_unless_cancelled�sz0BaseFutureTests.test_set_result_unless_cancelledcCsz|j|jd�}|jd�|j�}d}y|jd�Wn,tk
r^}z|jd}WYdd}~XnX|jd�|j|d�dS)N)r#r4r�rzStopIteration was expected)r4r�)r4r�)	r1r#rr�sendrQr/ZfailrO)rrL�firr�rrr	�test_future_stop_iteration_args�s

z/BaseFutureTests.test_future_stop_iteration_argscCs\|j|jd�}t|�}|jt|jttd�d�|jt|jtd�td��|jt|jt�dS)N)r#Zelephant� )r1r#rKr?r@�throwrGr�)rrLr�rrr	�test_future_iter_throws

z&BaseFutureTests.test_future_iter_throwcCs>Gdd�d�}x*td�D]}|j|jd�}|j|��qWdS)Nc@seZdZdd�ZdS)z5BaseFutureTests.test_future_del_collect.<locals>.EvilcSstj�dS)N)�gcZcollect)rrrr	�__del__sz=BaseFutureTests.test_future_del_collect.<locals>.Evil.__del__N)rrrr�rrrr	�Evil
sr��d)r#)rkr1r#r)rr�rorLrrr	�test_future_del_collectsz'BaseFutureTests.test_future_del_collect))rrrr1r!r9r:r=rArMrNrPrSrUr]rprsrvrr�rzr{r|r}r�r�r�r*r�r�r�r�r�r�r�r�r�r�r�r�r,rr)r&r	r-esF!
A	


	r-�_CFuturezrequires the C _asyncio modulec@seZdZeed�ZdS)�CFutureTestsr�N)rrr�getattrrr.rrrr	r�sr�c@seZdZejZdS)�
PyFutureTestsN)rrrr�	_PyFuturer.rrrr	r�sr�csdeZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Z�Z
S)�BaseFutureDoneCallbackTestscst�j�|j�|_dS)N)r r!r"r#)r)r&rr	r!"s
z!BaseFutureDoneCallbackTests.setUpcCstj|j�dS)N)rrr#)rrrr	r&sz'BaseFutureDoneCallbackTests.run_brieflycs��fdd�}|S)Ncs�j��dS)N)�append)r�)�bag�thingrr	�bag_appender+sz@BaseFutureDoneCallbackTests._make_callback.<locals>.bag_appenderr)rr�r�r�r)r�r�r	�_make_callback)sz*BaseFutureDoneCallbackTests._make_callbackcCst�dS)N)�NotImplementedError)rrrr	r1/sz'BaseFutureDoneCallbackTests._new_futurecCsrg}|j�}|j|j|d��|j|j|d��|j|g�|jd�|j�|j|ddg�|j|j�d�dS)Nr>��foo)r1rHr�rOrrr)rr�rrrr	�$test_callbacks_invoked_on_set_result2s
z@BaseFutureDoneCallbackTests.test_callbacks_invoked_on_set_resultcCsdg}|j�}|j|j|d��|j|g�t�}|j|�|j�|j|dg�|j|j�|�dS)Nr�)r1rHr�rOrErrr)rr�rrRrrr	�'test_callbacks_invoked_on_set_exception@s
zCBaseFutureDoneCallbackTests.test_callbacks_invoked_on_set_exceptioncCs�g}|j�}|j|d�}|j|d�}|j|d�}|j|�|j|�|j|j|�d�|j|j|�d�|j|�xtd�D]}|j|�q|W|j|j|�d�|j|g�|jd�|j�|j|dg�|j|j�d�dS)Nr4r�r�r��r�)	r1r�rHrOrIrkrrr)rr�rZcb1Zcb2Zcb3rorrr	�test_remove_done_callbackNs$



z5BaseFutureDoneCallbackTests.test_remove_done_callbackcsP|j���jt�xtd�D]}�jt�qWG�fdd�d�}�j|��dS)N�?cseZdZ�fdd�ZdS)zRBaseFutureDoneCallbackTests.test_remove_done_callbacks_list_mutation.<locals>.evilcs�jt�dS)NF)rI�id)r�other)rLrr	�__eq__ys
zYBaseFutureDoneCallbackTests.test_remove_done_callbacks_list_mutation.<locals>.evil.__eq__N)rrrr�r)rLrr	�evilxsr�)r1rH�strrkr�rI)r�_r�r)rLr	�(test_remove_done_callbacks_list_mutationos
zDBaseFutureDoneCallbackTests.test_remove_done_callbacks_list_mutationcCsHdd�}|j�}|j|�|jt�|jt�|jd�tj|j�dS)NcSs|jt�dS)N)rIr�)rrrr	�mut�szPBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_1.<locals>.mutr4)r1rHr�rrrr#)rr�rLrrr	�'test_schedule_callbacks_list_mutation_1s



zCBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_1cs\|j���jt�xtd�D]}�jt�qWd�d�G���fdd�d�}�j|��dS)Nr�r�rcseZdZ���fdd�ZdS)zQBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_2.<locals>.evilcs�d7���kr�jt�dS)Nr4F)rHr�)rr�)�	extra_cbsrL�
max_extra_cbsrr	r��s
zXBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_2.<locals>.evil.__eq__N)rrrr�r)r�rLr�rr	r��sr�)r1rHr�rkr�rI)rr�r�r)r�rLr�r	�'test_schedule_callbacks_list_mutation_2�s
zCBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_2)rrrr!rr�r1r�r�r�r�r�r�r,rr)r&r	r� s!
r�c@seZdZdd�ZdS)�CFutureDoneCallbackTestscCstj|jd�S)N)r#)rr�r#)rrrr	r1�sz$CFutureDoneCallbackTests._new_futureN)rrrr1rrrr	r��sr�c@seZdZdd�ZdS)�PyFutureDoneCallbackTestscCstj|jd�S)N)r#)rr�r#)rrrr	r1�sz%PyFutureDoneCallbackTests._new_futureN)rrrr1rrrr	r��sr��__main__) �__doc__Zconcurrent.futuresr�r�r_r�r�Zunittestrr'rrrur�ImportErrorrr
rrr
ZTestCaserr-Z
skipUnless�hasattrr�r�r�r�r�r�mainrrrr	�<module>sJ34