
    2hhDR                     \   S r SSKrSSKrSSKJr  S r " S S\R                  5      r " S S\R                  5      r " S	 S
\R                  5      r	 " S S\R                  5      r
 " S S\R                  5      r " S S5      r " S S\\R                  5      r " S S\\R                  5      r " S S\\R                  5      r " S S5      r " S S\\R                  5      r " S S\\R                  5      r " S S\\R                  5      r\S:X  a  \R*                  " 5         gg) zTests for queues.py    N)GenericAliasc                  0    [         R                  " S 5        g N)asyncioset_event_loop_policy     F/opt/python-3.13.8/usr/lib/python3.13/test/test_asyncio/test_queues.pytearDownModuler      s    !!$'r	   c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)QueueBasicTests   c                 :  #    [         R                  " 5       nU R                  U" U5      R                  S5      U" U5      5        [	        [        U5      5      U" U5      ;   nU R                  X$5        [         R                  " 5       n[         R                  " 5        ISh  vN nUR                  UR                  5       5      n[         R                  " S5      I Sh  vN   U R                  SU" U5      ;   5        UR                  S5        SSS5      ISh  vN   U R                  SWI Sh  vN 5        [         R                  " SS9n[         R                  " 5        ISh  vN nUR                  S5        UR                  UR                  S5      5      n[         R                  " S5      I Sh  vN   U R                  SU" U5      ;   5        UR                  5         SSS5      ISh  vN   U R                  WR                  5       5        [         R                  " 5       nUR                  S5        U R                  S	U" U5      ;   5        g GN GNx GN@! , ISh  vN  (       d  f       GNV= f GNH GN N N! , ISh  vN  (       d  f       N= f7f)
zvTest 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()).
z<QueueNr   z_getters[1]   maxsize   z_putters[1]z
_queue=[1])r   Queue
assertTrue
startswithhexidassertEqual	TaskGroupcreate_taskgetsleep
put_nowaitput
get_nowaitdone)selffn	expect_idqid_is_presenttggetterputters           r
   _test_repr_or_str!QueueBasicTests._test_repr_or_str   s     MMO1((2BqE:BqE
be+2 MMO$$&&"^^AEEG,F--"""OOMRU23LLO '& 	&L) MM!$$$&&"LLO^^AEE!H-F--"""OOMRU23LLN '& 	&MMO	Q1-.7 ' #	 '&&& ) '
 # '&&&s   BJ!I"J%9II/IJIJ/I7
05J%I:&J)AJ4I=5.J#J.I?/A%JIJI4"I%#I4/	J:J=J?JJJ
JJc                 L   #    U R                  [        S5      I S h  vN   g  N7fNT)r*   reprr"   s    r
   	test_reprQueueBasicTests.test_repr8   s     $$T4000   $"$c                 L   #    U R                  [        S5      I S h  vN   g  N7f)NF)r*   strr/   s    r
   test_strQueueBasicTests.test_str;   s     $$S%000r2   c                     [         R                  [           nU R                  UR                  [        45        U R                  U[        5        g r   )r   r   intr   __args__assertIsInstancer   r"   r%   s     r
   test_generic_alias"QueueBasicTests.test_generic_alias>   s6    MM#cV,a.r	   c                 z  #    [         R                  " 5       nU R                  UR                  5       5        UR	                  S5      I S h  vN   U R                  UR                  5       5        U R                  SUR                  5       I S h  vN 5        U R                  UR                  5       5        g  Nk N*7fNr   )r   r   r   emptyr   assertFalser   r   r;   s     r
   
test_emptyQueueBasicTests.test_emptyC   sw     MMO	"eeAh#!%%'M*	" 	)s%   A	B;B7AB;B9
)B;9B;c                   #    [         R                  " 5       nU R                  UR                  5       5        [         R                  " SS9nUR	                  S5      I S h  vN   U R                  UR                  5       5        g  N$7f)Nr   r   )r   r   rA   fullr   r   r;   s     r
   	test_fullQueueBasicTests.test_fullK   sX     MMO"MM!$eeAh! 	s   ABB %Bc                   #    [         R                  " 5       nS H  nUR                  U5      I S h  vN   M     [        S5       Vs/ s H  o1R	                  5       I S h  vN PM     nnU R                  / SQU5        g  NM N!s  snf 7f)Nr      r   rJ   )r   r   r   ranger   r   r"   r%   i_itemss        r
   
test_orderQueueBasicTests.test_orderS   sf     MMOA%%(NN  ).a11uuw1E* 13   /BA?BBB
 B(BBBc                 &  ^^#    [         R                  " SS9mU R                  STR                  5        / mUU4S jn[         R                  " U" 5       5      n[        S5       H!  n[         R                  " S5      I S h  vN   M#     U R                  SS/T5        U R                  STR                  5       I S h  vN 5        [         R                  " S5      I S h  vN   U R                  / SQT5        U R                  STR                  5       I S h  vN 5        U R                  STR                  5       I S h  vN 5        U R                  UR                  5       5        U R                  UR                  5       5        g  GN N N Nv NP7f)Nr   r   c                     >#    [        S5       H-  n TR                  U 5      I S h  vN   TR                  U 5        M/     g N7f)NrJ   T)rK   r   append)rM   have_been_putr%   s    r
   r)   ,QueueBasicTests.test_maxsize.<locals>.putter`   s;     1XeeAh$$Q'   s   #AAAr   r   )r   r   r   )r   r   r   r   r   rK   r   r   r   r!   result)r"   r)   trM   rV   r%   s       @@r
   test_maxsizeQueueBasicTests.test_maxsize[   s!    MM!$AII&	 )qA--"""  	!Q/!%%'M* mmAM2!%%'M*!%%'M*!
# # * 	))s[   A<F F;F<F	
=!FF7FF
'F>F
?AF	FFFFr   N)__name__
__module____qualname____firstlineno__r*   r0   r5   r<   rB   rF   rP   rZ   __static_attributes__r   r	   r
   r   r      s+    (/T11/
#"+$r	   r   c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)QueueGetTestsx   c                    #    [         R                  " 5       nUR                  S5        U R                  SUR	                  5       I S h  vN 5        g  N	7fr?   )r   r   r   r   r   r;   s     r
   test_blocking_getQueueGetTests.test_blocking_getz   s5     MMO	Q!%%'M*Ms   AAA
	
Ac                   #    [         R                  " 5       n[         R                  " S5      nUR                  S5      I S h  vN   UR	                  5       nUR
                  R                  U5        U R                  SUR                  5       I S h  vN 5        U R                  UR                  5       5        U R                  UR                  5       5        g  N NI7fr?   )r   get_running_loopr   r   create_future_puttersrU   r   r   r   r!   assertIsNonerX   )r"   loopr%   waiters       r
   test_get_with_putters#QueueGetTests.test_get_with_putters   s     '')MM!eeAh##%	

&!!%%'M*&&--/* 	
 *s&   A CCACC
ACCc                   ^^^#    [         R                  " 5       n[         R                  " 5       m[         R                  " 5       mSmUUU4S jn[         R                  " U" 5       5      nTR                  5       I S h  vN   U R                  T5        UR                  STR                  S5        UI S h  vN nU R                  T5        U R                  SU5        g  N` N*7f)NFc                  h   >#    TR                  5         TR                  5       I S h  vN n SmU $  N7fr-   )setr   )resfinishedr%   starteds    r
   	queue_get7QueueGetTests.test_blocking_get_wait.<locals>.queue_get   s+     KKM-CHJ  s   $20	2{Gz?r   )r   rh   r   Eventr   waitrA   
call_laterr   r   r   )r"   rl   rv   queue_get_taskrs   rt   r%   ru   s        @@@r
   test_blocking_get_wait$QueueGetTests.test_blocking_get_wait   s     '')MMO--/	 !,,Y[9lln"allA.""!C  	 #s$   A8C"=C>7C"5C 6)C" C"c                     [         R                  " 5       nUR                  S5        U R                  SUR	                  5       5        g r?   r   r   r   r   r    r;   s     r
   test_nonblocking_get"QueueGetTests.test_nonblocking_get   .    MMO	QALLN+r	   c                     [         R                  " 5       nU R                  [         R                  UR                  5        g r   )r   r   assertRaises
QueueEmptyr    r;   s     r
   test_nonblocking_get_exception,QueueGetTests.test_nonblocking_get_exception   s'    MMO',,all;r	   c                 R  #    [         R                  " 5       n[         R                  " UR                  5       5      n[         R                  " UR                  5       5      n[         R                  " S5      I S h  vN   UR                  5         [         R                  " S5      I S h  vN   U R                  UR                  5       5        UR                  S5      I S h  vN   [         R                  " S5      I S h  vN   U R                  SUI S h  vN 5        g  N Nw NA N% N7fNr   a)
r   r   r   r   r   cancelr   r!   r   r   )r"   r%   t1t2s       r
   test_get_cancelled_race%QueueGetTests.test_get_cancelled_race   s     MMO  )  )mmA
		mmA	"eeCjmmABh' 	&sZ   A7D'9D:-D''D(7D'D! D'=D#>D'D%

D'D'!D'#D'%D'c                 p  #    [         R                  " SS9n[         R                  " UR                  S5      5        [         R                  " UR                  S5      5        U R	                  UR                  5       I S h  vN S5        U R	                  UR                  5       I S h  vN S5        g  N2 N7f)Nr   r   r   b)r   r   r   r   r   r   r;   s     r
   test_get_with_waiting_putters+QueueGetTests.test_get_with_waiting_putters   sw     MM!$AEE#J'AEE#J'quuw,quuw, '&s$   A=B6?B2 'B6'B4(B64B6c                 <  #    S nS nSn[         R                  " S5      n[         R                  " 5        IS h  vN nUR                  U" XC5      5        UR                  U" XC5      5        S S S 5      IS h  vN   g  NC N! , IS h  vN  (       d  f       g = f7f)Nc                 d   #    [        U5       H  nU R                  5       I S h  vN   M     g  N	7fr   )rK   r   )queuenum_expectedrN   s      r
   consumer<QueueGetTests.test_why_are_getters_waiting.<locals>.consumer   s&     <(iik!! )!s   "0.
0c                 f   #    [        U5       H  nU R                  U5      I S h  vN   M     g  N	7fr   )rK   r   )r   	num_itemsrM   s      r
   producer<QueueGetTests.test_why_are_getters_waiting.<locals>.producer   s(     9%iil"" &"s   #1/
1   r   r   r   r   r   )r"   r   r   producer_num_itemsr%   r'   s         r
   test_why_are_getters_waiting*QueueGetTests.test_why_are_getters_waiting   sl     	"	# MM!$$&&"NN8A:;NN8A:; '&&&&&sD   8BA>B/B-B8B 9B BBB	BBc                 :  #    [         R                  " SS9nU R                  [        5         [         R                  " UR                  5       S5      I S h  vN   S S S 5        U R                  [        UR                  5      S5        g  N2! , (       d  f       N6= f7f)Nr   r   g?r   )	r   r   r   TimeoutErrorwait_forr   r   len_getters)r"   r   s     r
   5test_cancelled_getters_not_being_held_in_self_gettersCQueueGetTests.test_cancelled_getters_not_being_held_in_self_getters   sj     a(|,""599;444 - 	U^^,a0 5 -,s.   *B)B
BB
.BB


BBr   N)r\   r]   r^   r_   re   rn   r}   r   r   r   r   r   r   r`   r   r	   r
   rb   rb   x   s/    ++!*,
<(-< 1r	   rb   c                   h    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rSrg)QueuePutTests   c                    #    [         R                  " 5       nUR                  S5      I S h  vN   U R                  SUR	                  5       I S h  vN 5        g  N- N7fr?   )r   r   r   r   r   r;   s     r
   test_blocking_putQueuePutTests.test_blocking_put   sA     MMO eeAh!%%'M* 	)s!   *AA#AA

AAc                   ^^^#    [         R                  " SS9m[         R                  " 5       mSmUUU4S jn[         R                  " 5       nUR	                  STR
                  5        [         R                  " U" 5       5      nTR                  5       I S h  vN   U R                  T5        UI S h  vN   U R                  T5        g  N1 N7f)Nr   r   Fc                     >#    TR                  5         TR                  S5      I S h  vN   TR                  S5      I S h  vN   Sm g  N  N	7f)Nr   r   T)rr   r   )rt   r%   ru   s   r
   	queue_put7QueuePutTests.test_blocking_put_wait.<locals>.queue_put   s:     KKM%%(NN%%(NNH s!   %AA	AAAArx   )
r   r   ry   rh   r{   r    r   rz   rA   r   )r"   r   rl   queue_put_taskrt   r%   ru   s       @@@r
   test_blocking_put_wait$QueuePutTests.test_blocking_put_wait   s     MM!$--/	 '')all+ ,,Y[9lln"! 	s$   BCC
C3C4CCc                     [         R                  " 5       nUR                  S5        U R                  SUR	                  5       5        g r?   r   r;   s     r
   test_nonblocking_put"QueuePutTests.test_nonblocking_put   r   r	   c                   #    [         R                  " 5       n[         R                  " UR                  5       5      n[         R                  " S5      I S h  vN   UR                  S5        UR                  S5        UR                  5          UI S h  vN   UR                  5       nU R                  SU5        g  Nd N)! [         R                   a2    [         R                  " UR                  5       5      nUI S h  vN     Nlf = f7fNr   r   r   )
r   r   r   r   r   r   r   CancelledErrorrX   r   )r"   r%   readerrX   s       r
   'test_get_cancel_drop_one_pending_reader5QueuePutTests.test_get_cancel_drop_one_pending_reader   s     MMO$$QUUW-mmA	Q	Q	LL F# 	 %% 	((1FLL	sT   ADB:6DB> B<B> $D<B> >=D;C><DDDDc                 4  #    [         R                  " 5       n[         R                  " 5        IS h  vN nUR                  UR	                  5       5      nUR                  UR	                  5       5      nUR                  UR	                  5       5      n[         R
                  " S5      I S h  vN   UR                  S5        UR                  S5        UR                  5         U R                  [         R                  5         UI S h  vN   S S S 5        UI S h  vN   S S S 5      IS h  vN   U R                  WR                  5       WR                  5       1SS15        g  GN1 N N^! , (       d  f       Nb= f N_ NQ! , IS h  vN  (       d  f       Nf= f7fr   )r   r   r   r   r   r   r   r   r   r   r   rX   )r"   r%   r'   reader1reader2reader3s         r
   )test_get_cancel_drop_many_pending_readers7QueuePutTests.test_get_cancel_drop_many_pending_readers  s    MMO$$&&"nnQUUW-GnnQUUW-GnnQUUW-G--"""LLOLLONN""7#9#9: ; MM '&" 	'..*GNN,<=1vF# '
 #  ;:  '&&&s   /FE"FA7E>,E%-AE>E)E'	E)E>E:E>F*E<+8F%E>'E))
E7	3E><F>FFFFc                 z  #    [         R                  " S5      nUR                  S5        [         R                  " UR	                  S5      5      n[         R
                  " S5      I S h  vN   UR                  5       nU R                  US5        UR                  5          UI S h  vN   UR                  5       nU R                  US5        U R                  UR                  5       S5        g  N NI! [         R                   a3    [         R                  " UR	                  S5      5      nUI S h  vN     Nf = f7f)Nr   r   r   )r   r   r   r   r   r   r    r   r   r   qsize)r"   r%   writervalue1value2s        r
   test_put_cancel_drop"QueuePutTests.test_put_cancel_drop'  s     MM!	Q $$QUU1X.mmA#	LL #A& 	 %% 	((q2FLL	sU   A&D;(C-)6D; C1 %C/&C1 *AD;/C1 1>D8/D20D85D;7D88D;c                     [         R                  " SS9nUR                  S5        U R                  [         R                  UR                  S5        g )Nr   r   r   )r   r   r   r   	QueueFullr;   s     r
   test_nonblocking_put_exception,QueuePutTests.test_nonblocking_put_exception?  s7    MM!&	Q'++Q\\1=r	   c                   #    [         R                  " SS9nUR                  S5        UR                  S5        U R                  UR	                  5       5        U R                  [         R                  UR                  S5        [         R                  " SS9nUR                  S5      I S h  vN   UR                  S5      I S h  vN   U R                  UR	                  5       5        g  N= N&7f)Ng?r   r   r   rJ   )r   r   r   r   rE   r   r   r   r;   s     r
   test_float_maxsize QueuePutTests.test_float_maxsizeD  s     MM#(	Q	Q!'++Q\\1=MM#(eeAheeAh! 	s$   B)C-+C),C-C+%C-+C-c                 J  ^#    [         R                  " 5       mU4S jn[         R                  " U" 5       5      nU R                  STR	                  5       I S h  vN 5        U R                  UR                  5       5        U R                  UR                  5       5        g  NG7f)Nc                  D   >#    T R                  S5      I S h  vN   g N7f)Nr   Tr   )r%   s   r
   r   3QueuePutTests.test_put_cancelled.<locals>.queue_putT  s     %%(NN      r   )r   r   r   r   r   r   r!   rX   )r"   r   rY   r%   s      @r
   test_put_cancelled QueuePutTests.test_put_cancelledQ  sk     MMO	 	,!%%'M*!
# *s   AB#B!
AB#c                 D  #    [         R                  " SS9n[         R                  " UR                  S5      5      n[         R                  " UR                  S5      5      n[         R                  " UR                  S5      5      n[         R                  " S5      I S h  vN   U R                  UR                  5       5        U R                  UR                  5       5        UR                  5         [         R                  " S5      I S h  vN   U R                  UR                  5       5        U R                  UR                  5       S5        [         R                  " S5      I S h  vN   U R                  UR                  5       S5        UI S h  vN   g  N N N3 N7f)Nr   r   r   r   Xr   )r   r   r   r   r   r   r!   rA   r   r   r    )r"   r%   put_aput_bput_cs        r
   test_put_cancelled_race%QueuePutTests.test_put_cancelled_race^  s    MM!$##AEE#J/##AEE#J/##AEE#J/mmA

%&mmA

%-mmA- 	
 	 	 	sJ   BF F A+F FAF (F))F FF F F F c                 ,  #    [         R                  " 5       n[         R                  " UR                  5       5      n[         R                  " S5      I S h  vN   UR                  S5      I S h  vN   U R                  UI S h  vN S5        g  N8 N! N7fr   )r   r   r   r   r   r   r   )r"   r%   rY   s      r
   test_put_with_waiting_getters+QueuePutTests.test_put_with_waiting_gettersr  sf     MMO(mmAeeCjq#& 	 s6   ABBB.B/BBBBBc                   ^#    [         R                  " S5      mU4S jnU4S jn[         R                  " 5        IS h  vN nUR                  U" 5       5        UR                  U" S5      5        UR                  U" S5      5        UR                  U" S5      5        UR                  U" S5      5        S S S 5      IS h  vN   g  N N! , IS h  vN  (       d  f       g = f7f)Nr   c                 D   >#    TR                  U 5      I S h  vN   g  N7fr   r   )itemr   s    r
   r)   :QueuePutTests.test_why_are_putters_waiting.<locals>.putter|  s     ))D/!!r   c                     >#    [         R                  " S5      I S h  vN   TR                  5       n [        U 5       H  nTR	                  5         M     g  N77f)Nr   )r   r   r   rK   r    )numrN   r   s     r
   r(   :QueuePutTests.test_why_are_putters_waiting.<locals>.getter  sB     --"""++-C3Z  "   #s   AA8Ar   r   rJ   r   )r"   r)   r(   r'   r   s       @r
   test_why_are_putters_waiting*QueuePutTests.test_why_are_putters_waitingy  s     a 	"	# $$&&"NN68$NN6!9%NN6!9%NN6!9%NN6!9% '&&&&&sG   <C%C C%A3C6C%C	C%	C%C"CC"C%c                   #    [         R                  " SS9nUR                  S5        [         R                  " UR	                  S5      5      n[         R
                  " S5      I S h  vN   U R                  [        UR                  5      S5        UR                  5         U R                  [         R                  5         UI S h  vN   S S S 5        U R                  [        UR                  5      S5        g  N N4! , (       d  f       N8= f7f)Nr   r   r   )r   r   r   r   r   r   r   r   rj   r   r   r   r"   r   put_tasks      r
   2test_cancelled_puts_not_being_held_in_self_putters@QueuePutTests.test_cancelled_puts_not_being_held_in_self_putters  s     a( &&uyy|4mmA 	U^^,a0w556NN 7U^^,a0 	  76s=   A$D&C8'AD?C<C:C<
/D:C<<
D
Dc                   #    [         R                  " S5      nUR                  S5        [         R                  " UR	                  S5      5      n[         R
                  " S5      I S h  vN   UR                  5         UR                  5         U R                  [         R                  5         UI S h  vN   S S S 5        g  NW N! , (       d  f       g = f7f)Nr   r   )
r   r   r   r   r   r   r    r   r   r   r   s      r
   0test_cancelled_put_silence_value_error_exception>QueuePutTests.test_cancelled_put_silence_value_error_exception  s     a  &&uyy|4mmA 	 	
 w556NN 76 	  76s=   A&C(C )AC,C2C3C7
CC
CCr   N)r\   r]   r^   r_   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r`   r   r	   r
   r   r      sI    +"(,
$,G,'0>
"$('&&1"r	   r   c                       \ rS rSrS rSrg)LifoQueueTestsi  c                   #    [         R                  " 5       nS H  nUR                  U5      I S h  vN   M     [        S5       Vs/ s H  o1R	                  5       I S h  vN PM     nnU R                  / SQU5        g  NM N!s  snf 7f)NrI   rJ   )r   rJ   r   )r   	LifoQueuer   rK   r   r   rL   s        r
   rP   LifoQueueTests.test_order  si     A%%(NN  ).a11uuw1E* 1rR   r   Nr\   r]   r^   r_   rP   r`   r   r	   r
   r   r         +r	   r   c                       \ rS rSrS rSrg)PriorityQueueTestsi  c                   #    [         R                  " 5       nS H  nUR                  U5      I S h  vN   M     [        S5       Vs/ s H  o1R	                  5       I S h  vN PM     nnU R                  / SQU5        g  NM N!s  snf 7f)NrI   rJ   )r   r   rJ   )r   PriorityQueuer   rK   r   r   rL   s        r
   rP   PriorityQueueTests.test_order  si     !!#A%%(NN  ).a11uuw1E* 1rR   r   Nr   r   r	   r
   r   r     r   r	   r   c                   0    \ rS rSrSrS rS rS rS rSr	g)_QueueJoinTestMixini  Nc                 d    U R                  5       nU R                  [        UR                  5        g r   )q_classr   
ValueError	task_doner;   s     r
   test_task_done_underflow,_QueueJoinTestMixin.test_task_done_underflow  s!    LLN*akk2r	   c                 h  ^^^#    U R                  5       m[        S5       H  nTR                  U5        M     SmSmUUU4S jn[        R                  " 5        IS h  vN n[        S5       Vs/ s H  nUR                  U" 5       5      PM     nnTR                  5       I S h  vN   U R                  [        [        S5      5      T5        Sm[        [        U5      5       H  nTR                  S5        M     S S S 5      IS h  vN   g  Ns  snf  Nn N! , IS h  vN  (       d  f       g = f7f)Nd   r   Tc                     >#    T(       a7  TR                  5       I S h  vN n TU -  mTR                  5         T(       a  M6  g g  N$7fr   )r   r  )r   accumulatorr%   runnings    r
   worker2_QueueJoinTestMixin.test_task_done.<locals>.worker  s5      UUW}t# '$s   AA AAr   F)
r  rK   r   r   r   r   joinr   sumr   )	r"   rM   r  r'   indextasksr  r%   r  s	         @@@r
   test_task_done"_QueueJoinTestMixin.test_task_done  s     LLNsALLO   	 $$&&""'(,"* ^^FH-"*  , &&(NNSs_k: G3u:&Q ' '&&, 	 '&&&sg   AD2DD2"D0 DD%D&AD<D2DD2DD2D/D!D/+D2c                    #    U R                  5       nUR                  5       I S h  vN   UR                  5       I S h  vN   g  N N7fr   )r  r  r;   s     r
   test_join_empty_queue)_QueueJoinTestMixin.test_join_empty_queue  s4     LLN
 ffhffh 	s   $AAAAAAc                    #    U R                  5       nU R                  UR                  5       S5        SUl        U R                  UR                  5       S5        g 7f)Nz	maxsize=0r   zmaxsize=0 tasks=2)r  r   _format_unfinished_tasksr;   s     r
   test_format_QueueJoinTestMixin.test_format  sE     LLNk2&9:s   AAr   )
r\   r]   r^   r_   r  r	  r  r  r  r`   r   r	   r
   r  r    s    G3 >;r	   r  c                   ,    \ rS rSr\R
                  rSrg)QueueJoinTestsi  r   Nr\   r]   r^   r_   r   r   r  r`   r   r	   r
   r!  r!    s    mmGr	   r!  c                   ,    \ rS rSr\R
                  rSrg)LifoQueueJoinTestsi  r   Nr\   r]   r^   r_   r   r   r  r`   r   r	   r
   r$  r$    s    Gr	   r$  c                   ,    \ rS rSr\R
                  rSrg)PriorityQueueJoinTestsi	  r   Nr\   r]   r^   r_   r   r  r  r`   r   r	   r
   r'  r'  	  s    ##Gr	   r'  c                   @    \ rS rSrSrS
S jrS rS rS rS r	S r
S	rg)_QueueShutdownTestMixini  Nc                 >    U R                  [        R                  US9$ )Nmsg)r   r   QueueShutDown)r"   r-  s     r
   assertRaisesShutdown,_QueueShutdownTestMixin.assertRaisesShutdown  s      !6!6C @@r	   c                    #    U R                  5       nUR                  5         U R                  UR                  5       S5        g 7f)Nzmaxsize=0 shutdown)r  shutdownr   r  r;   s     r
   r  #_QueueShutdownTestMixin.test_format  s0     LLN	

&:;s   AAc                 R  #    U R                  5       n[        R                  " 5       nUR                  UR	                  5       5      n[        R
                  " S5      I S h  vN   UR                  SS9  U R                  UR                  5       S5        UR                  5       I S h  vN   [        R
                  " S5      I S h  vN   U R                  UR                  5       5        U R                  5          UI S h  vN   S S S 5        U R                  5          UR                  S5      I S h  vN   S S S 5        U R                  5          UR                  S5        S S S 5        U R                  5          UR	                  5       I S h  vN   S S S 5        U R                  5          UR                  5         S S S 5        g  GNc GN GN N! , (       d  f       N= f N! , (       d  f       N= f! , (       d  f       N= f Nv! , (       d  f       Nz= f! , (       d  f       g = f7f)Nr   F	immediatedata)r  r   rh   r   r   r   r2  r   r   r  r   r!   r/  r   r   r    )r"   r%   rl   get_tasks       r
   test_shutdown_empty+_QueueShutdownTestMixin.test_shutdown_empty  s     LLN'')##AEEG,mmA 	


U
#A& ffh mmA(&&(NN ) &&(%%- )&&(LL  ) &&(%%'MM )&&(LLN )(1 	 	 	  )(
   )(((  )(((s   AH' G!AH''G(H'G	3H'9G?G GH'G!1G2G!6H'G2 H'8HHHH')H:
H'H'	H'G
GH'G!!
G/+H'2
H <H'H
HH'
H$ H'c                   #    U R                  SS9n[        R                  " 5       nUR                  S5        UR	                  UR                  5       5      nUR	                  UR                  S5      5      n[        R                  " S5      I S h  vN   U R                  UR                  5       5        UR                  SS9  U R                  UR                  5       S5        [        R                  " S5      I S h  vN   U R                  UR                  5       5        U R                  5          UI S h  vN   S S S 5        U R                  UR                  5       I S h  vN S5        [        R                  " S5      I S h  vN   U R                  UR                  5       5        U R                  5          UR                  S5      I S h  vN   S S S 5        U R                  5          UR                  S5        S S S 5        U R                  5          UR                  5       I S h  vN   S S S 5        U R                  5          UR!                  5         S S S 5        UR#                  5         [        R                  " S5      I S h  vN   U R                  UR                  5       5        UI S h  vN   U R%                  [&        SS	9   UR#                  5         S S S 5        g  GNS GN GN! , (       d  f       GN= f GN GN} GN7! , (       d  f       GN<= f! , (       d  f       GN$= f GN! , (       d  f       GN= f! , (       d  f       N= f N N! , (       d  f       g = f7f)
Nr   r   r7  data2r   Fr5  $Didn't appear to mark all tasks doner,  )r  r   rh   r   r   r  r   r   rA   r!   r2  r   r   r   r/  r   r    r  r   r  )r"   r%   rl   	join_taskr   s        r
   test_shutdown_nonempty._QueueShutdownTestMixin.test_shutdown_nonempty:  sm     LLL#'')	V$$QVVX.	##AEE'N3 mmA) 	


U
#A& mmA(&&(NN ) 	quuw/ mmA)* &&(%%- )&&(LL  ) &&(%%'MM )&&(LLN ) 	
mmA	()B  
 KKM
 
O 	 	  )( ' 	
   )(((  )((( 	
 
s'  BM&K#A+M&<K&=3M&0K,6K)7K,;&M&!K>""M&L3M&8LLLM&*L<M&L.(L+)L.-M&M 1M&M(M&0M1M&	M
M&&M&)K,,
K;6	M&M&L
LM&
L(#M&+L..
L=8M& 
M
M&M&
M#M&c                 $  #    U R                  5       n[        R                  " 5       nUR                  S5        UR	                  UR                  5       5      nUR                  SS9  U R                  UR                  5       S5        [        R                  " S5      I S h  vN   U R                  UR                  5       5        UI S h  vN   U R                  5          UR                  S5      I S h  vN   S S S 5        U R                  5          UR                  S5        S S S 5        U R                  5          UR                  5       I S h  vN   S S S 5        U R                  5          UR                  5         S S S 5        U R!                  ["        SS9   UR%                  5         S S S 5        g  GN N N! , (       d  f       N= f! , (       d  f       N= f N! , (       d  f       N= f! , (       d  f       Nx= f! , (       d  f       g = f7fNr7  Tr5  r   r=  r,  )r  r   rh   r   r   r  r2  r   r   r   r   r!   r/  r   r   r    r   r  r  r"   r%   rl   r>  s       r
   test_shutdown_immediate/_QueueShutdownTestMixin.test_shutdown_immediater  s}     LLN'')	V$$QVVX.	 	


T
"A& mmA	() &&(%%- )&&(LL  ) &&(%%'MM )&&(LLN ) B  
 KKM
 
! 	   )(((  )(((
 
s   BH F2!(H	F5
HF93F74F98HG
"H:GGGH+G.<HG?)
H5H7F99
GH

GHG
G+'H.
G<8H?
H	Hc                 @  #    U R                  5       n[        R                  " 5       nUR                  S5        UR                  S5        UR	                  UR                  5       5      nU R                  UR                  5       I S h  vN S5        UR                  SS9  U R                  UR                  5       S5        [        R                  " S5      I S h  vN   U R                  UR                  5       5        U R                  5          UR                  S5      I S h  vN   S S S 5        U R                  5          UR                  S5        S S S 5        U R                  5          UR                  5       I S h  vN   S S S 5        U R                  5          UR                  5         S S S 5        UR!                  5         U R#                  [$        SS9   UR!                  5         S S S 5        [        R                  " S5      I S h  vN   U R'                  UR                  5       5        UI S h  vN   g  GN GNb GN! , (       d  f       GN!= f! , (       d  f       GN	= f N! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f N Ni7frB  )r  r   rh   r   r   r  r   r   r2  r   r   rA   r!   r/  r   r    r  r   r  r   rC  s       r
   'test_shutdown_immediate_with_unfinished?_QueueShutdownTestMixin.test_shutdown_immediate_with_unfinished  s     LLN'')	V	V$$QVVX.	quuw/ 	


T
"A& mmA)* &&(%%- )&&(LL  ) &&(%%'MM )&&(LLN ) 	
B  
 KKM
 mmA	()A ' 	
   )(((  )(((

 
 	s   BJH8AJH;3JI"H>#I'J?IJ)I'=I%>I'JI8+,JJ	(!J	J
(J2J3J;J>I
IJ
I"J%I''
I51J8
JJ	
JJJr   )z Didn't appear to shut-down queue)r\   r]   r^   r_   r  r/  r  r9  r?  rD  rG  r`   r   r	   r
   r*  r*    s)    GA<
 D6p"H)r	   r*  c                   ,    \ rS rSr\R
                  rSrg)QueueShutdownTestsi  r   Nr"  r   r	   r
   rJ  rJ    s     mmGr	   rJ  c                   ,    \ rS rSr\R
                  rSrg)LifoQueueShutdownTestsi  r   Nr%  r   r	   r
   rL  rL    s     Gr	   rL  c                   ,    \ rS rSr\R
                  rSrg)PriorityQueueShutdownTestsi  r   Nr(  r   r	   r
   rN  rN    s     ##Gr	   rN  __main__)__doc__r   unittesttypesr   r   IsolatedAsyncioTestCaser   rb   r   r   r   r  r!  r$  r'  r*  rJ  rL  rN  r\   mainr   r	   r
   <module>rU     s'      (i$h66 i$X^1H44 ^1BWH44 Wt+X55 ++99 +5; 5;p((*J*J  ,h.N.N  $0(2R2R $r rjX== X== $X==$ zMMO r	   