HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/__pycache__/test_queue.cpython-37.opt-1.pyc
B

��gGL�@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
yddlZWnek
rxdZYnXdZ
dd�ZGdd�dej�ZGdd	�d	�ZGd
d�de�ZGdd
�d
eej�ZGdd�deej�ZGdd�deej�ZGdd�de�ZGdd�dej�ZGdd�deej�ZGdd�d�ZGdd�deej�Ze�edkd�Gdd�deej��Ze dk�r�e�!�dS) �N)�support�cCs|jdko|��|jkS)Nr)�maxsize�qsize)�q�r�+/usr/local/lib/python3.7/test/test_queue.py�qfullsr	c@seZdZdd�Zdd�ZdS)�_TriggerThreadcCs&||_||_t��|_tj�|�dS)N)�fn�args�	threadingZEvent�startedEvent�Thread�__init__)�selfrrrrrrs
z_TriggerThread.__init__cCs$t�d�|j��|j|j�dS)Ng�������?)�time�sleepr�setrr)rrrr�run!s	

z_TriggerThread.runN)�__name__�
__module__�__qualname__rrrrrrr
sr
c@seZdZdd�Zdd�ZdS)�BlockingTestMixinc
CsNt||�}|��z(||�|_|j��s6|�d|�|jSt�|d�XdS)Nz*blocking function %r appeared not to block�
)r
�start�resultr�is_set�failr�join_thread)r�
block_func�
block_args�trigger_func�trigger_args�threadrrr�do_blocking_test<s


z"BlockingTestMixin.do_blocking_testc
Cspt||�}|��z6y||�Wn|k
r6�YnX|�d|�Wdt�|d�|j��sj|�d�XdS)Nzexpected exception of kind %rrz(trigger thread ended but event never set)r
rrrrrr)rr r!r"r#Zexpected_exception_classr$rrr�do_exceptional_blocking_testJs

z.BlockingTestMixin.do_exceptional_blocking_testN)rrrr%r&rrrrr:src@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�BaseQueueTestMixincCsd|_t��|_dS)Nr)�cumr
ZLock�cumlock)rrrr�setUp]szBaseQueueTestMixin.setUpcCs||��rtd��|�|���|�|���|�d�|�d�|�d�tdddgdddgdddgd�}|��|��|��g}|�	|||j
jd�x.tt
d�D]}|�|�|�|��d�q�W|�t|�d	�d
t
}dt
}|�|�|�t|�d�|�|���|�|���y|j|d
d�|�d�Wntjk
�rRYnXy|j|dd�|�d�Wntjk
�r�YnX|�|j|f|jd�|�|j|ddf|jd�xtt
�D]}|���q�W|�|��d�y|jd
d�|�d�Wntjk
�rYnXy|jdd�|�d�Wntjk
�rNYnX|�|jd|jd�|�|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 fullr)�blockz(Didn't appear to block with a full queueg{�G�z�?)�timeoutz+Didn't appear to time-out with a full queuerTrzQueue should be emptyz*Didn't appear to block with an empty queuez-Didn't appear to time-out with an empty queue)�empty)Tr)r�RuntimeError�
assertTruer5�assertFalse�full�put�dict�get�assertEqual�	__class__r�range�
QUEUE_SIZEr	r�queue�Fullr%�Empty)rrZtarget_orderZactual_order�i�lastr9rrr�basic_queue_testasd





z#BaseQueueTestMixin.basic_queue_testc	CsNxH|��}|dkr|��dS|j�|j|7_WdQRX|��qWdS)Nr)r<�	task_doner)r()rr�xrrr�worker�szBaseQueueTestMixin.workercCs�d|_g}x0dD](}tj|j|fd�}|��|�|�qWxtd�D]}|�|�qFW|��|�	|jt
td��d�xdD]}|�d�q~W|��x|D]}|��q�WdS)Nr)rr0)�targetr�dz0q.join() did not block until all tasks were done���)r(r
rrIr�appendr?r:�joinr=�sum)rrZthreadsrDr$rrr�queue_join_test�s 


z"BaseQueueTestMixin.queue_join_testcCs8|��}y|��Wntk
r(YnX|�d�dS)Nz(Did not detect task count going negative)�	type2testrG�
ValueErrorr)rrrrr�test_queue_task_done�sz'BaseQueueTestMixin.test_queue_task_donecCsL|��}|�|�|�|�y|��Wntk
r<YnX|�d�dS)Nz(Did not detect task count going negative)rQrPrGrRr)rrrrr�test_queue_join�s

z"BaseQueueTestMixin.test_queue_joincCs"|�t�}|�|�|�|�dS)N)rQr@rF)rrrrr�
test_basic�s

zBaseQueueTestMixin.test_basicc	CsV|�t�}|�t��|jddd�WdQRX|�t��|jddd�WdQRXdS)Nr0rL)r4)rQr@�assertRaisesrRr:r<)rrrrr�&test_negative_timeout_raises_exception�s

z9BaseQueueTestMixin.test_negative_timeout_raises_exceptionc	Cs�|�t�}xtt�D]}|�d�qW|�tj��|�d�WdQRXxtt�D]}|��qRW|�tj��|��WdQRXdS)Nr0)	rQr@r?�
put_nowaitrVrArB�
get_nowaitrC)rrrDrrr�test_nowait�s
zBaseQueueTestMixin.test_nowaitc	Cs�|�d�}|�d�|�d�|�d�|�tj��|�d�WdQRX|�|��d�d|_|�tj��|�d�WdQRXdS)N�r0r1�)	rQr:rVrArBrXr=rr)rrrrr�test_shrinking_queue�s



z'BaseQueueTestMixin.test_shrinking_queueN)
rrrr*rFrIrPrSrTrUrWrZr]rrrrr'\s9


r'c@seZdZejZdS)�	QueueTestN)rrrrAr-rQrrrrr^�sr^c@seZdZejZdS)�
LifoQueueTestN)rrrrAr.rQrrrrr_�sr_c@seZdZejZdS)�PriorityQueueTestN)rrrrAr/rQrrrrr`�sr`c@seZdZdS)�FailingQueueExceptionN)rrrrrrrrasrac@s$eZdZdd�Zdd�Zdd�ZdS)�FailingQueuecGs"d|_d|_tjj|f|��dS)NF)�
fail_next_put�
fail_next_getrAr-r)rrrrrrszFailingQueue.__init__cCs"|jrd|_td��tj�||�S)NFzYou Lose)rcrarAr-�_put)r�itemrrrreszFailingQueue._putcCs |jrd|_td��tj�|�S)NFzYou Lose)rdrarAr-�_get)rrrrrg
szFailingQueue._getN)rrrrrergrrrrrbsrbc@seZdZdd�Zdd�ZdS)�FailingQueueTestcCs�|��rtd��xttd�D]}|�|�qWd|_y|jddd�|�d�Wntk
rfYnXd|_y|jddd	�|�d�Wntk
r�YnX|�d
�|�t	|�d�d|_y"|�
|jd|jd
�|�d�Wntk
r�YnX|�d
�d|_y$|�|jd|jd
t�|�d�Wntk
�rBYnX|�d
�|�t	|�d�|��|�t	|�d�|�d
�|�t	|�d�|�
|jd|jd
�xtt�D]}|���q�W|�|��d�|�d�d|_
y|��|�d�Wntk
�rYnX|�|��d�d|_
y|jdd	�|�d�Wntk
�rXYnX|�|��d�|��|�|��d�d|_
y$|�|jd
|jdt�|�d�Wntk
�r�YnX|�|��d�|��|�|��d�dS)Nz&Call this function with an empty queuer0TZoopsr)r3z)The queue didn't fail when it should haveg�������?)r4rEzQueue should be full)r9r)r9TrzQueue should not be fullzQueue should be empty�firstzQueue should not be empty)r5)rr6r?r@r:rcrrar7r	r%r<r&rd)rrrDrrr�failing_queue_tests�




z#FailingQueueTest.failing_queue_testcCs tt�}|�|�|�|�dS)N)rbr@rj)rrrrr�test_failing_queuefs
z#FailingQueueTest.test_failing_queueN)rrrrjrkrrrrrhsQrhc@steZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�BaseSimpleQueueTestcCs|��|_dS)N)rQr)rrrrr*pszBaseSimpleQueueTest.setUpcCsTxNy|��}Wntk
r"dSX|�|�|��dkrt�|��d�qWdS)Ng�?g����MbP?)�pop�
IndexErrorr:�randomrr)rr�seq�rnd�valrrr�feedss
zBaseSimpleQueueTest.feedcCs(x"|��}||krdS|�|�qWdS)N)r<rM)rr�results�sentinelrrrrr�consume}s
zBaseSimpleQueueTest.consumecCsZxTx8y|jdd�}Wn tjk
r4t�d�YqXPqW||krHdS|�|�qWdS)NF)r3g�h㈵��>)r<rArCrrrM)rrrtrurrrrr�consume_nonblock�sz$BaseSimpleQueueTest.consume_nonblockcCsPxJx.y|jdd�}Wntjk
r*YqXPqW||kr>dS|�|�qWdS)Ng�h㈵��>)r4)r<rArCrM)rrrtrurrrrr�consume_timeout�sz#BaseSimpleQueueTest.consume_timeoutc		s�g�d�|�g|����t�d��g��fdd�������fdd�t|�D�}�����fdd�t|�D�}t�||��WdQRX|���|�����|�	��
�d��S)N�*cs��fdd�}|S)Nc
s@y�||�Wn,tk
r:}z��|�Wdd}~XYnXdS)N)�
BaseExceptionrM)r�kwargs�e)�
exceptions�frr�wrapper�szHBaseSimpleQueueTest.run_threads.<locals>.log_exceptions.<locals>.wrapperr)r~r)r})r~r�log_exceptions�sz7BaseSimpleQueueTest.run_threads.<locals>.log_exceptionscs$g|]}tj������fd��qS))rJr)r
r)�.0rD)�	feed_funcr�rrqrprr�
<listcomp>�sz3BaseSimpleQueueTest.run_threads.<locals>.<listcomp>cs$g|]}tj������fd��qS))rJr)r
r)r�rD)�consume_funcr�rrtrurrr��sr)�reverseroZRandomr?rZ
start_threadsr8r7r5r=r)	rZ	n_feedersZn_consumersr�inputsr�r�ZfeedersZ	consumersr)	r�r}r�r�rrtrqrurpr�run_threads�s"


zBaseSimpleQueueTest.run_threadsc	Cs�|j}|�|���|�|��d�|�d�|�|���|�|��d�|�d�|�d�|�d�|�|���|�|��d�|�|��d�|�|��d�|�|�	�d�|�|��d�|�|jdd�d�|�|���|�|��d�|�|jdd	�d�|�|���|�|��d�|�
tj��|jdd�WdQRX|�
tj��|jd
d	�WdQRX|�
tj��|�	�WdQRX|�|���|�|��d�dS)Nrr0r1r[r\F)r3g�������?)r4g����MbP?)
rr7r5r=rr:r8rXr<rYrVrArC)rrrrrrU�s:



zBaseSimpleQueueTest.test_basicc	Cs6|j}|�d�|�t��|jdd�WdQRXdS)Nr0rL)r4)rr:rVrRr<)rrrrrrW�s
z:BaseSimpleQueueTest.test_negative_timeout_raises_exceptioncCs:|j}ttd��}|�dd|||j|j�}|�||�dS)NrKr0)r�listr?r�rsrvr=)rrr�rtrrr�
test_order�szBaseSimpleQueueTest.test_ordercCsBd}|j}ttd��}|�|||||j|j�}|�t|�|�dS)N�2i')rr�r?r�rsrvr=�sorted)r�Nrr�rtrrr�test_many_threads�s
z%BaseSimpleQueueTest.test_many_threadscCsBd}|j}ttd��}|�|||||j|j�}|�t|�|�dS)Nr�i')rr�r?r�rsrwr=r�)rr�rr�rtrrr�test_many_threads_nonblock�sz.BaseSimpleQueueTest.test_many_threads_nonblockcCsBd}|j}ttd��}|�|||||j|j�}|�t|�|�dS)Nr�i�)rr�r?r�rsrxr=r�)rr�rr�rtrrr�test_many_threads_timeoutsz-BaseSimpleQueueTest.test_many_threads_timeoutcCsfGdd�d�}d}|j}xt|�D]}|�|��q"Wx*t|�D]}t�|���}|�|��q@WdS)Nc@seZdZdS)z.BaseSimpleQueueTest.test_references.<locals>.CN)rrrrrrr�Csr��)rr?r:�weakref�refr<ZassertIsNone)rr�r�rrDZwrrrr�test_referencessz#BaseSimpleQueueTest.test_referencesN)rrrr*rsrvrwrxr�rUrWr�r�r�r�r�rrrrrlns


!%	

rlc@seZdZejZdS)�PySimpleQueueTestN)rrrrAZ_PySimpleQueuerQrrrrr�!sr�zNo _queue module foundcs,eZdZ�fdd�Zdd�Zdd�Z�ZS)�CSimpleQueueTestcstj|_t���dS)N)�_queue�SimpleQueuerQ�superr*)r)r>rrr*(szCSimpleQueueTest.setUpcCs|�|jtj�dS)N)ZassertIsrQrAr�)rrrr�test_is_default,sz CSimpleQueueTest.test_is_defaultcs�|j�t���d}g}G��fdd�dt�}x6|�}��t���~|�����|d|kr.Pq.W|�|t	t
|d���dS)Ni'cs"eZdZdd�Z��fdd�ZdS)z2CSimpleQueueTest.test_reentrancy.<locals>.CircularcSs
||_dS)N)Zcircular)rrrrr;sz;CSimpleQueueTest.test_reentrancy.<locals>.Circular.__init__cs��t���dS)N)r:�next)r)�genrrr�__del__>sz:CSimpleQueueTest.test_reentrancy.<locals>.Circular.__del__N)rrrrr�r)r�rrr�Circular:sr�rLr0)r�	itertools�count�objectr:r�rMr<r=r�r?)rr�rtr��or)r�rr�test_reentrancy/sz CSimpleQueueTest.test_reentrancy)rrrr*r�r��
__classcell__rr)r>rr�%sr��__main__)"�collectionsr�rAro�sysr
rZunittestr�Ztestrr��ImportErrorr@r	rr
rr'ZTestCaser^r_r`�	Exceptionrar-rbrhrlr�ZskipIfr�r�mainrrrr�<module>s@
 "[4&