Ë
    eQêj_9  ã                   óÔ   — d dl Z d dlmZ d dlmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZ d dlmZ dd„Z G d„ d«      Z G d„ d	e j*                  «      Zed
k(  r e j0                  «        yy)é    N)ÚApiException)ÚBackoffÚDEFAULT_BACKOFFÚDEFAULT_RETRYÚDEFAULT_RETRY_AFTER_BACKOFFÚis_conflictÚis_retry_after_responseÚis_too_many_requestsÚon_errorÚon_retry_after_errorÚretry_after_backoffÚretry_after_max_retriesÚretry_on_conflictÚretry_after_seconds)ÚRetryc                 ó4   — t        | ¬«      }|xs i |_        |S )N)Ústatus)r   Úheaders)r   r   Úerrors      ú`/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/kubernetes/utils/retry_test.pyÚapi_exceptionr   $   s   € Ü Ô'€EØ’M˜r€E„MØ€Ló    c                   ó   — e Zd Zd„ Zy)ÚRetryOptionsc                 ó   — || _         y ©N©Úattempts)Úselfr   s     r   Ú__init__zRetryOptions.__init__,   s	   € Ø ˆ�r   N)Ú__name__Ú
__module__Ú__qualname__r    © r   r   r   r   *   s   „ ó!r   r   c                   ó´   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú	RetryTestc           	      óÖ   — | j                  t        t        dddd¬«      «       | j                  t        t        dddd¬«      «       | j                  t        t        dd	dd	¬«      «       y )
Né   g{®Gáz„?ç      @gš™™™™™¹?©ÚstepsÚdurationÚfactorÚjitteré   ç      ð?é   ç        )ÚassertEqualr   r   r   r   ©r   s    r   Ú%test_default_backoffs_match_client_goz/RetryTest.test_default_backoffs_match_client_go2   sc   € Ø×ÑÜÜ˜! d°3¸sÔCô	
ð 	×ÑÜÜ˜! d°3¸sÔCô	
ð 	×ÑÜ'Ü˜" s°3¸sÔCõ	
r   c                 ó  — | j                  t        d «      d«       | j                  t        d«      d«       | j                  t        d«      d«       | j                  t        d«      d«       | j                  t        t        d¬«      «      d«       | j                  t        t        d¬«      «      d«       | j                  t        t        d¬«      «      d«       | j                  t	        d«      j
                  d	«       y )
Né
   Fr   é   é   )Útotalr   é   r(   )r3   r   r   r   r   r+   r4   s    r   Ú3test_retry_after_backoff_uses_configuration_retriesz=RetryTest.test_retry_after_backoff_uses_configuration_retries@   sÆ   € Ø×ÑÔ0°Ó6¸Ô;Ø×ÑÔ0°Ó7¸Ô;Ø×ÑÔ0°Ó3°QÔ7Ø×ÑÔ0°Ó3°QÔ7Ø×ÑÔ0´¸Q´Ó@À!ÔDØ×ÑÔ0´ÀqÔ1IÓJÈAÔNØ×ÑÔ0´ÀqÔ1IÓJÈAÔNØ×ÑÔ,¨QÓ/×5Ñ5°qÕ9r   c           
      ó°   — t        ddddd¬«      }| j                  t        d |«      |«       | j                  t        d|«      t        ddddd¬«      «       y )	Nr(   r0   ç       @g333333Ó?r)   )r+   r,   r-   r.   Úcapr;   r9   )r   r3   r   )r   Ú
configureds     r   Ú*test_retry_after_backoff_can_be_configuredz4RetryTest.test_retry_after_backoff_can_be_configuredJ   s^   € ÜØ˜c¨#°c¸sôDˆ
ð 	×ÑÔ,¨T°:Ó>À
ÔKØ×ÑÜ  :Ó.ÜØ #¨c¸#À3ôHõ	
r   c                 ó¢   ‡— g Šˆfd„}t        t        ddd¬«      d„ |«      }| j                  |d«       | j                  t        ‰«      d«       y )	Nc                  ó(   •— ‰ j                  d«       y)Nr;   Úok©Úappendr   s   €r   Úfnz9RetryTest.test_on_error_returns_without_retry.<locals>.fnX   s   ø€ Ø�O‰O˜AÔØr   r8   r0   r>   ©r+   r,   r-   c                  ó   — y)NTr$   ©Úes    r   ú<lambda>z?RetryTest.test_on_error_returns_without_retry.<locals>.<lambda>^   ó   � r   rD   r;   )r   r   r3   Úlen©r   rG   Úresultr   s      @r   Ú#test_on_error_returns_without_retryz-RetryTest.test_on_error_returns_without_retryU   sQ   ø€ Øˆô	ô Ü˜! c°#Ô6ÙØó
ˆð 	×Ñ˜ Ô&Ø×Ñœ˜X›¨Õ*r   c                 óê   ‡— g Šg }ˆfd„}t        t        ddd¬«      d„ ||j                  d„ ¬«      }| j                  |d	«       | j                  t	        ‰«      d
«       | j                  |ddg«       y )Nc                  óZ   •— ‰ j                  d«       t        ‰ «      dk  rt        d«      ‚y©Nr;   r8   éô  rD   ©rF   rN   r   r   s   €r   rG   z<RetryTest.test_on_error_retries_retriable_errors.<locals>.fni   ó)   ø€ Ø�O‰O˜AÔÜ�8‹}˜qÒ Ü# CÓ(Ð(Ør   r(   r0   r>   rH   c                 ó"   — t        | dd «      dk(  S ©Nr   rU   ©ÚgetattrrJ   s    r   rL   zBRetryTest.test_on_error_retries_retriable_errors.<locals>.<lambda>q   ó   € ”g˜a ¨4Ó0°CÑ7€ r   c                   ó   — y©Nr2   r$   r$   r   r   rL   zBRetryTest.test_on_error_retries_retriable_errors.<locals>.<lambda>t   rM   r   ©Ú
sleep_funcÚrandom_funcrD   r8   )r   r   rF   r3   rN   ©r   ÚsleepsrG   rP   r   s       @r   Ú&test_on_error_retries_retriable_errorsz0RetryTest.test_on_error_retries_retriable_errorse   st   ø€ ØˆØˆô	ô Ü˜! c°#Ô6Ù7ØØ—}‘}Ù#ô
ˆð 	×Ñ˜ Ô&Ø×Ñœ˜X›¨Ô*Ø×Ñ˜ # s Õ,r   c                 ól  ‡‡— t        d«      Šg Šg }ˆˆfd„}| j                  t        «      5 }t        t	        ddd¬«      d„ ||j
                  d„ ¬	«       d d d «       | j                  j                  ‰«       | j                  t        ‰«      d«       | j                  |ddg«       y # 1 sw Y   ŒUxY w)
NrU   c                  ó*   •— ‰ j                  d«       ‰‚©Nr;   rE   ©r   Ú
test_errors   €€r   rG   z4RetryTest.test_on_error_exhausts_retries.<locals>.fn€   ó   ø€ Ø�O‰O˜AÔØÐr   r8   r0   r>   rH   c                 ó"   — t        | dd «      dk(  S rY   rZ   rJ   s    r   rL   z:RetryTest.test_on_error_exhausts_retries.<locals>.<lambda>‡   ó   € œ' ! X¨tÓ4¸Ñ;€ r   c                   ó   — yr^   r$   r$   r   r   rL   z:RetryTest.test_on_error_exhausts_retries.<locals>.<lambda>Š   rM   r   r_   ©
r   ÚassertRaisesr   r   r   rF   ÚassertIsÚ	exceptionr3   rN   ©r   rc   rG   Úctxr   ri   s       @@r   Útest_on_error_exhausts_retriesz(RetryTest.test_on_error_exhausts_retries{   s£   ù€ Ü" 3Ó'ˆ
ØˆØˆõ	ð ×Ñœ|Ó,ð 	°ÜÜ˜a¨#°cÔ:Ù;ØØ!Ÿ=™=Ù'õ÷	ð 	�‰�c—m‘m ZÔ0Ø×Ñœ˜X›¨Ô*Ø×Ñ˜ # s Õ,÷	ð 	ús   ­)B*Â*B3c                 ó  — g }d„ }| j                  t        «      5 }t        t        ddd¬«      d„ ||j                  ¬«       d d d «       | j                  j                  j                  d«       | j                  |g «       y # 1 sw Y   ŒBxY w)	Nc                  ó   — t        d«      ‚)Né�  )r   r$   r   r   rG   z>RetryTest.test_on_error_raises_non_retriable_error.<locals>.fn”   s   € Ü Ó$Ð$r   r8   r0   r>   rH   c                 ó"   — t        | dd «      dk(  S rY   rZ   rJ   s    r   rL   zDRetryTest.test_on_error_raises_non_retriable_error.<locals>.<lambda>š   rl   r   )r`   rw   )ro   r   r   r   rF   r3   rq   r   )r   rc   rG   rs   s       r   Ú(test_on_error_raises_non_retriable_errorz2RetryTest.test_on_error_raises_non_retriable_error‘   s€   € Øˆò	%ð ×Ñœ|Ó,ð 	°ÜÜ˜a¨#°cÔ:Ù;ØØ!Ÿ=™=õ	÷	ð 	×Ñ˜Ÿ™×-Ñ-¨sÔ3Ø×Ñ˜ Õ$÷	ð 	ús   ›'BÂBc                 ó´   ‡— g }g Šˆfd„}t        t        dddd¬«      d„ ||j                  d„ ¬	«      }| j                  |d
«       | j                  |dg«       y )Nc                  óZ   •— ‰ j                  d«       t        ‰ «      dk  rt        d«      ‚y)Nr;   r9   rU   rD   rV   r   s   €r   rG   z2RetryTest.test_on_error_applies_jitter.<locals>.fn¦   rW   r   r9   g      $@r0   g      à?r*   c                 ó"   — t        | dd «      dk(  S rY   rZ   rJ   s    r   rL   z8RetryTest.test_on_error_applies_jitter.<locals>.<lambda>®   r\   r   c                   ó   — y)Ng      Ð?r$   r$   r   r   rL   z8RetryTest.test_on_error_applies_jitter.<locals>.<lambda>±   rM   r   r_   rD   g     €&@©r   r   rF   r3   rb   s       @r   Útest_on_error_applies_jitterz&RetryTest.test_on_error_applies_jitter¢   s`   ø€ ØˆØˆô	ô Ü˜! d°3¸sÔCÙ7ØØ—}‘}Ù$ô
ˆð 	×Ñ˜ Ô&Ø×Ñ˜ % Õ)r   c                 ó´   ‡— g }g Šˆfd„}t        t        ddd¬«      d„ ||j                  d„ ¬«      }| j                  |d	«       | j                  |ddg«       y )
Nc                  óZ   •— ‰ j                  d«       t        ‰ «      dk  rt        d«      ‚yrT   rV   r   s   €r   rG   zFRetryTest.test_on_error_keeps_duration_when_factor_is_zero.<locals>.fn»   rW   r   r8   r0   r2   rH   c                 ó"   — t        | dd «      dk(  S rY   rZ   rJ   s    r   rL   zLRetryTest.test_on_error_keeps_duration_when_factor_is_zero.<locals>.<lambda>Ã   r\   r   c                   ó   — yr^   r$   r$   r   r   rL   zLRetryTest.test_on_error_keeps_duration_when_factor_is_zero.<locals>.<lambda>Æ   rM   r   r_   rD   r~   rb   s       @r   Ú0test_on_error_keeps_duration_when_factor_is_zeroz:RetryTest.test_on_error_keeps_duration_when_factor_is_zero·   s`   ø€ ØˆØˆô	ô Ü˜! c°#Ô6Ù7ØØ—}‘}Ù#ô
ˆð 	×Ñ˜ Ô&Ø×Ñ˜ # s Õ,r   c                 ó8  — | j                  t        «      5  t        ddd¬«       d d d «       | j                  t        «      5  t        ddd¬«       d d d «       | j                  t        «      5  t        ddd¬«       d d d «       | j                  t        «      5  t        dddd¬«       d d d «       | j                  t        «      5  t        dddd¬«       d d d «       y # 1 sw Y   Œ¼xY w# 1 sw Y   ŒœxY w# 1 sw Y   Œ|xY w# 1 sw Y   Œ[xY w# 1 sw Y   y xY w)Nr   r0   rH   r;   g      ð¿r*   ©r+   r,   r-   r?   )ro   Ú
ValueErrorr   r4   s    r   Ú#test_backoff_rejects_invalid_valuesz-RetryTest.test_backoff_rejects_invalid_valuesÌ   sÿ   € Ø×ÑœzÓ*ñ 	7Ü˜! c°#Õ6÷	7à×ÑœzÓ*ñ 	8Ü˜! d°3Õ7÷	8à×ÑœzÓ*ñ 	8Ü˜! c°$Õ7÷	8à×ÑœzÓ*ñ 	DÜ˜! c°#¸dÕC÷	Dà×ÑœzÓ*ñ 	AÜ˜! c°#¸4Õ@÷	Að 	A÷	7ð 	7ú÷	8ð 	8ú÷	8ð 	8ú÷	Dð 	Dú÷	Að 	Aús;   –C ÁC,Á.C8ÂDÃDÃ C)Ã,C5Ã8DÄDÄDc           	      ól  ‡‡— t        d«      Šg Šg }ˆˆfd„}| j                  t        «      5 }t        t	        dddd¬«      d„ ||j
                  d	„ ¬
«       d d d «       | j                  j                  ‰«       | j                  t        ‰«      d«       | j                  |dg«       y # 1 sw Y   ŒTxY w)NrU   c                  ó*   •— ‰ j                  d«       ‰‚rg   rE   rh   s   €€r   rG   z<RetryTest.test_on_error_stops_after_capped_sleep.<locals>.fnÝ   rj   r   r(   r0   r)   ç      @r†   c                 ó"   — t        | dd «      dk(  S rY   rZ   rJ   s    r   rL   zBRetryTest.test_on_error_stops_after_capped_sleep.<locals>.<lambda>ä   rl   r   c                   ó   — yr^   r$   r$   r   r   rL   zBRetryTest.test_on_error_stops_after_capped_sleep.<locals>.<lambda>ç   rM   r   r_   r;   rn   rr   s       @@r   Ú&test_on_error_stops_after_capped_sleepz0RetryTest.test_on_error_stops_after_capped_sleepØ   s£   ù€ Ü" 3Ó'ˆ
ØˆØˆõ	ð ×Ñœ|Ó,ð 	°ÜÜ˜a¨#°c¸sÔCÙ;ØØ!Ÿ=™=Ù'õ÷	ð 	�‰�c—m‘m ZÔ0Ø×Ñœ˜X›¨Ô*Ø×Ñ˜ # Õ'÷	ð 	ús   ­*B*Â*B3c           	      óì   ‡— t        d«      Šˆfd„}| j                  t        «      5 }t        |t	        ddd¬«      d„ d„ ¬	«       d d d «       | j                  j                  ‰«       y # 1 sw Y   Œ&xY w)
Né™  c                  ó   •— ‰ ‚r   r$   )Úconflict_errors   €r   rG   z:RetryTest.test_retry_on_conflict_never_returns.<locals>.fnñ   s	   ø€ Ø Ð r   r8   r2   r0   rH   c                  ó   — y r   r$   )Údelays    r   rL   z@RetryTest.test_retry_on_conflict_never_returns.<locals>.<lambda>ø   rM   r   c                   ó   — yr^   r$   r$   r   r   rL   z@RetryTest.test_retry_on_conflict_never_returns.<locals>.<lambda>ù   rM   r   ©Úbackoffr`   ra   ©r   ro   r   r   r   rp   rq   )r   rG   rs   r’   s      @r   Ú$test_retry_on_conflict_never_returnsz.RetryTest.test_retry_on_conflict_never_returnsî   sj   ø€ Ü& sÓ+ˆô	!ð ×Ñœ|Ó,ð 	°ÜØÜ a°#¸cÔBÙ-Ù'õ	÷	ð 	�‰�c—m‘m ^Õ4÷	ð 	ús   §A*Á*A3c                 ó    ‡— g Šˆfd„}t        |t        ddd¬«      ¬«      }| j                  |d«       | j                  t        ‰«      d«       y )	Nc                  ó(   •— ‰ j                  d«       y)Nr;   ÚupdatedrE   r   s   €r   rG   z@RetryTest.test_retry_on_conflict_returns_immediately.<locals>.fn  s   ø€ Ø�O‰O˜AÔØr   r8   r2   r0   rH   ©r—   rœ   r;   )r   r   r3   rN   rO   s      @r   Ú*test_retry_on_conflict_returns_immediatelyz4RetryTest.test_retry_on_conflict_returns_immediatelyþ   sN   ø€ Øˆô	ô #ØÜ !¨c¸#Ô>ô
ˆð
 	×Ñ˜ Ô+Ø×Ñœ˜X›¨Õ*r   c           	      óä   ‡— t        d«      Šˆfd„}| j                  t        «      5 }t        |t	        ddd¬«      ¬«       d d d «       | j                  j                  ‰«       y # 1 sw Y   Œ&xY w)NrU   c                  ó   •— ‰ ‚r   r$   )ri   s   €r   rG   zPRetryTest.test_retry_on_conflict_returns_immediately_on_non_conflict.<locals>.fn  s	   ø€ ØÐr   r8   r2   r0   rH   r�   r˜   )r   rG   rs   ri   s      @r   Ú:test_retry_on_conflict_returns_immediately_on_non_conflictzDRetryTest.test_retry_on_conflict_returns_immediately_on_non_conflict  sd   ø€ Ü" 3Ó'ˆ
ô	ð ×Ñœ|Ó,ð 	°ÜØÜ a°#¸cÔBõ÷	ð 	�‰�c—m‘m ZÕ0÷	ð 	ús   §A&Á&A/c                 óæ   ‡— g Šg }ˆfd„}t        |t        ddd¬«      |j                  d„ ¬«      }| j                  |d«       | j                  t	        ‰«      d«       | j                  |ddg«       y )	Nc                  óZ   •— t        ‰ «      dk  r‰ j                  d«       t        d«      ‚y)Nr9   r;   r�   rœ   )rN   rF   r   r   s   €r   rG   z;RetryTest.test_retry_on_conflict_keeps_retrying.<locals>.fn  s)   ø€ Ü�8‹}˜qÒ Ø—‘ Ô"Ü# CÓ(Ð(Ør   r8   r0   rH   c                   ó   — yr^   r$   r$   r   r   rL   zARetryTest.test_retry_on_conflict_keeps_retrying.<locals>.<lambda>)  rM   r   r–   rœ   r9   )r   r   rF   r3   rN   rb   s       @r   Ú%test_retry_on_conflict_keeps_retryingz/RetryTest.test_retry_on_conflict_keeps_retrying  sq   ø€ ØˆØˆô	ô #ØÜ !¨c¸#Ô>Ø—}‘}Ù#ô	
ˆð 	×Ñ˜ Ô+Ø×Ñœ˜X›¨Ô*Ø×Ñ˜ # s Õ,r   c                 óV   — t        dddi«      }| j                  t        |«      d«       y )Né­  úRetry-AfterÚ7g      @)r   r3   r   ©r   r   s     r   Ú-test_retry_after_seconds_parses_delay_secondsz7RetryTest.test_retry_after_seconds_parses_delay_seconds0  s)   € Ü˜c M°3Ð#7Ó8ˆà×ÑÔ,¨UÓ3°SÕ9r   c                 óT   — t        dddi«      }| j                  t        |«      «       y )Nr§   zretry-afterzWed, 21 Oct 2015 07:28:00 GMT©r   ÚassertIsNoner   rª   s     r   Ú*test_retry_after_seconds_rejects_http_datez4RetryTest.test_retry_after_seconds_rejects_http_date5  s.   € ÜØØÐ;Ð<ó
ˆð
 	×ÑÔ-¨eÓ4Õ5r   c                 óJ   — | j                  t        t        d«      «      «       y )Nr§   )r®   r   r   r4   s    r   Ú4test_retry_after_seconds_returns_none_without_headerz>RetryTest.test_retry_after_seconds_returns_none_without_header=  s   € Ø×ÑÔ-¬m¸CÓ.@ÓAÕBr   c                 óT   — t        dddi«      }| j                  t        |«      «       y )Nr§   r¨   Úinvalidr­   rª   s     r   Ú8test_retry_after_seconds_returns_none_for_invalid_headerzBRetryTest.test_retry_after_seconds_returns_none_for_invalid_header@  s'   € Ü˜c M°9Ð#=Ó>ˆà×ÑÔ-¨eÓ4Õ5r   c                 óT   — t        dddi«      }| j                  t        |«      «       y )Nr§   r¨   z0.5r­   rª   s     r   Ú-test_retry_after_seconds_rejects_float_valuesz7RetryTest.test_retry_after_seconds_rejects_float_valuesE  s'   € Ü˜c M°5Ð#9Ó:ˆà×ÑÔ-¨eÓ4Õ5r   c                 ó¸   ‡— g Šg }ˆfd„}t        t        ddd¬«      t        ||j                  d„ ¬«      }| j	                  |d«       | j	                  |dg«       y )	Nc                  ó`   •— ‰ j                  d«       t        ‰ «      dk  rt        dddi«      ‚y©Nr;   r9   r§   r¨   Ú3rD   rV   r   s   €r   rG   zARetryTest.test_on_error_uses_backoff_with_retry_after.<locals>.fnN  ó0   ø€ Ø�O‰O˜AÔÜ�8‹}˜qÒ Ü# C¨-¸Ð)=Ó>Ð>Ør   r8   r0   r>   rH   c                   ó   — yr^   r$   r$   r   r   rL   zGRetryTest.test_on_error_uses_backoff_with_retry_after.<locals>.<lambda>Y  rM   r   r_   rD   )r   r   r
   rF   r3   rb   s       @r   Ú+test_on_error_uses_backoff_with_retry_afterz5RetryTest.test_on_error_uses_backoff_with_retry_afterJ  s^   ø€ ØˆØˆô	ô Ü˜! c°#Ô6Ü ØØ—}‘}Ù#ô
ˆð 	×Ñ˜ Ô&Ø×Ñ˜ # Õ'r   c                 ó¸   ‡— g Šg }ˆfd„}t        t        ddd¬«      t        ||j                  d„ ¬«      }| j	                  |d«       | j	                  |d	g«       y )
Nc                  ó`   •— ‰ j                  d«       t        ‰ «      dk  rt        dddi«      ‚yr¹   rV   r   s   €r   rG   zJRetryTest.test_on_retry_after_error_honors_retry_after_for_429.<locals>.fnc  r»   r   r8   r0   r>   rH   c                   ó   — yr^   r$   r$   r   r   rL   zPRetryTest.test_on_retry_after_error_honors_retry_after_for_429.<locals>.<lambda>n  rM   r   r_   rD   r‹   ©r   r   r
   rF   r3   rb   s       @r   Ú4test_on_retry_after_error_honors_retry_after_for_429z>RetryTest.test_on_retry_after_error_honors_retry_after_for_429_  ó^   ø€ ØˆØˆô	ô &Ü˜! c°#Ô6Ü ØØ—}‘}Ù#ô
ˆð 	×Ñ˜ Ô&Ø×Ñ˜ # Õ'r   c                 ó¸   ‡— g Šg }ˆfd„}t        t        ddd¬«      t        ||j                  d„ ¬«      }| j	                  |d«       | j	                  |dg«       y )	Nc                  ó`   •— ‰ j                  d«       t        ‰ «      dk  rt        dddi«      ‚y)Nr;   r9   r§   r¨   Ú1rD   rV   r   s   €r   rG   zHRetryTest.test_on_retry_after_error_uses_backoff_when_longer.<locals>.fnx  r»   r   r8   r‹   r>   rH   c                   ó   — yr^   r$   r$   r   r   rL   zNRetryTest.test_on_retry_after_error_uses_backoff_when_longer.<locals>.<lambda>ƒ  rM   r   r_   rD   rÁ   rb   s       @r   Ú2test_on_retry_after_error_uses_backoff_when_longerz<RetryTest.test_on_retry_after_error_uses_backoff_when_longert  rÃ   r   c                 ó²   ‡— g Šg }ˆfd„}t        t        ddd¬«      d„ ||j                  d„ ¬«      }| j                  |d	«       | j                  |d
g«       y )Nc                  ó`   •— ‰ j                  d«       t        ‰ «      dk  rt        dddi«      ‚y)Nr;   r9   rU   r¨   rº   rD   rV   r   s   €r   rG   zJRetryTest.test_on_retry_after_error_honors_retry_after_for_5xx.<locals>.fn�  r»   r   r8   r0   r>   rH   c                 ó"   — t        | dd «      dk(  S rY   rZ   rJ   s    r   rL   zPRetryTest.test_on_retry_after_error_honors_retry_after_for_5xx.<locals>.<lambda>•  r\   r   c                   ó   — yr^   r$   r$   r   r   rL   zPRetryTest.test_on_retry_after_error_honors_retry_after_for_5xx.<locals>.<lambda>˜  rM   r   r_   rD   r‹   )r   r   rF   r3   rb   s       @r   Ú4test_on_retry_after_error_honors_retry_after_for_5xxz>RetryTest.test_on_retry_after_error_honors_retry_after_for_5xx‰  s^   ø€ ØˆØˆô	ô &Ü˜! c°#Ô6Ù7ØØ—}‘}Ù#ô
ˆð 	×Ñ˜ Ô&Ø×Ñ˜ # Õ'r   c                 ó¸   ‡— g }g Šˆfd„}t        t        ddd¬«      t        ||j                  d„ ¬«      }| j	                  |d«       | j	                  |dg«       y )	Nc                  óZ   •— ‰ j                  d«       t        ‰ «      dk  rt        d«      ‚y)Nr;   r9   r§   rD   rV   r   s   €r   rG   zNRetryTest.test_on_retry_after_error_falls_back_without_retry_after.<locals>.fn¢  rW   r   r8   r0   r>   rH   c                   ó   — yr^   r$   r$   r   r   rL   zTRetryTest.test_on_retry_after_error_falls_back_without_retry_after.<locals>.<lambda>­  rM   r   r_   rD   rÁ   rb   s       @r   Ú8test_on_retry_after_error_falls_back_without_retry_afterzBRetryTest.test_on_retry_after_error_falls_back_without_retry_afterž  ó^   ø€ ØˆØˆô	ô &Ü˜! c°#Ô6Ü ØØ—}‘}Ù#ô
ˆð 	×Ñ˜ Ô&Ø×Ñ˜ # Õ'r   c                 ó¸   ‡— g }g Šˆfd„}t        t        ddd¬«      t        ||j                  d„ ¬«      }| j	                  |d«       | j	                  |dg«       y )	Nc                  ó`   •— ‰ j                  d«       t        ‰ «      dk  rt        dddi«      ‚y)Nr;   r9   r§   r¨   r³   rD   rV   r   s   €r   rG   zSRetryTest.test_on_retry_after_error_falls_back_with_invalid_retry_after.<locals>.fn·  s0   ø€ Ø�O‰O˜AÔÜ�8‹}˜qÒ Ü# C¨-¸Ð)CÓDÐDØr   r8   r0   r>   rH   c                   ó   — yr^   r$   r$   r   r   rL   zYRetryTest.test_on_retry_after_error_falls_back_with_invalid_retry_after.<locals>.<lambda>Â  rM   r   r_   rD   rÁ   rb   s       @r   Ú=test_on_retry_after_error_falls_back_with_invalid_retry_afterzGRetryTest.test_on_retry_after_error_falls_back_with_invalid_retry_after³  rÒ   r   c                 óT   — t        dddi«      }| j                  t        |«      «       y )Nr§   r¨   z-1r­   rª   s     r   Ú0test_retry_after_seconds_rejects_negative_valuesz:RetryTest.test_retry_after_seconds_rejects_negative_valuesÈ  s'   € Ü˜c M°4Ð#8Ó9ˆà×ÑÔ-¨eÓ4Õ5r   c           	      ó’  — | j                  t        t        d«      «      «       | j                  t        t        d«      «      «       | j                  t	        t        d«      «      «       | j                  t	        t        d«      «      «       | j                  t        t        dddi«      «      «       | j                  t        t        dddi«      «      «       | j                  t        t        d«      «      «       | j                  t        t        dddi«      «      «       | j                  t        t        dddi«      «      «       y )Nr�   rU   r§   r¨   rÆ   r³   )Ú
assertTruer   r   ÚassertFalser
   r	   r4   s    r   Útest_status_helperszRetryTest.test_status_helpersÍ  s  € Ø�‰œ¤M°#Ó$6Ó7Ô8Ø×Ñœ¤]°3Ó%7Ó8Ô9Ø�‰Ô,¬]¸3Ó-?Ó@ÔAØ×ÑÔ-¬m¸CÓ.@ÓAÔBØ�‰Ü#Ü˜c M°3Ð#7Ó8ó:ô	;ð 	�‰Ü#Ü˜c M°3Ð#7Ó8ó:ô	;ð 	×ÑÔ0´¸sÓ1CÓDÔEØ×ÑÜ#Ü˜c M°9Ð#=Ó>ó@ô	Að 	×ÑÜ#Ü˜c M°3Ð#7Ó8ó:õ	;r   N)r!   r"   r#   r5   r<   rA   rQ   rd   rt   ry   r   r„   rˆ   rŽ   r™   rž   r¡   r¥   r«   r¯   r±   r´   r¶   r½   rÂ   rÈ   rÍ   rÑ   rÖ   rØ   rÜ   r$   r   r   r&   r&   0   s�   „ ò
ò:ò	
ò+ò -ò,-ò,%ò"*ò*-ò*
Aò(ò,5ò +ò1ò-ò*:ò
6òCò6ò
6ò
(ò*(ò*(ò*(ò*(ò*(ò*6ó
;r   r&   Ú__main__r   )ÚunittestÚkubernetes.client.exceptionsr   Úkubernetes.utils.retryr   r   r   r   r   r	   r
   r   r   r   r   r   r   Úurllib3.util.retryr   r   r   ÚTestCaser&   r!   Úmainr$   r   r   ú<module>rä      sd   ðó å 5÷÷ ÷ õ õ %ó÷!ñ !ôn;�×!Ñ!ô n;ðb ˆzÒØ€H‡M�M…Oð r   