Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/test/test_asyncio/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/test_asyncio/__pycache__/test_queues.cpython-35.opt-1.pyc



��YfxE�@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�Zedkr9ej�dS)zTests for queues.py�N)�mock)�
test_utilscs"eZdZ�fdd�Z�S)�_QueueTestBasecs t�j�|j�|_dS)N)�super�setUp�
new_test_loop�loop)�self)�	__class__��B/opt/alt/python35/lib64/python3.5/test/test_asyncio/test_queues.pyrs
z_QueueTestBase.setUp)�__name__�
__module__�__qualname__rrr)r
rr
src@s|eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�QueueBasicTestscs$�fdd�}�j|��tjd��}�j�|�jd��|��tt|���|�k}�j||�tj���fdd��}�j	|��tj���fdd��}�j	|��tjd��}|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()).
        c3s7dV}�jd|�dV}�jd|�dVdS)Ng�������?g�������?)�assertAlmostEqual)�when)r	rr�gens
z.QueueBasicTests._test_repr_or_str.<locals>.genrz<Queuec3smtjd��}tj|j�d��tjdd��EdH�jd�|�k�|jd�dS)Nrg�������?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�tjddd��}|jd�tj|jd�d��tjdd��EdH�jd�|�k�|j�dS)N�maxsize�r�g�������?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_strcCs`tj�}tjd|�}|j|j|�tjd|j�}|j|j|j�dS)Nr)rZMockrr�assertIs�_loopr)r	rrrrr�test_ctor_loopFs
zQueueBasicTests.test_ctor_loopcCs6tj|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_strcCsutjd|j�}|j|j��|jd�|j|j��|jd|j��|j|j��dS)Nrr)	rrrr�emptyr�assertFalser'r")r	rrrr�
test_emptyYs
zQueueBasicTests.test_emptycCsgtjd|j�}|j|j��tjddd|j�}|jd�|j|j��dS)Nrrr)rrrr4�fullrr)r	rrrr�	test_fullas

zQueueBasicTests.test_fullcsxtjd|j��x$dddgD]}�j|�q%W�fdd�td�D�}|jdddg|�dS)Nrr�r csg|]}�j��qSr)r")�.0�_)rrr�
<listcomp>ns	z.QueueBasicTests.test_order.<locals>.<listcomp>)rrrr�ranger')r	�i�itemsr)rr�
test_orderis
zQueueBasicTests.test_ordercs��fdd�}�j|��tjddd����jd�j�g�tj��fdd���tj�����fdd	��}�j|���jd
�j��dS)Nc3s7dV}�jd|�dV}�jd|�dVdS)Ng{�G�z�?g{�G�z�?)r)r)r	rrrss
z)QueueBasicTests.test_maxsize.<locals>.genrr rc3s:x3td�D]%}�j|�EdH�j|�q
WdS)Nr8T)r<r!�append)r=)�
have_been_putrrr�putter�sz,QueueBasicTests.test_maxsize.<locals>.putterc3s�tj��d��}tjdd��EdH�jddg���jd�j��tjdd��EdH�jdddg���jd�j���jd�j���j|j���j|j��dS)Nrg{�G�z�?rrr )rrrr'r"r�done�result)�t)rArrBrr	rr�test�sz*QueueBasicTests.test_maxsize.<locals>.testg{�G�z�?)	rrrr'rr(r)r�time)r	rrFr)rArrBrr	r�test_maxsizeqs'zQueueBasicTests.test_maxsizeN)r
rrr*r-r.r0r2r5r7r?rHrrrrrs3rc@s|eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�
QueueGetTestscsftjd|j���jd�tj�fdd��}|jj|��}|jd|�dS)Nrrc3s�j�EdHS)N)rr)rrr�	queue_get�sz2QueueGetTests.test_blocking_get.<locals>.queue_get)rrrrr(r)r')r	rJ�resr)rr�test_blocking_get�s

zQueueGetTests.test_blocking_getcCs�tjdd|j�}|jd�tjd|j�}|jj|�|jj|j��}|j	d|�|j
|j��|j|j
��dS)Nrr)rrrrZFutureZ_puttersr@r)rr'rrCZassertIsNonerD)r	rZwaiterrKrrr�test_get_with_putters�s
z#QueueGetTests.test_get_with_putterscs��fdd�}�j|��tjd���tjd���d�tj���fdd���tj������fdd��}�j|��}�jd	|��jd
�j��dS)Nc3s dV}�jd|�dVdS)Ng{�G�z�?)r)r)r	rrr�sz1QueueGetTests.test_blocking_get_wait.<locals>.genrFc3s%�j��j�EdH}d�|S)NT)�setr)rK)�finishedr�startedrrrJ�s
z7QueueGetTests.test_blocking_get_wait.<locals>.queue_getc3sf�jd�jd�tj��d��}�j�EdH�j��|EdH}�j��|S)Ng{�G�z�?rr)�
call_laterrrr�waitr4r)Zqueue_get_taskrK)rOrrrJr	rPrr�	queue_put�s

z7QueueGetTests.test_blocking_get_wait.<locals>.queue_putrg{�G�z�?)	rrr�Eventr(r)r'rrG)r	rrSrKr)rOrrrJr	rPr�test_blocking_get_wait�s!*
z$QueueGetTests.test_blocking_get_waitcCs<tjd|j�}|jd�|jd|j��dS)Nrr)rrrrr'r")r	rrrr�test_nonblocking_get�s
z"QueueGetTests.test_nonblocking_getcCs/tjd|j�}|jtj|j�dS)Nr)rrr�assertRaisesZ
QueueEmptyr")r	rrrr�test_nonblocking_get_exception�sz,QueueGetTests.test_nonblocking_get_exceptioncs��fdd�}�j|��tjd���tj��fdd���tj���fdd��}�jd�j|����jd	�j��dS)
Nc3s7dV}�jd|�dV}�jd|�dVdS)Ng{�G�z�?g�Zd;�?g�������?)r)r)r	rrr�s
z-QueueGetTests.test_get_cancelled.<locals>.genrc3s!tj�j�dd��EdHS)Ng�&1��?r)rZwait_forrr)rrrrrJ�sz3QueueGetTests.test_get_cancelled.<locals>.queue_getc3sFtj��d��}tjdd��EdH�jd�|EdHS)Nrg{�G�z�?r)rrrr)Zget_task)rrrJrrrF�s
z.QueueGetTests.test_get_cancelled.<locals>.testrg���Q��?)rrrr(r'r)rrG)r	rrFr)rrrJr	r�test_get_cancelled�s!z QueueGetTests.test_get_cancelledcCs�tjd|j�}tj|j�d|j�}tj|j�d|j�}tj|j�|j�tj|j�|j|j	��|j
d�tj|j�|j|j�d�dS)Nr�a)
rrrrrr�run_briefly�cancelrrCrr'rD)r	r�t1�t2rrr�test_get_cancelled_race�s

z%QueueGetTests.test_get_cancelled_racecCs�tjd|jdd�}tj|jd�d|j�tj|jd�d|j�tj|j�|j|jj|j	��d�|j|jj|j	��d�dS)NrrrrZ�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|d|j�}|jjtj|||�|||�d|j��dS)Ncss*x#t|�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!)rbZ	num_itemsr=rrr�producersz<QueueGetTests.test_why_are_getters_waiting.<locals>.producerr�r)rr(rrr)�gather)r	rcrdZ
queue_sizeZproducer_num_itemsrrrr�test_why_are_getters_waitings	z*QueueGetTests.test_why_are_getters_waitingN)r
rrrLrMrUrVrXrYr_rargrrrrrI�s#rIc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�
QueuePutTestscsGtjd|j��tj�fdd��}|jj|��dS)Nrc3s�jd�EdHdS)Nr)r!r)rrrrS0sz2QueuePutTests.test_blocking_put.<locals>.queue_put)rrrr(r))r	rSr)rr�test_blocking_put-szQueuePutTests.test_blocking_putcs��fdd�}�j|��tjddd���tjd���d�tj���fdd���tj������fd	d
��}�j|���jd�j��dS)Nc3s dV}�jd|�dVdS)Ng{�G�z�?)r)r)r	rrr9sz1QueuePutTests.test_blocking_put_wait.<locals>.genrrrFc3s8�j��jd�EdH�jd�EdHd�dS)Nrr T)rNr!r)rOrrPrrrSDs
z7QueuePutTests.test_blocking_put_wait.<locals>.queue_putc3sa�jd�j�tj��d��}�j�EdH�j��|EdH�j��dS)Ng{�G�z�?r)rQr"rrrRr4r)Zqueue_put_task)rOrrrSr	rPrrrJLs
	z7QueuePutTests.test_blocking_put_wait.<locals>.queue_getg{�G�z�?)rrrrTr(r)rrG)r	rrJr)rOrrrSr	rPr�test_blocking_put_wait7s!*	z$QueuePutTests.test_blocking_put_waitcCs<tjd|j�}|jd�|jd|j��dS)Nrr)rrrrr'r")r	rrrr�test_nonblocking_putXs
z"QueuePutTests.test_nonblocking_putcCs�dd�}|j|�}tjd|�}|j|j��}|jtjdd|��|jd�|jd�|j�y|j|�Wn7tj	k
r�|j|j��}|j|�YnX|j
�}|jd|�dS)NcssdVdVdS)Ng{�G�z�?g�������?rrrrrr^szBQueuePutTests.test_get_cancel_drop_one_pending_reader.<locals>.genrg{�G�z�?rr )rrr�create_taskrr)rrr\�CancelledErrorrDr')r	rrr�readerrDrrr�'test_get_cancel_drop_one_pending_reader]s


z5QueuePutTests.test_get_cancel_drop_one_pending_readercCsdd�}|j|�}|jd�tjd|�}|j|j��}|j|j��}|j|j��}|jtjdd|��|jd�|jd�|j	�y|j|�Wntj
k
r�YnX|j|�|j|j�|j�hddh�dS)NcssdVdVdS)Ng{�G�z�?g�������?rrrrrrzszDQueuePutTests.test_get_cancel_drop_many_pending_readers.<locals>.genTrg{�G�z�?rr )
rZ	set_debugrrrlrr)rrr\rmr'rD)r	rrrZreader1Zreader2Zreader3rrr�)test_get_cancel_drop_many_pending_readersys"




z7QueuePutTests.test_get_cancel_drop_many_pending_readerscCsdd�}|j|�}tjdd|�}|jd�|j|jd��}|jtjdd|��|j�}|j	|d�|j
�y|j|�Wn:tjk
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>.genrrr g{�G�z�?r)
rrrrrlr!r)rr"r'r\rm�qsize)r	rrr�writerZvalue1Zvalue2rrr�test_put_cancel_drop�s"

z"QueuePutTests.test_put_cancel_dropcCsEtjddd|j�}|jd�|jtj|jd�dS)Nrrrr )rrrrrW�	QueueFull)r	rrrr�test_nonblocking_put_exception�s
z,QueuePutTests.test_nonblocking_put_exceptioncs�tjddd�j���jd��jd��j�j���jtj�jd�tjddd�j��tj��fdd��}�jj	|��dS)	Nrg�������?rrr r8c3s;�jd�EdH�jd�EdH�j�j��dS)Nrr )r!rr6r)rr	rrrS�sz3QueuePutTests.test_float_maxsize.<locals>.queue_put)
rrrrrr6rWrtr(r))r	rSr)rr	r�test_float_maxsize�s

z QueuePutTests.test_float_maxsizecs�tjd|j��tj�fdd��}tj�fdd��}tj|�d|j�}|jd|jj|���|j|j��|j|j	��dS)Nrc3s�jd�EdHdS)NrT)r!r)rrrrS�sz3QueuePutTests.test_put_cancelled.<locals>.queue_putc3s�j�EdHS)N)rr)rrrrF�sz.QueuePutTests.test_put_cancelled.<locals>.testr)
rrrr(rr'r)rrCrD)r	rSrFrEr)rr�test_put_cancelled�sz QueuePutTests.test_put_cancelledcCs1tjd|jdd�}tj|jd�d|j�}tj|jd�d|j�}tj|jd�d|j�}tj|j�|j|j��|j	|j��|j
�tj|j�|j|j��|j|j�d�tj|j�|j|j�d�|jj
|�dS)NrrrrZr`�X)rrrrr!rr[rrCr4r\r'r"r))r	rZput_aZput_bZput_crrr�test_put_cancelled_race�s!!!
z%QueuePutTests.test_put_cancelled_racecCs|tjd|j�}tj|j�d|j�}tj|j�|jj|jd��|j	|jj|�d�dS)NrrZ)
rrrrrrr[r)r!r')r	rrErrr�test_put_with_waiting_getters�s
z+QueuePutTests.test_put_with_waiting_gettersc	s�tjdd|j��tj�fdd��}tj�fdd��}|d�}|d�}|d�}|d	�}|jjtj|�||||d|j��dS)
Nr rc3s�j|�EdHdS)N)r!)�item)rbrrrB�sz:QueuePutTests.test_why_are_putters_waiting.<locals>.putterc3s8dV�j�}x t|�D]}�j�}qWdS)N)rqr<r")Znumr:r{)rbrr�getter�sz:QueuePutTests.test_why_are_putters_waiting.<locals>.getterrrr8)rrrr(r)rf)r	rBr|Zt0r]r^Zt3r)rbr�test_why_are_putters_waiting�s	z*QueuePutTests.test_why_are_putters_waitingN)r
rrrirjrkrorprsrurvrwryrzr}rrrrrh+s
!rhc@seZdZdd�ZdS)�LifoQueueTestscsxtjd|j��x$dddgD]}�j|�q%W�fdd�td�D�}|jdddg|�dS)Nrrr8r csg|]}�j��qSr)r")r9r:)rrrr;s	z-LifoQueueTests.test_order.<locals>.<listcomp>)r�	LifoQueuerrr<r')r	r=r>r)rrr?s
zLifoQueueTests.test_orderN)r
rrr?rrrrr~
sr~c@seZdZdd�ZdS)�PriorityQueueTestscsxtjd|j��x$dddgD]}�j|�q%W�fdd�td�D�}|jdddg|�dS)Nrrr8r csg|]}�j��qSr)r")r9r:)rrrr;s	z1PriorityQueueTests.test_order.<locals>.<listcomp>)r�
PriorityQueuerrr<r')r	r=r>r)rrr?s
zPriorityQueueTests.test_orderN)r
rrr?rrrrr�sr�c@sFeZdZdZdd�Zdd�Zdd�Zdd	�ZdS)
�_QueueJoinTestMixinNcCs,|jd|j�}|jt|j�dS)Nr)�q_classrrW�
ValueError�	task_done)r	rrrr�test_task_done_underflow'sz,_QueueJoinTestMixin.test_task_done_underflowcs�jd�j��x!td�D]}�j|�q"Wd�d�tj���fdd���tj���fdd��}�jj|��}�jttd����d	�x'tt	|��D]}�jd�q�W�jjtj
|d�j��dS)
Nr�drTc3s6x/�r1�j�EdH}�|7��j�qWdS)N)rr�)r{)�accumulatorr�runningrr�worker6s	
z2_QueueJoinTestMixin.test_task_done.<locals>.workerc3s5��fdd�td�D�}�j�EdH|S)Ncs+g|]!}tj��d�j��qS)r)rrr)r9�index)r	r�rrr;As	zD_QueueJoinTestMixin.test_task_done.<locals>.test.<locals>.<listcomp>r )r<�join)�tasks)rr	r�rrrF?sz0_QueueJoinTestMixin.test_task_done.<locals>.testF)r�rr<rrr(r)r'�sum�lenrR)r	r=rFr�r)r�rr�r	r�r�test_task_done+s!	!z"_QueueJoinTestMixin.test_task_donecsG|jd|j��tj�fdd��}|jj|��dS)Nrc3s"�j�EdH�j�EdHdS)N)r�r)rrrr�Vsz7_QueueJoinTestMixin.test_join_empty_queue.<locals>.join)r�rrr(r))r	r�r)rr�test_join_empty_queuePsz)_QueueJoinTestMixin.test_join_empty_queuecCsN|jd|j�}|j|j�d�d|_|j|j�d�dS)Nrz	maxsize=0r zmaxsize=0 tasks=2)r�rr'Z_formatZ_unfinished_tasks)r	rrrr�test_format]s	z_QueueJoinTestMixin.test_format)r
rrr�r�r�r�r�rrrrr�#s
%
r�c@seZdZejZdS)�QueueJoinTestsN)r
rrrrr�rrrrr�esr�c@seZdZejZdS)�LifoQueueJoinTestsN)r
rrrrr�rrrrr�isr�c@seZdZejZdS)�PriorityQueueJoinTestsN)r
rrrr�r�rrrrr�msr��__main__)�__doc__ZunittestrrrZTestCaserrrIrhr~r�r�r�r�r�r
�mainrrrr�<module>s ���B