
    Mh6                     L   d dl Z d dlmZ d dlmZ d dlZd dlmZmZ d dlm	Z	 d dl
mZmZ  G d de          Z G d	 d
e          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Zedk    r ej                     dS dS )    N)	timedelta)random)genqueues)TimeoutError)gen_testAsyncTestCasec                   0    e Zd Zd Zd Zed             ZdS )QueueBasicTestc                    t          j        d          }|                     t          t	          |                    t          |                     |                     t          t	          |                    t          |                     |                                 t          |          t          |          fD ]}| 	                    |
                    d                     |                     d|           |                     d|           |                     d|           |                     d|           |                    d            |                    d            |                    d            t          |          t          |          fD ]D}|                     d|           |                     d	|           |                     d
|           Ed S )N   maxsizez<Queuez	maxsize=1z
getters[1]putterstasksgettersz
putters[1]ztasks=2)r   QueueassertInhexidreprassertNotInstrget
assertTrue
startswithput)selfqq_strs      X/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/tornado/test/queues_test.pytest_repr_and_strz QueueBasicTest.test_repr_and_str   s   L###c"Q%%jj$q''***RUUSVV,,,	!WWc!ff_ 	- 	-EOOE,,X66777MM+u---MM,...Y...We,,,,	d	d	d!WWc!ff_ 	, 	,EY...MM,...MM)U++++	, 	,    c                     t          j                    dD ]}                    |           fdt          d          D             }|                     g d|           d S )N)r         c                 8    g | ]}                                 S  )
get_nowait.0_r   s     r!   
<listcomp>z-QueueBasicTest.test_order.<locals>.<listcomp>4   s!    222A222r#   r%   )r   r   
put_nowaitrangeassertEqual)r   iitemsr   s      @r!   
test_orderzQueueBasicTest.test_order/   sm    LNN 	 	ALLOOOO2222q222E*****r#   c              #     K   |                      t          t          j        d            |                      t          t          j        d           t          j        d          }|                     |                                           |                     |                                           | 	                    d|j
                   |                     |                    d                                                     |                     |                    d                                                     |                     |                                           |                     |                                           |                    d          }|                     |                                           | 	                    d|                                V            |                     |                                           |                     |                                           |                     |                                           d S )Nr   r&   r   r   )assertRaises	TypeErrorr   r   
ValueErrorr   emptyassertFalsefullr0   r   r   doner   )r   r   put2s      r!   test_maxsizezQueueBasicTest.test_maxsize7   s     )V\4@@@*flB???L###		""""""AI&&&a(((a(((###!!!uuQxx%%%15577]],,,		$$$###!!!!!r#   N)__name__
__module____qualname__r"   r3   r   r>   r(   r#   r!   r   r      sM        , , ,.+ + + " " X" " "r#   r   c                       e Zd Zed             Zd Zd Zed             Zed             Zed             Z	ed             Z
ed             Zed	             Zed
             ZdS )QueueGetTestc              #      K   t          j                    }|                    d           |                     d|                                V            d S Nr   )r   r   r.   r0   r   r   r   s     r!   test_blocking_getzQueueGetTest.test_blocking_getM   sH      LNN	Q15577]],,,,,r#   c                     t          j                    }|                    d           |                     d|                                           d S rE   )r   r   r.   r0   r)   rF   s     r!   test_nonblocking_getz!QueueGetTest.test_nonblocking_getS   s@    LNN	QALLNN+++++r#   c                 v    t          j                    }|                     t           j        |j                   d S N)r   r   r6   
QueueEmptyr)   rF   s     r!   test_nonblocking_get_exceptionz+QueueGetTest.test_nonblocking_get_exceptionX   s.    LNN&+Q\:::::r#   c              #     K   t          j        d          }|                    d           |                    d          }|                     d|                                V            |                     |V            d S Nr   r   )r   r   r.   r   r0   r   assertIsNoner   r   r   s      r!   test_get_with_puttersz"QueueGetTest.test_get_with_putters\   sq      LOO	QeeAhh15577]],,,99&&&&&r#   c              #     K   t          j                    }|                    d           | j                            d|j        d           | j                            d|j        d           |                     d|                    t          d                    V            |                     d|                    t          d                    V            d S )Nr   {Gz?r   {Gz?r&   secondstimeout)	r   r   r   io_loop
call_laterr.   r0   r   r   rF   s     r!   test_blocking_get_waitz#QueueGetTest.test_blocking_get_waitd   s      LNN	aalA666alA66615511E1E1E5#F#FFFHHH15511E1E1E5#F#FFFHHHHHr#   c              #   f  K   t          j                    }|                    t          d                    }|                                }|                     t
                    5  |V  d d d            n# 1 swxY w Y   |                    d           |                     d|V            d S )NrT   rV   rX   r   )r   r   r   r   r6   r   r.   r0   )r   r   get_timeoutr   s       r!   test_get_timeoutzQueueGetTest.test_get_timeoutm   s      LNNeeId$;$;$;e<<eegg|,, 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
Q3YY(((((s   (A99A= A=c              #      K   t          j                    }|                    t          d                    }|                    d           t          j        d          V  |                     d|V            d S )NrT   rV   rX   r   rU   )r   r   r   r   r   r   sleepr0   )r   r   r   s      r!   test_get_timeout_preemptedz'QueueGetTest.test_get_timeout_preemptedx   sr      LNNeeId333e44	aioo3YY(((((r#   c              #     K   t          j        d          fdt          d          D             }                    d          }|                     dt          j                             t          j        d          V  |                     dt          j                             | 	                    |
                                                               d           |                     d                                V            |                     dt          j                             |dd          D ]"}|                     t          |j                   #d S )Nr   c                 X    g | ]&}                     |t          d                     'S rT   rV   r   r   r+   r1   r   s     r!   r-   zBQueueGetTest.test_get_clears_timed_out_putters.<locals>.<listcomp>   2    HHH155Id33344HHHr#   
   rU      r   )r   r   r/   r   r0   len_puttersr   ra   r:   r<   r   r6   r   resultr   r   r   putterr   s       @r!   !test_get_clears_timed_out_puttersz.QueueGetTest.test_get_clears_timed_out_putters   s9     LOOHHHHeBiiHHHeeBiiS__---iooS__---$$$	b			15577]],,,C
OO,,,abbk 	; 	;FlFM::::	; 	;r#   c              #     K   t          j                    fdt          d          D             }t          j                                                  }|                     dt          j                             t          j
        d          V  |                     dt          j                             |                     |                                                                            |                     dt          j                             |D ]"}|                     t          |j                   #d S )Nc           	      z    g | ]7}t          j                            t          d                               8S re   asyncioensure_futurer   r   r*   s     r!   r-   zBQueueGetTest.test_get_clears_timed_out_getters.<locals>.<listcomp>   H     
 
 
FGG!!%%	$(?(?(?"@"@AA
 
 
r#   ri   rj   rU   r&   )r   r   r/   rt   ru   r   r0   rk   _gettersr   ra   r:   r<   r6   r   rm   r   r   r   getterr   s       @r!   !test_get_clears_timed_out_gettersz.QueueGetTest.test_get_clears_timed_out_getters   s&     LNN
 
 
 
KPQS99
 
 
 #AEEGG,,S__---iooS__---$$$	C
OO,,, 	; 	;FlFM::::	; 	;r#   c              #     K   t          j                    t          d          D ]}                    |           fd} |            V }|                     |t          t          d                               d S )N   c                  d   K   g } 2 3 d {V }|                      |           |dk    r| c S '6 d S )N   )append)resultsr1   r   s     r!   fz&QueueGetTest.test_async_for.<locals>.f   sf      G # # # # # # #aq!!!66"NNN  11s   /)r   r   r/   r   r0   list)r   r1   r   r   r   s       @r!   test_async_forzQueueGetTest.test_async_for   s      LNNq 	 	AEE!HHHH	# 	# 	# 	# 	# ))$uQxx..11111r#   N)r?   r@   rA   r   rG   rI   rM   rR   r\   r_   rb   rp   rz   r   r(   r#   r!   rC   rC   L   s       - - X-
, , ,
; ; ; ' ' X' I I XI ) ) X) ) ) X) ; ; X; ; ; X; 2 2 X2 2 2r#   rC   c                       e Zd Zed             Zd Zed             Zed             Zed             Zed             Z	ed             Z
ed             Zed	             Zed
             ZdS )QueuePutTestc                     t          j                    }|                    d           |                     d|                                           d S rE   )r   r   r   r0   r)   rF   s     r!   test_blocking_putzQueuePutTest.test_blocking_put   s@    LNN	aALLNN+++++r#   c                     t          j        d          }|                    d           |                     t           j        |j        d           d S rO   )r   r   r   r6   	QueueFullr.   rF   s     r!   test_nonblocking_put_exceptionz+QueuePutTest.test_nonblocking_put_exception   sA    LOO	a&*AL!<<<<<r#   c              #   <  K   t          j                    }|                                }|                                }|                    d          V  |                     d|V            |                    d          V  |                     d|V            d S Nr   r   )r   r   r   r   r0   r   r   get0get1s       r!   test_put_with_gettersz"QueuePutTest.test_put_with_getters   s      LNNuuwwuuwweeAhh4ZZ)))eeAhh4ZZ)))))r#   c              #   l  K   t          j                    }|                                }|                                }|                    d           t          j        V  |                     d|V            |                    d           t          j        V  |                     d|V            d S r   )r   r   r   r.   r   momentr0   r   s       r!   !test_nonblocking_put_with_gettersz.QueuePutTest.test_nonblocking_put_with_getters   s      LNNuuwwuuww	Qj4ZZ)))	Qj4ZZ)))))r#   c              #     K   t          j        d                              d           fd}| j                            d|           | j                            d|                               d                              d          g}|                     t          d |D                                  |V  d S )Nr   r   c                  0                                       d S rK   )r   )r   s   r!   get_and_discardz<QueuePutTest.test_blocking_put_wait.<locals>.get_and_discard   s    EEGGGGGr#   rT   rU   c              3   >   K   | ]}|                                 V  d S rK   )r<   )r+   r   s     r!   	<genexpr>z6QueuePutTest.test_blocking_put_wait.<locals>.<genexpr>   s*      77!QVVXX777777r#   )r   r   r.   rZ   r[   r   r:   any)r   r   futuresr   s      @r!   test_blocking_put_waitz#QueuePutTest.test_blocking_put_wait   s      LOO	Q	 	 	 	 	 	o666o6665588QUU1XX&77w77777888r#   c              #     K   t          j        d          }|                    d           |                    dt	          d                    }|                    d          }|                     t                    5  |V  d d d            n# 1 swxY w Y   |                     d|                                           |                     d|	                                V            |V  d S )Nr   r   rT   rV   rX   r&   )
r   r   r.   r   r   r6   r   r0   r)   r   )r   r   put_timeoutr   s       r!   test_put_timeoutzQueuePutTest.test_put_timeout   s     LOO	QeeAy'>'>'>e??eeAhh|,, 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	ALLNN+++15577]],,, 					s    BBBc              #     K   t          j        d          }|                    d           |                    dt	          d                    }|                                 t          j        d          V  |V  d S )Nr   r   rT   rV   rX   rU   )r   r   r.   r   r   r   r   ra   rQ   s      r!   test_put_timeout_preemptedz'QueuePutTest.test_put_timeout_preempted   sp      LOO	QeeAy666e77	ioo					r#   c              #     K   t          j        d          fdt          d          D             }                    d          }|                     dt          j                             t          j        d          V  |                     dt          j                             | 	                    |
                                                               d           |                     dt          j                             |dd          D ]"}|                     t          |j                   #d S )Nr   c                 X    g | ]&}                     |t          d                     'S re   rf   rg   s     r!   r-   zBQueuePutTest.test_put_clears_timed_out_putters.<locals>.<listcomp>   rh   r#   ri   rU   rj   r&   )r   r   r/   r   r0   rk   rl   r   ra   r:   r<   r6   r   rm   rn   s       @r!   !test_put_clears_timed_out_puttersz.QueuePutTest.test_put_clears_timed_out_putters   s     LOOHHHHeBiiHHHeeBiiS__---iooS__---$$$	b			C
OO,,,abbk 	; 	;FlFM::::	; 	;r#   c              #     K   t          j                    fdt          d          D             }t          j                                                  }                                 |                     dt          j                             t          j
        d          V  |                     dt          j                             |                     |                                                               d           |                     dt          j                             |                     d|V            |D ]"}|                     t          |j                   #d S )Nc           	      z    g | ]7}t          j                            t          d                               8S re   rs   r*   s     r!   r-   zBQueuePutTest.test_put_clears_timed_out_getters.<locals>.<listcomp>  rv   r#   ri      rU   r   r   )r   r   r/   rt   ru   r   r0   rk   rw   r   ra   r:   r<   r   r6   r   rm   rx   s       @r!   !test_put_clears_timed_out_gettersz.QueuePutTest.test_put_clears_timed_out_getters
  sO     LNN
 
 
 
KPQS99
 
 
 #AEEGG,,	S__---iooS__---$$$	aC
OO,,,3YY((( 	; 	;FlFM::::	; 	;r#   c              #   H  K   t          j        d          }|                     |                                           |                     |                                           |                    d           |                    d           |                     |                                           |                     |                                           |                     t           j        |j        d           | 	                    d|
                                           |                     |                                           |                     |                                           |                    d          V  |                    d          }|                     |                                           | 	                    d|                                V            |V  |                     |                                           d S )Ng?r   r   r   r&   r%   )r   r   r   r9   r:   r;   r.   r6   r   r0   r)   r   r<   r   rQ   s      r!   test_float_maxsizezQueuePutTest.test_float_maxsize  s      L%%%		""""""	Q	Q###!!!&*AL!<<<ALLNN+++###"""eeAhheeAhh$$$15577]],,,			!!!!!r#   N)r?   r@   rA   r   r   r   r   r   r   r   r   r   r   r   r(   r#   r!   r   r      s       , , X,
= = =
 * * X* 
* 
* X
*   X   X   X ; ; X; ; ; X;" " " X" " "r#   r   c                   z    e Zd Zej        Zd Zed             Zed             Z	ed             Z
ed             ZdS )QueueJoinTestc                 n    |                                  }|                     t          |j                   d S rK   )queue_classr6   r8   	task_donerF   s     r!   test_task_done_underflowz&QueueJoinTest.test_task_done_underflow9  s1    *ak22222r#   c              #      K                                     t          d          D ]}                    |           d _        t          j         fd            } |              |                                             V                       t          t          d                     j                   d S )Nd   r   c               3      K   	                                  V } xj        | z  c_                                         t          j        t                      dz            V  `)NTrT   )r   accumulatorr   r   ra   r   )itemr   r   s    r!   workerz,QueueJoinTest.test_task_done.<locals>.workerE  sa      1UUWW}}  D(  i400000	1r#   )	r   r/   r.   r   r   	coroutinejoinr0   sum)r   r1   r   r   s   `  @r!   test_task_donezQueueJoinTest.test_task_done=  s      s 	 	ALLOOOO		1 	1 	1 	1 	1 
	1 	ffhhU3ZZ$*:;;;;;r#   c              #   P  K   |                                  }|                    d           t          j        |                                          }|                     |                                           |                                V  |                     |                                           t          j	        V  |                     |                                           |
                                 |                     |                                           d S rE   )r   r.   rt   ru   r   r:   r<   r   r   r   r   r   )r   r   r   s      r!   test_task_done_delayz"QueueJoinTest.test_task_done_delayS  s       	Q$QVVXX..%%%eegg%%%j%%%			$$$$$r#   c              #      K   |                                  }|                                V  |                                V  d S rK   )r   r   rF   s     r!   test_join_empty_queuez#QueueJoinTest.test_join_empty_queuea  s=      ffhhffhhr#   c              #     K   |                                  }|                    d           |                     t                    5  |                    t          d                    V  d d d            d S # 1 swxY w Y   d S )Nr   rT   rV   rX   )r   r   r6   r   r   r   rF   s     r!   test_join_timeoutzQueueJoinTest.test_join_timeoutg  s      	a|,, 	: 	:&&4!8!8!8&99999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s   'A::A>A>N)r?   r@   rA   r   r   r   r   r   r   r   r   r   r(   r#   r!   r   r   6  s        ,K3 3 3 < < X<* % % X%   X
 : : X: : :r#   r   c                   2    e Zd Zej        Zed             ZdS )PriorityQueueJoinTestc              #     K   |                      d          }|                    d           |                    d           |                     |                                           |                    d           |                    d           |                     d|                                           |                     d|                                V            |                     d|                                           |                     d|                                V            |                     |                                           d S )Nr&   r   )r   a)r   b)r%   c)r&   d	r   r.   r   r;   r   r0   r)   r   r9   rF   s     r!   r3   z PriorityQueueJoinTest.test_orderr  s     Q''	X	X!!!	h	h1<<>>222!%%''MM3331<<>>222!%%''MM333		"""""r#   N)r?   r@   rA   r   PriorityQueuer   r   r3   r(   r#   r!   r   r   o  s5        &K# # X# # #r#   r   c                   2    e Zd Zej        Zed             ZdS )LifoQueueJoinTestc              #     K   |                      d          }|                    d           |                    d           |                     |                                           |                    d           |                    d           |                     d|                                           |                     d|                                V            |                     d|                                           |                     d|                                V            |                     |                                           d S )Nr&   r   r   r   r%   r   rF   s     r!   r3   zLifoQueueJoinTest.test_order  s     Q''	Q	Q!!!	a	aALLNN+++15577]],,,ALLNN+++15577]],,,		"""""r#   N)r?   r@   rA   r   	LifoQueuer   r   r3   r(   r#   r!   r   r     s5        "K# # X# # #r#   r   c                   $    e Zd Zed             ZdS )ProducerConsumerTestc              #   R  K   t          j        d          g t          j        fd            }t          j        fd            } |              |            V                                  V  |                     t          t          d                               d S )Nr%   r   c               3      K   	                                                       V                                             >rK   )r   r   r   )historyr   s   r!   consumerz=ProducerConsumerTest.test_producer_consumer.<locals>.consumer  s<      aeegg///r#   c               3   ^   K   t          d          D ]}                     |           V  d S )Nri   )r/   r   )r   r   s    r!   producerz=ProducerConsumerTest.test_producer_consumer.<locals>.producer  s?      b		 " "eeDkk!!!!" "r#   ri   )r   r   r   r   r   r0   r   r/   )r   r   r   r   r   s      @@r!   test_producer_consumerz+ProducerConsumerTest.test_producer_consumer  s      L### 
	 	 	 	 	 
	
 
	" 	" 	" 	" 
	" 	


hjjffhheBii'22222r#   N)r?   r@   rA   r   r   r(   r#   r!   r   r     s-        3 3 X3 3 3r#   r   __main__)rt   datetimer   r   unittesttornador   r   tornado.genr   tornado.testingr   r	   r   rC   r   r   r   r   r   r?   mainr(   r#   r!   <module>r      s                         $ $ $ $ $ $ 3 3 3 3 3 3 3 32" 2" 2" 2" 2"] 2" 2" 2"jb2 b2 b2 b2 b2= b2 b2 b2JB" B" B" B" B"= B" B" B"J6: 6: 6: 6: 6:M 6: 6: 6:r# # # # #M # # #$# # # # # # # #$3 3 3 3 3= 3 3 36 zHMOOOOO r#   