Your IP : 216.73.216.213


Current Path : /opt/alt/python34/lib64/python3.4/test/test_asyncio/__pycache__/
Upload File :
Current File : //opt/alt/python34/lib64/python3.4/test/test_asyncio/__pycache__/test_queues.cpython-34.pyc

�
f f`E�@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�ndS)zTests for queues.py�N)�mock)�
test_utilsc@seZdZdd�ZdS)�_QueueTestBasecCs|j�|_dS)N)�
new_test_loop�loop)�self�r�B/opt/alt/python34/lib64/python3.4/test/test_asyncio/test_queues.py�setUpsz_QueueTestBase.setUpN)�__name__�
__module__�__qualname__r
rrrr	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)rrr	�gens
z.QueueBasicTests._test_repr_or_str.<locals>.genrz<Queuec3smtjd��}tj|j�d��tjdd��DdH�jd�|�k�|jd�dS)Nrg�������?z_getters[1]r)�asyncio�Queue�Task�get�sleep�
assertTrue�
put_nowait)�q)�fnrrrr	�
add_getter&s
z5QueueBasicTests._test_repr_or_str.<locals>.add_getterc3s�tjddd��}|jd�tj|jd�d��tjdd��DdH�jd�|�k�|j�dS)N�maxsize�r�g�������?z_putters[1])rrrr�putrr�
get_nowait)r)rrrrr	�
add_putter3s
z5QueueBasicTests._test_repr_or_str.<locals>.add_putterrz
_queue=[1]N)rrrr�
startswith�hex�id�assertEqual�	coroutine�run_until_completer)rrZ	expect_idrrZ
id_is_presentrr!r)rrrr	�_test_repr_or_strs%!!
z!QueueBasicTests._test_repr_or_strcCs`tj�}tjd|�}|j|j|�tjd|j�}|j|j|j�dS)Nr)rZMockrr�assertIs�_loopr)rrrrrr	�test_ctor_loopEs
zQueueBasicTests.test_ctor_loopcCs6tj|j�tj�}|j|j|j�dS)N)rZset_event_looprrr)r*)rrrrr	�test_ctor_noloopMsz QueueBasicTests.test_ctor_noloopcCs|jtd�dS)NT)r(�repr)rrrr	�	test_reprRszQueueBasicTests.test_reprcCs|jtd�dS)NF)r(�str)rrrr	�test_strUszQueueBasicTests.test_strcCsutjd|j�}|j|j��|jd�|j|j��|jd|j��|j|j��dS)Nrr)	rrrr�emptyr�assertFalser%r )rrrrr	�
test_emptyXs
zQueueBasicTests.test_emptycCsgtjd|j�}|j|j��tjddd|j�}|jd�|j|j��dS)Nrrr)rrrr2�fullrr)rrrrr	�	test_full`s

zQueueBasicTests.test_fullcsxtjd|j��x$dddgD]}�j|�q%W�fdd�td�D�}|jdddg|�dS)Nrr�rcsg|]}�j��qSr)r )�.0�_)rrr	�
<listcomp>ms	z.QueueBasicTests.test_order.<locals>.<listcomp>)rrrr�ranger%)r�i�itemsr)rr	�
test_orderhs
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)rrr	rrs
z)QueueBasicTests.test_maxsize.<locals>.genrrrc3s:x3td�D]%}�j|�DdH�j|�q
WdS)Nr6T)r:r�append)r;)�
have_been_putrrr	�puttersz,QueueBasicTests.test_maxsize.<locals>.putterc3s�tj��d��}tjdd��DdH�jddg���jd�j��tjdd��DdH�jdddg���jd�j���jd�j���j|j���j|j��dS)Nrg{�G�z�?rrr)rrrr%r r�done�result)�t)r?rr@rrrr	�test�sz*QueueBasicTests.test_maxsize.<locals>.testg{�G�z�?)	rrrr%rr&r'r�time)rrrDr)r?rr@rrr	�test_maxsizeps'zQueueBasicTests.test_maxsizeN)rrr
r(r+r,r.r0r3r5r=rFrrrr	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�DdHS)N)rr)rrr	�	queue_get�sz2QueueGetTests.test_blocking_get.<locals>.queue_get)rrrrr&r'r%)rrH�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%rrAZassertIsNonerB)rrZwaiterrIrrr	�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)rrr	r�sz1QueueGetTests.test_blocking_get_wait.<locals>.genrFc3s%�j��j�DdH}d�|S)NT)�setr)rI)�finishedr�startedrr	rH�s
z7QueueGetTests.test_blocking_get_wait.<locals>.queue_getc3sf�jd�jd�tj��d��}�j�DdH�j��|DdH}�j��|S)Ng{�G�z�?rr)�
call_laterrrr�waitr2r)Zqueue_get_taskrI)rMrrrHrrNrr	�	queue_put�s

z7QueueGetTests.test_blocking_get_wait.<locals>.queue_putrg{�G�z�?)	rrr�Eventr&r'r%rrE)rrrQrIr)rMrrrHrrNr	�test_blocking_get_wait�s!*
z$QueueGetTests.test_blocking_get_waitcCs<tjd|j�}|jd�|jd|j��dS)Nrr)rrrrr%r )rrrrr	�test_nonblocking_get�s
z"QueueGetTests.test_nonblocking_getcCs/tjd|j�}|jtj|j�dS)Nr)rrr�assertRaisesZ
QueueEmptyr )rrrrr	�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)rrr	r�s
z-QueueGetTests.test_get_cancelled.<locals>.genrc3s!tj�j�dd��DdHS)Ng�&1��?r)rZwait_forrr)rrrr	rH�sz3QueueGetTests.test_get_cancelled.<locals>.queue_getc3sFtj��d��}tjdd��DdH�jd�|DdHS)Nrg{�G�z�?r)rrrr)Zget_task)rrrHrr	rD�s
z.QueueGetTests.test_get_cancelled.<locals>.testrg���Q��?)rrrr&r%r'rrE)rrrDr)rrrHrr	�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�cancelrrArr%rB)rr�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)NrrrrX�b)
rrrrrrrYr%r'r)rrrrr	�test_get_with_waiting_putters
s"z+QueueGetTests.test_get_with_waiting_putterscCs�tjdd��}tjdd��}d}d}tj|d|j�}|jjtj|||�|||�d|j��dS)Ncss*x#t|�D]}|j�DdHq
WdS)N)r:r)�queueZnum_expectedr8rrr	�consumersz<QueueGetTests.test_why_are_getters_waiting.<locals>.consumercss-x&t|�D]}|j|�DdHq
WdS)N)r:r)r`Z	num_itemsr;rrr	�producersz<QueueGetTests.test_why_are_getters_waiting.<locals>.producerr�r)rr&rrr'�gather)rrarbZ
queue_sizeZproducer_num_itemsrrrr	�test_why_are_getters_waitings	z*QueueGetTests.test_why_are_getters_waitingN)rrr
rJrKrSrTrVrWr]r_rerrrr	rG�s#rGc@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�DdHdS)Nr)rr)rrr	rQ/sz2QueuePutTests.test_blocking_put.<locals>.queue_put)rrrr&r')rrQr)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)rrr	r8sz1QueuePutTests.test_blocking_put_wait.<locals>.genrrrFc3s8�j��jd�DdH�jd�DdHd�dS)NrrT)rLrr)rMrrNrr	rQCs
z7QueuePutTests.test_blocking_put_wait.<locals>.queue_putc3sa�jd�j�tj��d��}�j�DdH�j��|DdH�j��dS)Ng{�G�z�?r)rOr rrrPr2r)Zqueue_put_task)rMrrrQrrNrr	rHKs
	z7QueuePutTests.test_blocking_put_wait.<locals>.queue_getg{�G�z�?)rrrrRr&r'rrE)rrrHr)rMrrrQrrNr	�test_blocking_put_wait6s!*	z$QueuePutTests.test_blocking_put_waitcCs<tjd|j�}|jd�|jd|j��dS)Nrr)rrrrr%r )rrrrr	�test_nonblocking_putWs
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'rrrZ�CancelledErrorrBr%)rrrr�readerrBrrr	�'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	ryszDQueuePutTests.test_get_cancel_drop_many_pending_readers.<locals>.genTrg{�G�z�?rr)
rZ	set_debugrrrjrr'rrrZrkr%rB)rrrrZreader1Zreader2Zreader3rrr	�)test_get_cancel_drop_many_pending_readersxs"




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>.genrrrg{�G�z�?r)
rrrrrjrr'rr r%rZrk�qsize)rrrr�writerZvalue1Zvalue2rrr	�test_put_cancel_drop�s"

z"QueuePutTests.test_put_cancel_dropcCsEtjddd|j�}|jd�|jtj|jd�dS)Nrrrr)rrrrrU�	QueueFull)rrrrr	�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�������?rrrr6c3s;�jd�DdH�jd�DdH�j�j��dS)Nrr)rrr4r)rrrr	rQ�sz3QueuePutTests.test_float_maxsize.<locals>.queue_put)
rrrrrr4rUrrr&r')rrQr)rrr	�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�DdHdS)NrT)rr)rrr	rQ�sz3QueuePutTests.test_put_cancelled.<locals>.queue_putc3s�j�DdHS)N)rr)rrr	rD�sz.QueuePutTests.test_put_cancelled.<locals>.testr)
rrrr&rr%r'rrArB)rrQrDrCr)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)NrrrrXr^�X)rrrrrrrYrrAr2rZr%r r')rrZput_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)NrrX)
rrrrrrrYr'rr%)rrrCrrr	�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)
Nrrc3s�j|�DdHdS)N)r)�item)r`rr	r@�sz:QueuePutTests.test_why_are_putters_waiting.<locals>.putterc3s8dV�j�}x t|�D]}�j�}qWdS)N)ror:r )Znumr8ry)r`rr	�getter�sz:QueuePutTests.test_why_are_putters_waiting.<locals>.getterrrr6)rrrr&r'rd)rr@rzZt0r[r\Zt3r)r`r	�test_why_are_putters_waiting�s	z*QueuePutTests.test_why_are_putters_waitingN)rrr
rgrhrirmrnrqrsrtrurwrxr{rrrr	rf*s
!rfc@seZdZdd�ZdS)�LifoQueueTestscsxtjd|j��x$dddgD]}�j|�q%W�fdd�td�D�}|jdddg|�dS)Nrrr6rcsg|]}�j��qSr)r )r7r8)rrr	r9s	z-LifoQueueTests.test_order.<locals>.<listcomp>)r�	LifoQueuerrr:r%)rr;r<r)rr	r=s
zLifoQueueTests.test_orderN)rrr
r=rrrr	r|sr|c@seZdZdd�ZdS)�PriorityQueueTestscsxtjd|j��x$dddgD]}�j|�q%W�fdd�td�D�}|jdddg|�dS)Nrrr6rcsg|]}�j��qSr)r )r7r8)rrr	r9s	z1PriorityQueueTests.test_order.<locals>.<listcomp>)r�
PriorityQueuerrr:r%)rr;r<r)rr	r=s
zPriorityQueueTests.test_orderN)rrr
r=rrrr	r~sr~c@sFeZdZdZdd�Zdd�Zdd�Zdd	�ZdS)
�_QueueJoinTestMixinNcCs,|jd|j�}|jt|j�dS)Nr)�q_classrrU�
ValueError�	task_done)rrrrr	�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�DdH}�|7��j�qWdS)N)rr�)ry)�accumulatorr�runningrr	�worker5s	
z2_QueueJoinTestMixin.test_task_done.<locals>.workerc3s5��fdd�td�D�}�j�DdH|S)Ncs+g|]!}tj��d�j��qS)r)rrr)r7�index)rr�rr	r9@s	zD_QueueJoinTestMixin.test_task_done.<locals>.test.<locals>.<listcomp>r)r:�join)�tasks)rrr�rr	rD>sz0_QueueJoinTestMixin.test_task_done.<locals>.testF)r�rr:rrr&r'r%�sum�lenrP)rr;rDr�r)r�rr�rr�r	�test_task_done*s!	!z"_QueueJoinTestMixin.test_task_donecsG|jd|j��tj�fdd��}|jj|��dS)Nrc3s"�j�DdH�j�DdHdS)N)r�r)rrr	r�Usz7_QueueJoinTestMixin.test_join_empty_queue.<locals>.join)r�rrr&r')rr�r)rr	�test_join_empty_queueOsz)_QueueJoinTestMixin.test_join_empty_queuecCsN|jd|j�}|j|j�d�d|_|j|j�d�dS)Nrz	maxsize=0rzmaxsize=0 tasks=2)r�rr%Z_formatZ_unfinished_tasks)rrrrr	�test_format\s	z_QueueJoinTestMixin.test_format)rrr
r�r�r�r�r�rrrr	r�"s
%
r�c@seZdZejZdS)�QueueJoinTestsN)rrr
rrr�rrrr	r�dsr�c@seZdZejZdS)�LifoQueueJoinTestsN)rrr
rr}r�rrrr	r�hsr�c@seZdZejZdS)�PriorityQueueJoinTestsN)rrr
rrr�rrrr	r�lsr��__main__)�__doc__ZunittestrrrZTestCaserrrGrfr|r~r�r�r�r�r�mainrrrr	�<module>s ���B