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_queues.cpython-36.opt-1.pyc

3

� f�G�@s�dZddlZddlmZddlZddlmZGdd�dej�ZGdd�de�ZGd	d
�d
e�ZGdd�de�Z	Gd
d�de�Z
Gdd�de�ZGdd�d�ZGdd�dee�Z
Gdd�dee�ZGdd�dee�Zedkr�ej�dS)zTests for queues.py�N)�mock)�
test_utilscseZdZ�fdd�Z�ZS)�_QueueTestBasecst�j�|j�|_dS)N)�super�setUp�
new_test_loop�loop)�self)�	__class__��B/opt/alt/python36/lib64/python3.6/test/test_asyncio/test_queues.pyrs
z_QueueTestBase.setUp)�__name__�
__module__�__qualname__r�
__classcell__rr)r
rr
src@sTeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�QueueBasicTestscs��fdd�}�j|��tj�d�}�j�|�jd��|��tt|���|�k}�j||�tj���fdd��}�j	|��tj���fdd��}�j	|��tj�d�}|j
d	��jd
�|�k�dS)z�Test Queue's repr or str.

        fn is repr or str. expect_id is True if we expect the Queue's id to
        appear in fn(Queue()).
        c3s.dV}�jd|�dV}�jd|�dVdS)Ng�������?g�������?)�assertAlmostEqual)�when)r	rr�gens
z.QueueBasicTests._test_repr_or_str.<locals>.gen)rz<Queuec3sRtj�d�}tj|j��d�tjd�d�EdH�jd�|�k�|jd�dS)N)rg�������?z_getters[1]r)�asyncio�Queue�Task�get�sleep�
assertTrue�
put_nowait)�q)�fnrr	rr�
add_getter's
z5QueueBasicTests._test_repr_or_str.<locals>.add_getterc3s^tjd�d�}|jd�tj|jd��d�tjd�d�EdH�jd�|�k�|j�dS)N�)�maxsizer�)rg�������?z_putters[1])rrrr�putrr�
get_nowait)r)rrr	rr�
add_putter4s
z5QueueBasicTests._test_repr_or_str.<locals>.add_putterrz
_queue=[1]N)rrrr�
startswith�hex�id�assertEqual�	coroutine�run_until_completer)r	rZ	expect_idrrZ
id_is_presentrr$r)rrr	r�_test_repr_or_strs

z!QueueBasicTests._test_repr_or_strcCsDtj�}tj|d�}|j|j|�tj|jd�}|j|j|j�dS)N)r)rZMockrr�assertIs�_loopr)r	rrrrr�test_ctor_loopFs
zQueueBasicTests.test_ctor_loopcCs(tj|j�tj�}|j|j|j�dS)N)rZset_event_looprrr,r-)r	rrrr�test_ctor_noloopNsz QueueBasicTests.test_ctor_noloopcCs|jtd�dS)NT)r+�repr)r	rrr�	test_reprSszQueueBasicTests.test_reprcCs|jtd�dS)NF)r+�str)r	rrr�test_strVszQueueBasicTests.test_strcCsVtj|jd�}|j|j��|jd�|j|j��|jd|j��|j|j��dS)N)rr)	rrrr�emptyr�assertFalser(r#)r	rrrr�
test_emptyYs
zQueueBasicTests.test_emptycCsHtj|jd�}|j|j��tjd|jd�}|jd�|j|j��dS)N)rr)r r)rrrr5�fullrr)r	rrrr�	test_fullas

zQueueBasicTests.test_fullcsRtj|jd��xdD]}�j|�qW�fdd�td�D�}|jdddg|�dS)N)rr�r!csg|]}�j��qSr)r#)�.0�_)rrr�
<listcomp>nsz.QueueBasicTests.test_order.<locals>.<listcomp>)rr9r!)rrrr�ranger()r	�i�itemsr)rr�
test_orderis

zQueueBasicTests.test_ordercs��fdd�}�j|��tjd�d���jd�j�g�tj��fdd���tj�����fdd��}�j|���jd	�j��dS)
Nc3s.dV}�jd|�dV}�jd|�dVdS)Ng{�G�z�?g{�G�z�?)r)r)r	rrrss
z)QueueBasicTests.test_maxsize.<locals>.genr!)r rc3s0x*td�D]}�j|�EdH�j|�q
WdS)Nr9T)r=r"�append)r>)�
have_been_putrrr�putter�sz,QueueBasicTests.test_maxsize.<locals>.putterc3s�tj���d�}tjd�d�EdH�jddg���jd�j��tjd�d�EdH�jdddg���jd�j���jd�j���j|j���j|j��dS)N)rg{�G�z�?rrr!)rrrr(r#r�done�result)�t)rBrrCrr	rr�test�sz*QueueBasicTests.test_maxsize.<locals>.testg{�G�z�?)	rrrr(r r)r*r�time)r	rrGr)rBrrCrr	r�test_maxsizeqs
zQueueBasicTests.test_maxsizeN)r
rrr+r.r/r1r3r6r8r@rIrrrrrs3rc@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�
QueueGetTestscsHtj|jd���jd�tj�fdd��}|jj|��}|jd|�dS)N)rrc3s�j�EdHS)N)rr)rrr�	queue_get�sz2QueueGetTests.test_blocking_get.<locals>.queue_get)rrrrr)r*r()r	rK�resr)rr�test_blocking_get�s

zQueueGetTests.test_blocking_getcCsptjd|jd�}|jd�tj|jd�}|jj|�|jj|j��}|j	d|�|j
|j��|j|j
��dS)Nr)r)rrrrZFutureZ_puttersrAr*rr(rrDZassertIsNonerE)r	rZwaiterrLrrr�test_get_with_putters�s
z#QueueGetTests.test_get_with_putterscs��fdd�}�j|��tj�d��tj�d��d�tj���fdd���tj������fdd��}�j|��}�jd	|��jd
�j��dS)Nc3sdV}�jd|�dVdS)Ng{�G�z�?)r)r)r	rrr�sz1QueueGetTests.test_blocking_get_wait.<locals>.gen)rFc3s�j��j�EdH}d�|S)NT)�setr)rL)�finishedr�startedrrrK�sz7QueueGetTests.test_blocking_get_wait.<locals>.queue_getc3sP�jd�jd�tj���d�}�j�EdH�j��|EdH}�j��|S)Ng{�G�z�?r)r)�
call_laterrrr�waitr5r)Zqueue_get_taskrL)rPrrrKr	rQrr�	queue_put�s


z7QueueGetTests.test_blocking_get_wait.<locals>.queue_putrg{�G�z�?)	rrr�Eventr)r*r(rrH)r	rrTrLr)rPrrrKr	rQr�test_blocking_get_wait�s

z$QueueGetTests.test_blocking_get_waitcCs,tj|jd�}|jd�|jd|j��dS)N)rr)rrrrr(r#)r	rrrr�test_nonblocking_get�s
z"QueueGetTests.test_nonblocking_getcCs"tj|jd�}|jtj|j�dS)N)r)rrr�assertRaisesZ
QueueEmptyr#)r	rrrr�test_nonblocking_get_exception�sz,QueueGetTests.test_nonblocking_get_exceptioncst�fdd�}�j|��tj�d��tj��fdd���tj���fdd��}�jd�j|����jd	�j��dS)
Nc3s.dV}�jd|�dV}�jd|�dVdS)Ng{�G�z�?g�Zd;�?g�������?)r)r)r	rrr�s
z-QueueGetTests.test_get_cancelled.<locals>.gen)rc3stj�j�d�d�EdHS)Ng�&1��?)r)r�wait_forrr)rrrrrK�sz3QueueGetTests.test_get_cancelled.<locals>.queue_getc3s8tj���d�}tjd�d�EdH�jd�|EdHS)N)rg{�G�z�?r)rrrr)Zget_task)rrrKrrrG�s
z.QueueGetTests.test_get_cancelled.<locals>.testrg���Q��?)rrrr)r(r*rrH)r	rrGr)rrrKr	r�test_get_cancelled�s
z QueueGetTests.test_get_cancelledcCs�tj|jd�}tj|j�|jd�}tj|j�|jd�}tj|j�|j�tj|j�|j|j	��|j
d�tj|j�|j|j�d�dS)N)r�a)
rrrrrr�run_briefly�cancelrrDrr(rE)r	r�t1�t2rrr�test_get_cancelled_race�s
z%QueueGetTests.test_get_cancelled_racecCs|tj|jdd�}tj|jd�|jd�tj|jd�|jd�tj|j�|j|jj|j	��d�|j|jj|j	��d�dS)Nr)rr r\)r�b)
rrrrr"rr]r(r*r)r	rrrr�test_get_with_waiting_putterssz+QueueGetTests.test_get_with_waiting_putterscCs^tjdd��}tjdd��}d}d}tj||jd�}|jjtj|||�|||�|jd��dS)Ncss$xt|�D]}|j�EdHq
WdS)N)r=r)�queueZnum_expectedr;rrr�consumersz<QueueGetTests.test_why_are_getters_waiting.<locals>.consumercss&x t|�D]}|j|�EdHq
WdS)N)r=r")rdZ	num_itemsr>rrr�producersz<QueueGetTests.test_why_are_getters_waiting.<locals>.producerr�)r)rr)rrr*�gather)r	rerfZ
queue_sizeZproducer_num_itemsrrrr�test_why_are_getters_waitingsz*QueueGetTests.test_why_are_getters_waitingcsddd�}�j|��_tj�fdd��}tj�jdd�}�jj�jj||����jt|j	�d�dS)NcssdVdVdS)Ng�������?g�������?rrrrr�a_generator+szXQueueGetTests.test_cancelled_getters_not_being_held_in_self_getters.<locals>.a_generatorc3s<y tj|j�d�jd�EdH}Wntjk
r6YnXdS)Ng�������?)r)rrZrr�TimeoutError)rd�item)r	rrre0s zUQueueGetTests.test_cancelled_getters_not_being_held_in_self_getters.<locals>.consumerrg)rr r)
rrrr)rr*�create_taskr(�lenZ_getters)r	rjrerdr)r	r�5test_cancelled_getters_not_being_held_in_self_getters*szCQueueGetTests.test_cancelled_getters_not_being_held_in_self_gettersN)
r
rrrMrNrVrWrYr[rarcrirorrrrrJ�s#rJc@sleZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�
QueuePutTestscs2tj|jd��tj�fdd��}|jj|��dS)N)rc3s�jd�EdHdS)Nr)r"r)rrrrTAsz2QueuePutTests.test_blocking_put.<locals>.queue_put)rrrr)r*)r	rTr)rr�test_blocking_put>szQueuePutTests.test_blocking_putcs��fdd�}�j|��tjd�d��tj�d��d�tj���fdd���tj������fd	d
��}�j|���jd�j��dS)Nc3sdV}�jd|�dVdS)Ng{�G�z�?)r)r)r	rrrJsz1QueuePutTests.test_blocking_put_wait.<locals>.genr)r r)rFc3s0�j��jd�EdH�jd�EdHd�dS)Nrr!T)rOr"r)rPrrQrrrTUsz7QueuePutTests.test_blocking_put_wait.<locals>.queue_putc3sN�jd�j�tj���d�}�j�EdH�j��|EdH�j��dS)Ng{�G�z�?)r)rRr#rrrSr5r)Zqueue_put_task)rPrrrTr	rQrrrK]s

z7QueuePutTests.test_blocking_put_wait.<locals>.queue_getg{�G�z�?)rrrrUr)r*rrH)r	rrKr)rPrrrTr	rQr�test_blocking_put_waitHs
	z$QueuePutTests.test_blocking_put_waitcCs,tj|jd�}|jd�|jd|j��dS)N)rr)rrrrr(r#)r	rrrr�test_nonblocking_putis
z"QueuePutTests.test_nonblocking_putcCs�dd�}|j|�}tj|d�}|j|j��}|jtjd|d��|jd�|jd�|j�y|j|�Wn.tj	k
r�|j|j��}|j|�YnX|j
�}|jd|�dS)NcssdVdVdS)Ng{�G�z�?g�������?rrrrrroszBQueuePutTests.test_get_cancel_drop_one_pending_reader.<locals>.gen)rg{�G�z�?rr!)rrrrmrr*rrr^�CancelledErrorrEr()r	rrr�readerrErrr�'test_get_cancel_drop_one_pending_readerns


z5QueuePutTests.test_get_cancel_drop_one_pending_readercCs�dd�}|j|�}|jd�tj|d�}|j|j��}|j|j��}|j|j��}|jtjd|d��|jd�|jd�|j	�y|j|�Wntj
k
r�YnX|j|�|j|j�|j�hddh�dS)NcssdVdVdS)Ng{�G�z�?g�������?rrrrrr�szDQueuePutTests.test_get_cancel_drop_many_pending_readers.<locals>.genT)rg{�G�z�?rr!)
rZ	set_debugrrrmrr*rrr^rtr(rE)r	rrrZreader1Zreader2Zreader3rrr�)test_get_cancel_drop_many_pending_readers�s"




z7QueuePutTests.test_get_cancel_drop_many_pending_readerscCs�dd�}|j|�}tjd|d�}|jd�|j|jd��}|jtjd|d��|j�}|j	|d�|j
�y|j|�Wn0tjk
r�|j|jd��}|j|�YnX|j�}|j	|d�|j	|j�d�dS)NcssdVdVdS)Ng{�G�z�?g�������?rrrrrr�sz/QueuePutTests.test_put_cancel_drop.<locals>.genr)rr!g{�G�z�?r)
rrrrrmr"r*rr#r(r^rt�qsize)r	rrr�writerZvalue1Zvalue2rrr�test_put_cancel_drop�s"

z"QueuePutTests.test_put_cancel_dropcCs0tjd|jd�}|jd�|jtj|jd�dS)Nr)r rr!)rrrrrX�	QueueFull)r	rrrr�test_nonblocking_put_exception�s
z,QueuePutTests.test_nonblocking_put_exceptioncsztjd�jd���jd��jd��j�j���jtj�jd�tjd�jd��tj��fdd��}�jj	|��dS)Ng�������?)r rrr!r9c3s2�jd�EdH�jd�EdH�j�j��dS)Nrr!)r"rr7r)rr	rrrT�sz3QueuePutTests.test_float_maxsize.<locals>.queue_put)
rrrrrr7rXr{r)r*)r	rTr)rr	r�test_float_maxsize�s

z QueuePutTests.test_float_maxsizecsztj|jd��tj�fdd��}tj�fdd��}tj|�|jd�}|jd|jj|���|j|j��|j|j	��dS)N)rc3s�jd�EdHdS)NrT)r"r)rrrrT�sz3QueuePutTests.test_put_cancelled.<locals>.queue_putc3s�j�EdHS)N)rr)rrrrG�sz.QueuePutTests.test_put_cancelled.<locals>.testr)
rrrr)rr(r*rrDrE)r	rTrGrFr)rr�test_put_cancelled�sz QueuePutTests.test_put_cancelledcCs�tj|jdd�}tj|jd�|jd�}tj|jd�|jd�}tj|jd�|jd�}tj|j�|j|j��|j	|j��|j
�tj|j�|j|j��|j|j�d�tj|j�|j|j�d�|jj
|�dS)Nr)rr r\)rrb�X)rrrrr"rr]rrDr5r^r(r#r*)r	rZput_aZput_bZput_crrr�test_put_cancelled_race�sz%QueuePutTests.test_put_cancelled_racecCsXtj|jd�}tj|j�|jd�}tj|j�|jj|jd��|j	|jj|�d�dS)N)rr\)
rrrrrrr]r*r"r()r	rrFrrr�test_put_with_waiting_getters�s
z+QueuePutTests.test_put_with_waiting_gettersc	sztjd|jd��tj�fdd��}tj�fdd��}|d�}|d�}|d�}|d	�}|jjtj|�|||||jd��dS)
Nr!)rc3s�j|�EdHdS)N)r")rl)rdrrrCsz:QueuePutTests.test_why_are_putters_waiting.<locals>.putterc3s,dV�j�}xt|�D]}�j�}qWdS)N)rxr=r#)Znumr;rl)rdrr�gettersz:QueuePutTests.test_why_are_putters_waiting.<locals>.getterrrr9)rrrr)r*rh)r	rCr�Zt0r_r`Zt3r)rdr�test_why_are_putters_waitingsz*QueuePutTests.test_why_are_putters_waitingN)r
rrrqrrrsrvrwrzr|r}r~r�r�r�rrrrrp<s
!rpc@seZdZdd�ZdS)�LifoQueueTestscsRtj|jd��xdD]}�j|�qW�fdd�td�D�}|jdddg|�dS)N)rrr9r!csg|]}�j��qSr)r#)r:r;)rrrr<%sz-LifoQueueTests.test_order.<locals>.<listcomp>)rr9r!)r�	LifoQueuerrr=r()r	r>r?r)rrr@ s

zLifoQueueTests.test_orderN)r
rrr@rrrrr�sr�c@seZdZdd�ZdS)�PriorityQueueTestscsRtj|jd��xdD]}�j|�qW�fdd�td�D�}|jdddg|�dS)N)rrr9r!csg|]}�j��qSr)r#)r:r;)rrrr<0sz1PriorityQueueTests.test_order.<locals>.<listcomp>)rr9r!)r�
PriorityQueuerrr=r()r	r>r?r)rrr@+s

zPriorityQueueTests.test_orderN)r
rrr@rrrrr�)sr�c@s0eZdZdZdd�Zdd�Zdd�Zdd	�ZdS)
�_QueueJoinTestMixinNcCs |j|jd�}|jt|j�dS)N)r)�q_classrrX�
ValueError�	task_done)r	rrrr�test_task_done_underflow8sz,_QueueJoinTestMixin.test_task_done_underflowcs��j�jd��xtd�D]}�j|�qWd�d�tj���fdd���tj���fdd��}�jj|��}�jttd����d	�xtt	|��D]}�jd�q�W�jjtj
|�jd��dS)
N)r�drTc3s,x&�r&�j�EdH}�|7��j�qWdS)N)rr�)rl)�accumulatorr�runningrr�workerGsz2_QueueJoinTestMixin.test_task_done.<locals>.workerc3s*��fdd�td�D�}�j�EdH|S)Ncsg|]}tj���jd��qS))r)rrr)r:�index)r	r�rrr<RszD_QueueJoinTestMixin.test_task_done.<locals>.test.<locals>.<listcomp>r!)r=�join)�tasks)rr	r�rrrGPsz0_QueueJoinTestMixin.test_task_done.<locals>.testF)r�rr=rrr)r*r(�sumrnrS)r	r>rGr�r)r�rr�r	r�r�test_task_done<s	z"_QueueJoinTestMixin.test_task_donecs2|j|jd��tj�fdd��}|jj|��dS)N)rc3s �j�EdH�j�EdHdS)N)r�r)rrrr�gsz7_QueueJoinTestMixin.test_join_empty_queue.<locals>.join)r�rrr)r*)r	r�r)rr�test_join_empty_queueasz)_QueueJoinTestMixin.test_join_empty_queuecCs8|j|jd�}|j|j�d�d|_|j|j�d�dS)N)rz	maxsize=0r!zmaxsize=0 tasks=2)r�rr(Z_formatZ_unfinished_tasks)r	rrrr�test_formatnsz_QueueJoinTestMixin.test_format)r
rrr�r�r�r�r�rrrrr�4s
%
r�c@seZdZejZdS)�QueueJoinTestsN)r
rrrrr�rrrrr�vsr�c@seZdZejZdS)�LifoQueueJoinTestsN)r
rrrr�r�rrrrr�zsr�c@seZdZejZdS)�PriorityQueueJoinTestsN)r
rrrr�r�rrrrr�~sr��__main__)�__doc__ZunittestrrrZTestCaserrrJrpr�r�r�r�r�r�r
�mainrrrr�<module>s&
 cB