
    עic\              	       @   d Z ddlZddlmZ ddlZddlmZ ddlZ	 ddlZdZ	ddlmZ ddlZddlZdd	lmZ dd
lmZ ddlmZ ej*                  j-                  e	d      ZdZ ej2                  d      d        Zefdee   fdZdefdZd Zd Zd Z d Z!d Z"d;dZ#d Z$d Z% ejL                  dddddd d!g"      Z'd# Z(d$ Z)d% Z*d& Z+d' Z,d( Z-d) Z.d* Z/d+ Z0d, Z1d- Z2d. Z3d/efd0Z4eejj                  jm                  ejn                  d1d2      d3               Z8eejj                  jm                  ejn                  d1d2      d4               Z9eejj                  jm                  ejn                  d1d2      d5               Z:eejj                  jm                  ejn                  d1d2      d6               Z;eejj                  jm                  ejn                  d1d2      d7               Z<eejj                  jm                  ejn                  d1d2      d8               Z=eejj                  jm                  ejn                  d1d2      d9               Z>eejj                  jm                  ejn                  d1d2      d:               Z?y# e
$ r dZ	 ej                         ZY zw xY w)<zTests for http retries.    N)Sequence)mockFT)credentials   )_api_client)errors)typesz(aiohttp is not installed, skipping test.)reason)    i  i  i    )autousec               #   *   K   d  dt         _        y w)NF)
api_clienthas_aiohttp     g/sites/domain-asset-master/.venv/lib/python3.12/site-packages/google/genai/tests/client/test_retries.pyreset_has_aiohttpr   6   s      *s   retried_codesc                 J    t        dd      D cg c]	  }|| vs| c}S c c}w )Nd   iX  )range)r   codes     r   _final_codesr   <   s#     c?	H4d-.G$	HH	Hs   	  r   c                 H    t        j                  | dt        |       id      S )Nstatus-coder   )status_codeheaderscontent)httpxResponsestr)r   s    r   _httpx_responser$   @   s%    	c$i(
 r   c                      t        j                  d       } t        | j                               ddhk(  sJ | d   j                  dk(  sJ | d   sJ y )Nstopreraise   )r   
retry_argssetkeysmax_attempt_number)argss    r   test_retry_args_disabledr.   K   sT    			t	$$	TYY[	fi0	00	0	f	(	(A	--	-	ir   c                     t        j                  t        j                               } t	        | j                               h dk(  sJ | d   j                  dk(  sJ | d   }|j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ | d   }t        D ]1  }	 t        j                  j                  t        |             J d	        t#               D ]2  }	 t        j                  j                  t        |             | d
   r2J  y # t        j                  $ r}|j!                  |      sJ Y d }~d }~ww xY w# t        j                  $ r}|j!                  |      rJ Y d }~hd }~ww xY w)N>   r&   waitretryr'   before_sleepr&      r0      r(   <   r1   Expected APIError to be raised.r'   )r   r)   r	   HttpRetryOptionsr*   r+   r,   exp_baseinitialjittermax_RETRIED_CODESr   APIErrorraise_for_responser$   	predicater   )r-   r0   r1   r   es        r   %test_retry_args_enabled_with_defaultsrA   S   st   			u557	8$	TYY[	  
  
 
f	(	(A	--	-	f$	!									R
w-%  d oo(()>?555U  n d$oo(()>? 	?? ??  __Q  ?? $####$s0   4/D$2(E$E7EEF*FFc                     g fd} t        j                  di t        j                  t	        j
                               }	  ||        J d       # t        j                  $ r Y nw xY wt              dk(  sJ d   d   z
  t        j                  d      k\  sJ d   d   z
  t        j                  d      k\  sJ d   d   z
  t        j                  d	      k\  sJ d	   d   z
  t        j                  d
      k\  sJ y )Nc                      t         j                   j                         } j                  |        t        j                  j                  t        d            )Nr   )datetimenowappendr   r=   r>   r$   )rE   
timestampss    r   fnztest_retry_wait.<locals>.fn}   s?    





!Cc
//
,
,_S-A
BBr   r6   r3   r(   r   )secondsr4   r         r   )tenacityRetryingr   r)   r	   r7   r   r=   lenrD   	timedelta)rH   retryingrG   s     @r   test_retry_waitrQ   z   s   *C
  e4467(	RL3335	 		 
ZA			AA	&(*<*<Q*G	GG	G	AA	&(*<*<Q*G	GG	G	AA	&(*<*<Q*G	GG	G	AA	&(*<*<Q*G	GG	Gs   A A)(A)c            	         t        j                  dddddddg      } t        j                  |       }|d   j                  dk(  sJ |d	   }|j
                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |d
   }dD ]1  }	 t        j                  j                  t        |             J d        t        ddg      D ]+  }	 t        j                  j                  t        |             - y # t        j                  $ r}|j                  |      sJ Y d }~d }~ww xY w# t        j                  $ r}|j                  |      rJ Y d }~d }~ww xY w)N
   r   g      ?g      ?r   r   attemptsinitial_delay	max_delayr8   r:   http_status_codesr&   r0   r1   )r   r   r6   )r	   r7   r   r)   r,   r9   r;   r8   r:   r   r=   r>   r$   r?   r   )optionsr)   r0   r1   r   r@   s         r   =test_retry_args_enabled_with_custom_values_are_not_overriddenrZ      sk   ""c
' $$W-*	F		.	."	44	4	F	$				S	#					
W
%  d oo(()>?555U  C:& $d$oo(()>?$ ??  __Q  ?? $####$s0   /D(D:D7D22D7:E*E%%E*c                  \    t        j                  dt        j                  d      dfd      S )Nzgoogle.auth.defaultmagic_tokentest_projectT)return_valueautospec)r   patchr   Credentialsr   r   r   _patch_auth_defaultrb      s,    	++M:NK
 r   c                 Z    | xs t        j                         } d|i| _        d|i| _        | S )N	transport)r	   HttpOptionsclient_argsasync_client_args)http_optionsrd   async_transports      r   _transport_optionsrj      s5    4!2!2!4,)95,$/#A, 	r   c                     t        j                  t        j                        } t	        d      | j
                  _        t        j                  dddt        |             }t               5  |j                  dd	i 
      }| j
                  j                          |j                  d   dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nspec   Tr]   globalrd   vertexaiprojectlocationrh   GETpathhttp_methodrv   request_dictr   200)r   Mockr!   BaseTransportr$   handle_requestr^   r   BaseApiClientrj   rb   requestassert_called_oncer   mock_transportclientresponses      r   6test_disabled_retries_successful_request_executes_oncer      s    99%"5"56./>s/C.,##%?	&  4~~%f2~NH!!446M*e3334 4 4s   ,AB99Cc                     t        j                  t        j                        } t	        d      | j
                  _        t        j                  dddt        |             }t               5  	 |j                  dd	i 
       J d       # t        j                  $ r}|j                  dk(  sJ Y d }~nd }~ww xY w| j
                  j                          d d d        y # 1 sw Y   y xY w)Nrl   r   Tr]   ro   rp   rq   ru   rv   rw   r6   )r   r{   r!   r|   r$   r}   r^   r   r~   rj   rb   r   r   r=   r   r   r   r   r@   s      r   2test_disabled_retries_failed_request_executes_oncer      s    99%"5"56./>s/C.,##%?	&  7nnV"nE555U?? VVs]]!!4467 7 7s0   ,C.B		B7B2-C2B77CC&r4   r(   g?r   r   rT   c            
         t        j                  t        j                        } t	        d      | j
                  _        t        j                  dddt        t        j                  t              |             }t               5  |j                  d	d
i       }| j
                  j                          |j                   d   dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nrl   rn   Tr]   ro   retry_optionsrh   rd   rq   ru   rv   rw   r   rz   )r   r{   r!   r|   r$   r}   r^   r   r~   rj   r	   re   _RETRY_OPTIONSrb   r   r   r   r   s      r   -test_retries_successful_request_executes_oncer      s    99%"5"56./>s/C.,##%((~F"	&  4~~%f2~NH!!446M*e3334 4 4s   ACCc            
         t        j                  t        j                        } t	        d      t	        d      f| j
                  _        t        j                  dddt        t        j                  t              |       	      }t               5  |j                  d
di       }| j
                  j                          |j                   d   dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nrl   r   rn   Tr]   ro   r   r   rq   ru   rv   rw   r   rz   )r   r{   r!   r|   r$   r}   side_effectr   r~   rj   r	   re   r   rb   r   assert_calledr   r   s      r   0test_retries_failed_request_retries_successfullyr     s    99%"5"56.cc/.+
 ##%((~F"	&  4~~%f2~NH!!//1M*e3334 4 4s   ACC&c            	         t        j                  t        j                        } t	        d      t	        d      f| j
                  _        t        j                  dddt        |             }t               5  |j                  d	d
i t        j                  t                    }| j
                  j                          |j                   d   dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nrl   r   rn   Tr]   ro   rp   rq   ru   rv   r   rx   rv   ry   rh   r   rz   )r   r{   r!   r|   r$   r}   r   r   r~   rj   rb   r   r	   re   r   r   r   r   s      r   Atest_retries_failed_request_retries_successfully_at_request_levelr   "  s    99%"5"56.cc/.+
 ##%"	&  
4~~&&(
	  H !!//1M*e333
4 
4 
4s   7ACC&c            
         t        j                  t        j                        } t	        d      t	        d      f| j
                  _        t        j                  dddt        t        j                  t              |       	      }t               5  	 |j                  d
di        J d       # t        j                   $ r}|j"                  dk(  sJ Y d }~nd }~ww xY w| j
                  j%                          d d d        y # 1 sw Y   y xY w)Nrl   r   r   Tr]   ro   r   r   rq   ru   rv   rw   r6   )r   r{   r!   r|   r$   r}   r   r   r~   rj   r	   re   r   rb   r   r   r=   r   r   r   s      r   2test_retries_failed_request_retries_unsuccessfullyr   ?  s    99%"5"56.cc/.+
 ##%((~F"	&  2nnV"nE555U?? VVs]]!!//12 2 2s0   DB--C CDCDD
c                     t        j                  t        j                        } t	        d      t	        d      f| j
                  _        t        j                  dddt        |             }t               5  	 |j                  d	d
i dt        i       J d       # t        j                  $ r}|j                  dk(  sJ Y d }~nd }~ww xY w| j
                  j!                          d d d        y # 1 sw Y   y xY w)Nrl   r   r   Tr]   ro   rp   rq   ru   rv   r   r   r6   )r   r{   r!   r|   r$   r}   r   r   r~   rj   rb   r   r   r   r=   r   r   r   s      r   Ctest_retries_failed_request_retries_unsuccessfully_at_request_levelr   Y  s    99%"5"56.cc/.+
 ##%"	&  2	nn'8	   655U?? VVs]]!!//12 2 2s0   7C/9"BC	.C?C/C		C//C8c                  T    dt         _        d } t        j                   |               y )NFc                    K   t        j                  t        j                        } t	        d      | j
                  _        t        j                  dddt        |             }t               5  |j                  dd	i 
       d {   }| j
                  j                          |j                  d   dk(  sJ 	 d d d        y 7 <# 1 sw Y   y xY ww)Nrl   rn   Tr]   ro   ri   rq   ru   rv   rw   r   rz   )r   r{   r!   AsyncBaseTransportr$   handle_async_requestr^   r   r~   rj   rb   async_requestr   r   r   s      r   runzItest_async_disabled_retries_successful_request_executes_once.<locals>.run}  s     YYE$<$<=N7Fs7KN''4%%'G	F 
	 6++&r ,  h ))<<>m,5556 66 6s0   A,C.CC2C:	CCC
Cr   r   asyncior   r   s    r   <test_async_disabled_retries_successful_request_executes_oncer   z  s     *6$ 
++cer   c                  T    dt         _        d } t        j                   |               y )NFc                    K   t        j                  t        j                        } t	        d      | j
                  _        t        j                  dddt        |             }t               5  	 |j                  dd	i 
       d {    J d       7 # t        j                  $ r}|j                  dk(  sJ Y d }~nd }~ww xY w| j
                  j                          d d d        y # 1 sw Y   y xY ww)Nrl   r   Tr]   ro   r   rq   ru   rv   rw   r6   )r   r{   r!   r   r$   r   r^   r   r~   rj   rb   r   r   r=   r   r   r   s      r   r   zEtest_async_disabled_retries_failed_request_executes_once.<locals>.run  s     YYE$<$<=N7Fs7KN''4%%'G	F 
	 ?""F # 
 	
 	
 	877u	
 __ vv}}))<<>? ? ?sN   A,C5.C)0BBBC(B>9C)>CC) 	C5)C2.C5r   r   s    r   8test_async_disabled_retries_failed_request_executes_oncer     s     *?* 
++cer   c                  T    dt         _        d } t        j                   |               y )NFc            
        K   t        j                  t        j                        } t	        d      | j
                  _        t        j                  dddt        t        j                  t              |             }t               5  |j                  d	d
i        d {   }| j
                  j                          |j                   d   dk(  sJ 	 d d d        y 7 <# 1 sw Y   y xY ww)Nrl   rn   Tr]   ro   r   rh   ri   rq   ru   rv   rw   r   rz   )r   r{   r!   r   r$   r   r^   r   r~   rj   r	   re   r   rb   r   r   r   r   s      r   r   z@test_async_retries_successful_request_executes_once.<locals>.run  s     YYE$<$<=N7Fs7KN''4%%'**H*
	F 
	 6++&r ,  h ))<<>m,5556 66 6s0   BC*CC 2C	C*CC'#C*r   r   s    r   3test_async_retries_successful_request_executes_oncer     s     *6* 
++cer   c                  T    dt         _        d } t        j                   |               y )NFc            
        K   t        j                  t        j                        } t	        d      t	        d      f| j
                  _        t        j                  dddt        t        j                  t              |       	      }t               5  |j                  d
di        d {   }| j
                  j                          |j                   d   dk(  sJ 	 d d d        y 7 <# 1 sw Y   y xY ww)Nrl   r   rn   Tr]   ro   r   r   rq   ru   rv   rw   r   rz   )r   r{   r!   r   r$   r   r   r   r~   rj   r	   re   r   rb   r   r   r   r   s      r   r   zCtest_async_retries_failed_request_retries_successfully.<locals>.run  s     YYE$<$<=N7N''3
 %%'**H*
	F 
	 6++&r ,  h ))779m,5556 66 6s0   BC5C)*C'+2C)	C5'C))C2.C5r   r   s    r   6test_async_retries_failed_request_retries_successfullyr     s     *60 
++cer   c                  T    dt         _        d } t        j                   |               y )NFc            	        K   t        j                  t        j                        } t	        d      t	        d      f| j
                  _        t        j                  dddt        |             }t               5  |j                  d	d
i t        j                  t                     d {   }| j
                  j                          |j                   d   dk(  sJ 	 d d d        y 7 <# 1 sw Y   y xY ww)Nrl   r   rn   Tr]   ro   r   rq   ru   rv   r   r   r   rz   )r   r{   r!   r   r$   r   r   r   r~   rj   rb   r   r	   re   r   r   r   r   s      r   r   zTtest_async_retries_failed_request_retries_successfully_at_request_level.<locals>.run  s     YYE$<$<=N7N''3
 %%'*
	F 
	 
6++((*	 ,  h ))779m,555
6 
6
6 
6s0   A7C591C)*C'+2C)	C5'C))C2.C5r   r   s    r   Gtest_async_retries_failed_request_retries_successfully_at_request_levelr     s     *68 
++cer   c                  T    dt         _        d } t        j                   |               y )NFc            
      6  K   t        j                  t        j                        } t	        d      t	        d      f| j
                  _        t        j                  dddt        t        j                  t              |       	      }t               5  	 |j                  d
di        d {    J d       7 # t        j                   $ r}|j"                  dk(  sJ Y d }~nd }~ww xY w| j
                  j%                          d d d        y # 1 sw Y   y xY ww)Nrl   r   r   Tr]   ro   r   r   rq   ru   rv   rw   r6   )r   r{   r!   r   r$   r   r   r   r~   rj   r	   re   r   rb   r   r   r=   r   r   r   s      r   r   zEtest_async_retries_failed_request_retries_unsuccessfully.<locals>.run  s     YYE$<$<=N7N''3
 %%'**H*
	F 
	 :""F # 
 	
 	
 	877u	
 __ vv}}))779: : :sN   BDDB9+B7,B99C'C"D"C''D	DDDr   r   s    r   8test_async_retries_failed_request_retries_unsuccessfullyr     s     *:6 
++cer   c                  T    dt         _        d } t        j                   |               y )NFc            	      6  K   t        j                  t        j                        } t	        d      t	        d      f| j
                  _        t        j                  dddt        |             }t               5  	 |j                  d	d
i t        j                  t                     d {    J d       7 # t        j                   $ r}|j"                  dk(  sJ Y d }~nd }~ww xY w| j
                  j%                          d d d        y # 1 sw Y   y xY ww)Nrl   r   r   Tr]   ro   r   rq   ru   rv   r   r   r6   )r   r{   r!   r   r$   r   r   r   r~   rj   rb   r   r	   re   r   r   r=   r   r   r   s      r   r   zVtest_async_retries_failed_request_retries_unsuccessfully_at_request_level.<locals>.run,  s     YYE$<$<=N7N''3
 %%'*
	F 
	 :	""**H	 # 
 	
 	
 	877u	
 __ vv}}))779: : :sN   A7D9D;0B9+B7,B99C'C"D"C''D	DDDr   r   s    r   Itest_async_retries_failed_request_retries_unsuccessfully_at_request_levelr   )  s     *:: 
++cer   statusc                    K   t        j                  t        j                        }| |_        dt        |       i|_        i |j                  _        d|j                  _        |S w)z&Has to return a coroutine hence async.rl   r   test)
r   r{   aiohttpClientResponser   r#   r   jsonr^   text)r   r   s     r   _aiohttp_async_responser   O  sO     YYG223((/#S[1(!(--%(--	/s   A"A$r   )r_   c                 Z     dt         _         fd}t        j                   |              y )NTc                  "  K   t        d      _        t        j                  ddd      } t	               5  | j                  ddi        d {   }j                          |j                  d	   d
k(  sJ 	 d d d        y 7 2# 1 sw Y   y xY ww)Nrn   Tr]   ro   rr   rs   rt   ru   rv   rw   r   rz   )r   r^   r   r~   rb   r   r   r   r   r   mock_requests     r   r   zKtest_aiohttp_disabled_retries_successful_request_executes_once.<locals>.run`  s      7 <L%%F 
	 6++&r ,  h %%'m,5556 66 6s.   3BBB(B8	BBBBr   r   r   s   ` r   >test_aiohttp_disabled_retries_successful_request_executes_oncer   Y  s"    
  *6  
++cer   c                 Z     dt         _         fd}t        j                   |              y )NTc                  j  K   t        d      _        t        j                  ddd      } t	               5  	 | j                  ddi        d {    J d	       7 # t        j                  $ r}|j                  dk(  sJ Y d }~nd }~ww xY wj                          d d d        y # 1 sw Y   y xY ww)
Nr   Tr]   ro   r   ru   rv   rw   r6   )
r   r^   r   r~   rb   r   r   r=   r   r   r   r@   r   s     r   r   zGtest_aiohttp_disabled_retries_failed_request_executes_once.<locals>.runx  s      7 <L%%F 
	 (""F # 
 	
 	
 	877u	
 __ vv}}%%'( ( (sK   3B3B'AAAB0BB'BB'	B3'B0,B3r   r   s   ` r   :test_aiohttp_disabled_retries_failed_request_executes_oncer   s  s"      *(& 
++cer   c                 Z     dt         _         fd}t        j                   |              y )NTc            
      h  K   t        d      _        t        j                  dddt	        t        j                  t                          } t               5  | j                  dd	i 
       d {   }j                          |j                  d   dk(  sJ 	 d d d        y 7 2# 1 sw Y   y xY ww)Nrn   Tr]   ro   r   rh   rq   ru   rv   rw   r   rz   )r   r^   r   r~   rj   r	   re   r   rb   r   r   r   r   s     r   r   zBtest_aiohttp_retries_successful_request_executes_once.<locals>.run  s      7 <L%%'**H
	F 
	 6++&r ,  h %%'m,5556 66 6s0   AB2B&1B$2(B&	B2$B&&B/+B2r   r   s   ` r   5test_aiohttp_retries_successful_request_executes_oncer     s"      *6& 
++cer   c                 Z     dt         _         fd}t        j                   |              y )NTc            
      ~  K   t        d      t        d      f_        t        j                  dddt	        t        j                  t                          } t               5  | j                  d	d
i        d {   }j                          |j                  d   dk(  sJ 	 d d d        y 7 2# 1 sw Y   y xY ww)Nr   rn   Tr]   ro   r   r   rq   ru   rv   rw   r   rz   )r   r   r   r~   rj   r	   re   r   rb   r   r   r   r   s     r   r   zEtest_aiohttp_retries_failed_request_retries_successfully.<locals>.run  s     $$ L
 %%'**H
	F 
	 6++&r ,  h   "m,5556 66 6s0   A!B=$B1<B/=(B1&	B=/B11B:6B=r   r   s   ` r   8test_aiohttp_retries_failed_request_retries_successfullyr     s"      *6, 
++cer   c                 Z     dt         _         fd}t        j                   |              y )NTc            	      j  K   t        d      t        d      f_        t        j                  ddd      } t	               5  | j                  ddi t        j                  t        	      
       d {   }j                          |j                  d   dk(  sJ 	 d d d        y 7 2# 1 sw Y   y xY ww)Nr   rn   Tr]   ro   r   ru   rv   r   r   r   rz   )r   r   r   r~   rb   r   r	   re   r   r   r   r   s     r   r   zVtest_aiohttp_retries_failed_request_retries_successfully_at_request_level.<locals>.run  s     $$ L
 %%F 
	 
6++((*	 ,  h   "m,555
6 
6
6 
6s/   >B31B'2B%3(B'	B3%B''B0,B3r   r   s   ` r   Itest_aiohttp_retries_failed_request_retries_successfully_at_request_levelr     s"    
  *60 
++cer   c                 Z     dt         _         fd}t        j                   |              y )NTc            
        K   t        d      t        d      f_        t        j                  dddt	        t        j                  t                          } t               5  	 | j                  d	d
i        d {    J d       7 # t        j                  $ r}|j                  dk(  sJ Y d }~nd }~ww xY wj                          d d d        y # 1 sw Y   y xY ww)Nr   r   Tr]   ro   r   r   rq   ru   rv   rw   r6   )r   r   r   r~   rj   r	   re   r   rb   r   r   r=   r   r   r   s     r   r   zGtest_aiohttp_retries_failed_request_retries_unsuccessfully.<locals>.run  s     $$ L
 %%'**H
	F 
	 #""F # 
 	
 	
 	877u	
 __ vv}}  "# # #sN   A!C!$C&B=B	>BB9B4/C4B99C	C!CC!r   r   s   ` r   :test_aiohttp_retries_failed_request_retries_unsuccessfullyr     s"      *#2 
++cer   c                 Z     dt         _         fd}t        j                   |              y )NTc                    K   t        d      t        d      f_        t        j                  ddd      } t	               5  	 | j                  ddi d	t        i
       d {    J d       7 # t        j                  $ r}|j                  dk(  sJ Y d }~nd }~ww xY wj                          d d d        y # 1 sw Y   y xY ww)Nr   r   Tr]   ro   r   ru   rv   r   r   r6   )r   r   r   r~   rb   r   r   r   r=   r   r   r   s     r   r   zXtest_aiohttp_retries_failed_request_retries_unsuccessfully_at_request_level.<locals>.run  s     $$ L
 %%F 
	 #	"")>:	 # 
 	
 	
 	877u	
 __ vv}}  "# # #sM   >CB9A/!A-"A//BBB9BB90	C9C>Cr   r   s   ` r   Ktest_aiohttp_retries_failed_request_retries_unsuccessfully_at_request_levelr   
  s"    
  *#2 
++cer   c                 Z     dt         _         fd}t        j                   |              y )NTc                    K   t        j                  t         j                  j                  ddddd d d       t              t        d      f_        t        j                  ddd	      } t               5  | j                  d
di        d {   }j                          |j                  d   dk(  sJ 	 d d d        y 7 2# 1 sw Y   y xY ww)N	localhostP   FT)connection_keyos_errorrn   r]   ro   r   ru   rv   rw   r   rz   )r   ClientConnectorErrorclient_reqrepConnectionKeyOSErrorr   r   r   r~   rb   r   r   r   r   s     r   r   zMtest_aiohttp_retries_client_connector_error_retries_successfully.<locals>.run4  s     $$"00>>RdD$ 		
 	 $ L %%F 
	 6++&r ,  h   "m,5556 66 6s0   A1C4CB?(C6	C?CC
Cr   r   s   ` r   @test_aiohttp_retries_client_connector_error_retries_successfullyr   -  s"    
  *64 
++cer   )NNN)@__doc__r   collections.abcr   rD   unittestr   pytestr   AIOHTTP_NOT_INSTALLEDImportError	MagicMockgoogle.oauth2r   r!   rL    r   r   r   r	   markskipifrequires_aiohttpr<   fixturer   intr   r$   r.   rA   rQ   rZ   rb   rj   r   r   r7   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r`   objectClientSessionr   r   r   r   r   r   r   r   r   r   r   <module>r      s7      $   !
 &   )   ;;%%"L &  
 ! !
 1? I I# $NH2 $F4"7( (''Cj4(4.4:242B066<DB L#  7(()dC D 0 7(()dC D 2 7(()dC D 2 7(()dC D 8 7(()dC D @ 7(()dC D > 7(()dC D B 7(()dC D k   dnnGs   J JJ