Your IP : 216.73.216.213


Current Path : /proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/test_queue.cpython-34.pyo

�
f fX3�@s\ddlZddlZddlZddlmZejd�ZdZdd�ZGdd�dej	�Z
Gd	d
�d
�ZGdd�de�ZGd
d�deej
�ZGdd�deej
�ZGdd�deej
�ZGdd�de�ZGdd�dej�ZGdd�deej
�Zdd�ZedkrXe�ndS)�N)�support�	threading�cCs"|jdko!|j�|jkS)Nr)�maxsize�qsize)�q�r�4/opt/alt/python34/lib64/python3.4/test/test_queue.py�qfullsr
c@s(eZdZdd�Zdd�ZdS)�_TriggerThreadcCs5||_||_tj�|_tjj|�dS)N)�fn�argsrZEvent�startedEvent�Thread�__init__)�selfrr
rrr	rs		z_TriggerThread.__init__cCs.tjd�|jj�|j|j�dS)Ng�������?)�timeZsleepr�setrr
)rrrr	�runs	

z_TriggerThread.runN)�__name__�
__module__�__qualname__rrrrrr	rsrc@s4eZdZdd�Zdd�Zdd�ZdS)�BlockingTestMixincCs
d|_dS)N)�t)rrrr	�tearDown1szBlockingTestMixin.tearDowncCs�t||�|_|jj�||�|_|jjj�sT|jd|�n|jjd�|jj�r�|jd|�n|jS)Nz,blocking function '%r' appeared not to block�
z,trigger function '%r' appeared to not return)	rr�start�resultr�is_set�fail�join�is_alive)r�
block_func�
block_args�trigger_func�trigger_argsrrr	�do_blocking_test4s
		z"BlockingTestMixin.do_blocking_testcCs�t||�|_|jj�z;y||�Wn|k
rG�YnX|jd|�Wd|jjd�|jj�r�|jd|�n|jjj�s�|jd�nXdS)Nzexpected exception of kind %rrz,trigger function '%r' appeared to not returnz(trigger thread ended but event never set)rrrrr r!rr)rr"r#r$r%Zexpected_exception_classrrr	�do_exceptional_blocking_testCs

		z.BlockingTestMixin.do_exceptional_blocking_testN)rrrrr&r'rrrr	r/src@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�BaseQueueTestMixincCsd|_tj�|_dS)Nr)�cumrZLock�cumlock)rrrr	�setUpYs	zBaseQueueTestMixin.setUpc%Cs0|j�rtd��n|j|j��|j|j��|jd�|jd�|jd�tddddgddddgddddg�}|j�|j�|j�g}|j	|||j
jd�x;tt
d	�D])}|j|�|j|j�d
�q�W|jt|�d�dt
}dt
}|j|�|jt|�d�|j|j��|j|j��y$|j|dd�|jd�Wntjk
r�YnXy$|j|dd�|jd�Wntjk
rYnX|j|j|f|jf�|j|j|ddf|jf�xtt
�D]}|j�qWW|j|j�d�y!|jdd�|jd�Wntjk
r�YnXy!|jdd�|jd�Wntjk
r�YnX|j|jf|jd�|j|jd|jd�dS)Nz&Call this function with an empty queue�oiM���Queue�	LifoQueue�
PriorityQueuez&Didn't seem to queue the correct data!�zQueue should not be emptyzQueue should not be full��zQueue should be full�blockrz(Didn't appear to block with a full queue�timeoutg{�G�z�?z+Didn't appear to time-out with a full queueTrzQueue should be emptyz*Didn't appear to block with an empty queuez-Didn't appear to time-out with an empty queue�empty�)�empty)Tr)r8)r�RuntimeError�
assertTruer6ZassertFalse�full�put�dict�get�assertEqual�	__class__r�range�
QUEUE_SIZEr
r�queue�Fullr&�Empty)rrZtarget_orderZactual_order�i�lastr;rrr	�simple_queue_test]sd


!



%z$BaseQueueTestMixin.simple_queue_testc
CsZxS|j�}|dkr)|j�dS|j�|j|7_WdQX|j�qWdS)Nr)r>�	task_doner*r))rr�xrrr	�worker�s

zBaseQueueTestMixin.workercCs�d|_x0dD](}tjd|jd|f�j�qWx!td�D]}|j|�qIW|j�|j|jt	td��d�xdD]}|jd	�q�W|j�dS)
Nrr1�targetr
�dz0q.join() did not block until all tasks were done)rr1)rr1���)
r)rrrKrrAr<r r?�sum)rrrFrrr	�queue_join_test�s	
&

z"BaseQueueTestMixin.queue_join_testcCs@|j�}y|j�Wntk
r.YnX|jd�dS)Nz(Did not detect task count going negative)�	type2testrI�
ValueErrorr)rrrrr	�test_queue_task_done�s
z'BaseQueueTestMixin.test_queue_task_donecCsZ|j�}|j|�|j|�y|j�Wntk
rHYnX|jd�dS)Nz(Did not detect task count going negative)rQrPrIrRr)rrrrr	�test_queue_join�s


z"BaseQueueTestMixin.test_queue_joincCs-|jt�}|j|�|j|�dS)N)rQrBrH)rrrrr	�test_simple_queue�s
z$BaseQueueTestMixin.test_simple_queuecCse|jt�}|jt��|jddd�WdQX|jt��|jddd�WdQXdS)Nr1r5rNrN)rQrB�assertRaisesrRr<r>)rrrrr	�&test_negative_timeout_raises_exception�s
z9BaseQueueTestMixin.test_negative_timeout_raises_exceptioncCs�|jt�}x!tt�D]}|jd�qW|jtj��|jd�WdQXxtt�D]}|j�qfW|jtj��|j�WdQXdS)Nr1)	rQrBrA�
put_nowaitrVrCrDZ
get_nowaitrE)rrrFrrr	�test_nowait�szBaseQueueTestMixin.test_nowaitcCs�|jd�}|jd�|jd�|jd�|jtj��|jd�WdQX|j|j�d�d|_|jtj��|jd�WdQXdS)Nr3r1r2�)	rQr<rVrCrDrXr?rr)rrrrr	�test_shrinking_queue�s


	z'BaseQueueTestMixin.test_shrinking_queueN)
rrrr+rHrKrPrSrTrUrWrYr[rrrr	r(Xs9



r(c@seZdZejZdS)�	QueueTestN)rrrrCr.rQrrrr	r\�sr\c@seZdZejZdS)�
LifoQueueTestN)rrrrCr/rQrrrr	r]�sr]c@seZdZejZdS)�PriorityQueueTestN)rrrrCr0rQrrrr	r^�sr^c@seZdZdS)�FailingQueueExceptionN)rrrrrrr	r_�sr_c@s4eZdZdd�Zdd�Zdd�ZdS)�FailingQueuecGs)d|_d|_tjj||�dS)NF)�
fail_next_put�
fail_next_getrCr.r)rr
rrr	r�s		zFailingQueue.__init__cCs4|jr!d|_td��ntjj||�S)NFzYou Lose)rar_rCr.�_put)r�itemrrr	rc�s		zFailingQueue._putcCs1|jr!d|_td��ntjj|�S)NFzYou Lose)rbr_rCr.�_get)rrrr	res		zFailingQueue._getN)rrrrrcrerrrr	r`�sr`c@s(eZdZdd�Zdd�ZdS)�FailingQueueTestc<Cs�|j�rtd��nx%ttd�D]}|j|�q,Wd|_y$|jddd�|jd�Wntk
r�YnXd|_y$|jddd	�|jd�Wntk
r�YnX|jd
�|jt	|�d�d|_y-|j
|jd|jf�|jd�Wntk
r4YnX|jd
�d|_y0|j|jd|jft�|jd�Wntk
r�YnX|jd
�|jt	|�d�|j�|jt	|�d�|jd
�|jt	|�d�|j
|jd|jf�xtt�D]}|j�q W|j|j�d�|jd�d|_
y|j�|jd�Wntk
r�YnX|j|j�d�d|_
y!|jdd	�|jd�Wntk
r�YnX|j|j�d�|j�|j|j�d�d|_
y0|j|jf|jdt�|jd�Wntk
rjYnX|j|j�d�|j�|j|j�d�dS)Nz&Call this function with an empty queuer1TZoopsr4rz)The queue didn't fail when it should haver5g�������?rGzQueue should be fullr;rzQueue should not be fullzQueue should be empty�firstzQueue should not be emptyr6)�full)rhTr)rh)zempty)rr9rArBr<rarr_r:r
r&r>r'rb)rrrFrrr	�failing_queue_tests�	
	

	

	




	

	

	

z#FailingQueueTest.failing_queue_testcCs*tt�}|j|�|j|�dS)N)r`rBri)rrrrr	�test_failing_queue]s
z#FailingQueueTest.test_failing_queueN)rrrrirjrrrr	rf
sQrfcCstjtttt�dS)N)rZrun_unittestr\r]r^rfrrrr	�	test_mainesrk�__main__)rCrZunittestZtestr�
import_modulerrBr
rrrr(ZTestCaser\r]r^�	Exceptionr_r.r`rfrkrrrrr	�<module>s$ )�[