
    DhH                     f    d dl Z d dlmZ d dlZd dlm Z ddlmZ g dZ	 e
d      Z G d de      Zy)	    N)TestCase   )
async_test)ABC   c                       e 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ed	        Zed
        Zed        Zed        Zed        Zy)AsyncioTestc                 L    | j                  t        j                  t               y N)assertEqualaitasyncioaio)selfs    |/var/www/fastuser/data/www/generator.snapmosaic.io/flask_app/venv/lib/python3.12/site-packages/aioitertools/tests/asyncio.pytest_importzAsyncioTest.test_import   s    c*    c                   K   d }g d}g d}|D cg c]  } || 	 }}t        j                  t        j                  |             d {   }| j	                  ||       |D cg c]  } || 	 }}g }t        j                  |      2 3 d {   }|j                  |       c c}w 7 _c c}w 7 "6 | j	                  ||       y w)Nc                 L   K   t        j                  |       d {    | S 7 wr   r   sleep)numberdurations     r   sleepyz-AsyncioTest.test_as_completed.<locals>.sleepy   s"     --)))M *   $"$))r   g333333?)   皙?)r	         ?)r   r   r	   )r   listr   as_completedr   append)r   r   pairsexpectedpairfuturesresultsvalues           r   test_as_completedzAsyncioTest.test_as_completed   s     	 /-23T64=33!1!1'!:;;(+-23T64=33++G4 	" 	"%NN5! 4; 4	"4(+sQ   CB&-CB+C&B-2CB4B2B4C-C2B44Cc                 Z  K   ddg}|D cg c]  }t        j                  |  }}| j                  t         j                        5  t	        j
                  t        j                  |d             d {    d d d        |D cg c]  }t        j                  |  }}d}| j                  t         j                        5  t        j                  |d      2 3 d {   }|dz  }c c}w 7 x# 1 sw Y   wxY wc c}w 7 "6 	 d d d        n# 1 sw Y   nxY w| j                  |d       y w)N)g      ?)r   r    )timeoutr   r   )	r   r   assertRaisesTimeoutErrorr   r!   r   r"   r   )r   callsargsr'   r(   _s         r   test_as_completed_timeoutz%AsyncioTest.test_as_completed_timeout&   s     49:D7==$'::w334 	C((3++GSABBB	C 5::D7==$'::w334 	++GSA  a1 ;B	C 	C ;A	 	 	 	!$s   	D+C'!D+.C.3C,4C.8D+C:#D+ DDC?D D'D+,C..C73D+?DD	D+DD+c                 P  K   d } |        |        |       g}t        t        d            dz  }g }t        j                  |      2 3 d {   }|j	                  |       7 6 | j                  dt        |             | j                  t        |      t        |             y w)Nc                 t   K   t        d      D ]$  } |  t        j                  d       d {    & y 7 wN
   r   ranger   r   is    r   genz*AsyncioTest.test_as_generated.<locals>.gen7   3     2Y 'mmA&&&'&   ,868r6   r	      )	r!   r8   r   as_generatedr#   r   lenassertListEqualsortedr   r;   gensr%   r(   r)   s         r   test_as_generatedzAsyncioTest.test_as_generated5   s     	'
 suce$b	?Q&++D1 	" 	"%NN5!	"1S\*VH-vg?s+   AB&A%A#A%B&#A%%AB&c                   K   d }d } |        |       g}g }| j                  t        d      5  t        j                  |      2 3 d {   }|j	                  |       7 6 	 d d d        n# 1 sw Y   nxY w| j                  d|       y w)Nc                    K   t        d      D ]$  } |  t        j                  d       d {    & t        d      7 wNr	   r   faker8   r   r   	Exceptionr9   s    r   gen1z5AsyncioTest.test_as_generated_exception.<locals>.gen1F   B     1X 'mmA&&&' F## '   ,AA Ac                 t   K   t        d      D ]$  } |  t        j                  d       d {    & y 7 wr5   r7   r9   s    r   gen2z5AsyncioTest.test_as_generated_exception.<locals>.gen2L   r<   r=   rI   r6   )assertRaisesRegexrK   r   r?   r#   assertNotIn)r   rL   rP   rD   r(   r)   s         r   test_as_generated_exceptionz'AsyncioTest.test_as_generated_exceptionD   s     	$	'
 ##Iv6 	&"//5 & &eu%&5	& 	& 	& 	W%s@   -BA-A"	A 
A"A- A""A-$	B-A62Bc                   K   d }d } |        |       g}t        t        d            t        t        d            z   }g }g }t        j                  |d      2 3 d {   }t	        |t
              r|j                  |       +|j                  |       =7 86 | j                  t        |      t        |             | j                  dt        |             | j                  |d   t
               y w)	Nc                    K   t        d      D ]$  } |  t        j                  d       d {    & t        d      7 wrH   rJ   r9   s    r   rL   z<AsyncioTest.test_as_generated_return_exception.<locals>.gen1Z   rM   rN   c                 t   K   t        d      D ]$  } |  t        j                  d       d {    & y 7 wr5   r7   r9   s    r   rP   z<AsyncioTest.test_as_generated_return_exception.<locals>.gen2`   r<   r=   r	   r6   Treturn_exceptionsr   r   )r!   r8   r   r?   
isinstancerK   r#   rA   rB   r   r@   assertIsInstance)r   rL   rP   rD   r%   errorsr(   r)   s           r   "test_as_generated_return_exceptionz.AsyncioTest.test_as_generated_return_exceptionX   s     	$	'
 a>DrO3++DDI 	& 	&%%+e$u%		&I
 	VH-vg?CK(fQi3s+   AC4BB B#5C4BAC4c                 D  K   ddt         fd} |d       |       g}t        t        d            t        t        d            z   }g }t        j                  |      2 3 d {   }|j                  |       7 6 | j                  t        |      t        |             y w)Nmaxc                   K   t        d      D ]9  }|| kD  rt        j                  | t        j                  d       d {    ; y 7 w)N   r   )r8   r   CancelledErrorr   )r^   r:   s     r   r;   z9AsyncioTest.test_as_generated_task_cancelled.<locals>.gent   sH     1X 's7!000mmA&&&	' 's   AAAAr   r	   r`   )r6   )intr!   r8   r   r?   r#   rA   rB   rC   s         r    test_as_generated_task_cancelledz,AsyncioTest.test_as_generated_task_cancelledr   s     	'3 	' Aa>DqN2++D1 	" 	"%NN5!	"1VH-vg?s*   AB A:!A8"A:%B 8A::&B c                    K   d g d}g fd}t        j                   |             }t        j                  d       d {    |j                          | d {    | j	                  t        |      t                     y 7 C7 +w)Nc                 t   K   t        d      D ]$  } |  t        j                  d       d {    & y 7 w)Nr`   r   r7   r9   s    r   r;   z4AsyncioTest.test_as_generated_cancelled.<locals>.gen   s3     1X )mmC((()(r=   )r   r   r   r   c                     K                   g} t        j                  |       2 3 d {   }j                  |       7 6 S wr   )r   r?   r#   )rD   r)   r;   r(   s     r   fooz4AsyncioTest.test_as_generated_cancelled.<locals>.foo   sH     E35>D"//5 & &eu%&5Ns%   $AAAAAAAg333333?)r   ensure_futurer   cancelrA   rB   )r   r%   rg   taskr;   r(   s       @@r   test_as_generated_cancelledz'AsyncioTest.test_as_generated_cancelled   su     	)
  	 $$SU+mmD!!!

VH-vg?	 	"s$   ABB
B B!*BBc                 \  K   d } |d      t        j                   |d            g}t        t         d      r+|j                  t        j                   |d                   n|j                   |d             t        j                  |  d {   }| j                  g d|       y 7 w)Nc                 L   K   t        j                  d       d {    | S 7 wNMbP?r   args    r   fnz/AsyncioTest.test_gather_input_types.<locals>.fn   "     --&&&J 'r   r   r   create_taskr	   )r   r   r	   )r   rh   hasattrr#   rt   r   gatherr   )r   rr   fnsresults       r   test_gather_input_typesz#AsyncioTest.test_gather_input_types   s     	 !ug++BqE237M*JJw**2a512JJr!uzz3''F+ (s   BB,B*B,c                   K   ddfd}t        j                  t        d      D cg c]
  } ||       c}ddi d {   }| j                  d       | j                  g d|       t        j                  t        d      D cg c]
  } ||       c}  d {   }| j                  d       | j                  g d|       y c c}w 7 c c}w 7 7w)Nr   c                 z   K   dz  t              t        j                  d       d {    dz  | S 7 w)Nr   ro   )r^   r   r   )rq   countermax_counters    r   rr   z+AsyncioTest.test_gather_limited.<locals>.fn   sA     qLGk73K--&&&qLGJ 's   *;9;r6   limitr   )
r   r   r   r	      r`            	   )r   rv   r8   r   )r   rr   r:   rx   r|   r}   s       @@r   test_gather_limitedzAsyncioTest.test_gather_limited   s     	 zz59#=aBqE#=GQGGK(7@ zz59#=aBqE#=>>	
 	7@ $>G
 $>>s:   'CC
CCACCC!C"1CCc           	      6  K   d } |d      } |d      }t        j                  ||||||d       d {   }| j                  g d|        |d      } |d      }t        j                  ||||||       d {   }| j                  g d|       y 7 _7 w)Nc                 L   K   t        j                  d       d {    | S 7 wrn   r   rp   s    r   rr   z1AsyncioTest.test_gather_limited_dupes.<locals>.fn   rs   r   r   r   )r~   )r   r   r   r   r   r   )r   rv   r   )r   rr   fgrx   s        r   test_gather_limited_dupesz%AsyncioTest.test_gather_limited_dupes   s     	 qEqEzz!Q1a!<<+V4qEqEzz!Q1a33+V4 =
 4s"   3BBAB;B<BBc                   K    G d dt               dfd	}| j                        5  t        j                   |dd       |d             d {    d d d        t        j                   |dd       |d      d       d {   }| j	                  |d	   d       | j                  |d
          y 7 e# 1 sw Y   dxY w7 =w)Nc                       e Zd Zy)<AsyncioTest.test_gather_with_exceptions.<locals>.MyExceptionN)__name__
__module____qualname__ r   r   MyExceptionr      s    r   r   c                 b   K   t        j                  |        d {    |r |       | S 7 wr   r   )rq   failr   s     r   rr   z3AsyncioTest.test_gather_with_exceptions.<locals>.fn   s1     --$$$!#&&J %s   /-/gMb`?T)r   ro   rW   r   r   )F)rK   r-   r   rv   r   rZ   )r   rr   rx   r   s      @r   test_gather_with_exceptionsz'AsyncioTest.test_gather_with_exceptions   s     	) 		 {+ 	>**RD12e9===	> zzu4 "U)t
 
 	E*fQi5 >	> 	>
s:   'C(B:B8B:1CC	/C8B::C?Cc                   K   ddfdfd}t        t        d      rt        j                   |             }nt        j                   |             }t        j                  d       d {    |j                          | j                  t        j                        5  | d {    d d d        | j                         | j                         y 7 i7 1# 1 sw Y   0xY ww)NFc                     K   	 dt        j                  d       d {    y 7 # t         j                  $ r d  w xY ww)NTr6   )r   r   ra   )	cancelledstarteds   r   _fnz+AsyncioTest.test_gather_cancel.<locals>._fn   s?     mmB'''))  	s#   A' %' A' >Ac                  V   K   t        j                                  d {    y 7 wr   )r   rv   )r   s   r   _gatherz/AsyncioTest.test_gather_cancel.<locals>._gather   s     **SU###s   )')rt   r   )	ru   r   rt   rh   r   ri   r-   ra   
assertTrue)r   r   rj   r   r   r   s      @@@r   test_gather_cancelzAsyncioTest.test_gather_cancel   s     			$ 7M*&&wy1D((3DmmAw556 	JJ	 	" 	 	 	s<   A-C,2C33C,&C ,C-C 1,C,C  C)%C,N)r   r   r   r   r   r*   r2   rE   rS   r\   rc   rk   ry   r   r   r   r   r   r   r   r   r      s    + , ,$ % % @ @ & && 4 42 @ @ @ @, , , A A0 5 5 6 6& # #r   r   )r   unittestr   aioitertoolsr   aioitertools.asyncior   helpersr   slistr8   sranger   r   r   r   <module>r      s2       " 	qt#( t#r   