Ë
    eQêjÍ  ã                   óè   — d dl Z d dlZd dlZd dlmZ d dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZ d„ Z G d„ d	ej                  «      Z G d
„ dej                  «      Zedk(  r ej$                  «        yy)é    N)Úmock)ÚConfiguration)ÚRESTClientObject)Ú	keepalive)Útcp_keepalive_socket_optionsc                  ó®   — t         j                  t         j                  t         j                  dœ}|j	                  | «       t        j                  di |¤ŽS )z?A stand-in for the socket module exposing only the given names.)Ú
SOL_SOCKETÚSO_KEEPALIVEÚIPPROTO_TCP© )Úsocketr	   r
   r   ÚupdateÚtypesÚSimpleNamespace)ÚnamesÚdefaultss     úd/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/kubernetes/utils/keepalive_test.pyÚfake_socket_moduler      sH   € ô ×'Ñ'Ü×+Ñ+Ü×)Ñ)ñ€Hð
 ‡O�O�EÔÜ× Ñ Ñ, 8Ñ,Ð,ó    c                   ó<   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
ÚTestTcpKeepaliveSocketOptionsc                 ó   — t        «       }| j                  t        j                  t        j                  df|«       | j                  t        j
                  t        j                  df|«       | j                  t        j
                  t        j                  df|«       | j                  t        j
                  t        j                  df|«       y )Né   é   é   é	   )	r   ÚassertInr   r	   r
   r   ÚTCP_KEEPIDLEÚTCP_KEEPINTVLÚTCP_KEEPCNT©ÚselfÚoptionss     r   Útest_defaults_match_client_goz;TestTcpKeepaliveSocketOptions.test_defaults_match_client_go*   s–   € Ü.Ó0ˆà�‰”v×(Ñ(¬&×*=Ñ*=¸qÐAÀ7ÔKØ�‰Ü×Ñ¤×!4Ñ!4°bÐ9¸7ô	Dà�‰Ü×Ñ¤×!5Ñ!5°rÐ:¸Gô	Eà�‰”v×)Ñ)¬6×+=Ñ+=¸qÐAÀ7ÕKr   c                 ó’   — t        «       }t        j                  j                  j                  }|D ]  }| j                  ||«       Œ y ©N)r   Úurllib3Ú
connectionÚHTTPConnectionÚdefault_socket_optionsr   )r"   r#   r   Údefaults       r   Útest_keeps_the_urllib3_defaultsz=TestTcpKeepaliveSocketOptions.test_keeps_the_urllib3_defaults4   s>   € Ü.Ó0ˆä×%Ñ%×4Ñ4×KÑKˆØò 	,ˆGØ�M‰M˜' 7Õ+ñ	,r   c                 óF  — t        ddd¬«      }| j                  t        j                  t        j                  df|«       | j                  t        j                  t        j
                  df|«       | j                  t        j                  t        j                  df|«       y )Né   é   é   )ÚidleÚintervalÚcount)r   r   r   r   r   r   r    r!   s     r   Útest_custom_timingsz1TestTcpKeepaliveSocketOptions.test_custom_timings;   ss   € Ü.°AÀÈÔKˆà�‰”v×)Ñ)¬6×+>Ñ+>ÀÐBÀGÔLØ�‰”v×)Ñ)¬6×+?Ñ+?ÀÐCÀWÔMØ�‰”v×)Ñ)¬6×+=Ñ+=¸qÐAÀ7ÕKr   c                 óŽ   — ddiddiddifD ]+  }| j                  t        «      5  t        di |¤Ž d d d «       Œ- y # 1 sw Y   Œ8xY w)Nr1   r   r2   r3   r   )ÚassertRaisesÚ
ValueErrorr   )r"   Úkwargss     r   Útest_timings_must_be_positivez;TestTcpKeepaliveSocketOptions.test_timings_must_be_positiveB   sW   € Ø �{ Z° O°g¸q°\ÐBò 	7ˆFØ×"Ñ"¤:Ó.ñ 7Ü,Ñ6¨vÒ6÷7ð 7ñ	7÷7ð 7ús	   ¤;»A	c                 ó’   — t        «       D ]:  }| j                  dt        |«      «       |D ]  }| j                  |t        «       Œ Œ< y )Nr0   )r   ÚassertEqualÚlenÚassertIsInstanceÚint)r"   ÚoptionÚitems      r   Ú#test_options_are_setsockopt_tripleszATestTcpKeepaliveSocketOptions.test_options_are_setsockopt_triplesG   sG   € Ü2Ó4ò 	1ˆFØ×Ñ˜Q¤ F£Ô,Øò 1�Ø×%Ñ% d¬CÕ0ñ1ñ	1r   c                 óÖ  — t        j                   t         j                  t         j                  «      5 }t        «       D ]  \  }}}|j	                  |||«       Œ | j                  d|j                  t         j                  t         j                  «      «       | j                  d|j                  t         j                  t         j                  «      «       d d d «       y # 1 sw Y   y xY w)Nr   r   )r   ÚAF_INETÚSOCK_STREAMr   Ú
setsockoptr;   Ú
getsockoptr	   r
   r   r   )r"   ÚsockÚlevelÚnameÚvalues        r   Útest_options_apply_to_a_socketz<TestTcpKeepaliveSocketOptions.test_options_apply_to_a_socketM   s¶   € Ü�]‰]œ6Ÿ>™>¬6×+=Ñ+=Ó>ð 	NÀ$Ü&BÓ&Dò 4Ñ"��t˜UØ—‘  t¨UÕ3ð4ð ×ÑØ�4—?‘?¤6×#4Ñ#4´f×6IÑ6IÓJôLà×ÑØ�D—O‘O¤F×$6Ñ$6¼×8KÑ8KÓLôN÷	N÷ 	Nñ 	Nús   ³B#CÃC(c                 ó&  — t        dt        j                  t        j                  ¬«      }t        j
                  j                  t        d|«      5  t        «       }d d d «       | j                  t        j                  ddf«       y # 1 sw Y   Œ-xY w)Né   )ÚTCP_KEEPALIVEr   r    r   r   )r   r   r   r    r   ÚpatchÚobjectr   r   r   r   )r"   Úmacosr#   s      r   Ú)test_falls_back_to_tcp_keepalive_on_macoszGTestTcpKeepaliveSocketOptions.test_falls_back_to_tcp_keepalive_on_macosW   ss   € Ü"ØÜ ×.Ñ.Ü×*Ñ*ô
ˆô
 �Z‰Z×Ñœy¨(°EÓ:ñ 	5Ü2Ó4ˆG÷	5ð 	�‰”v×)Ñ)¨4°Ð4°gÕ>÷	5ð 	5ús   ÁBÂBc                 ó”  — t         j                  j                  t        dt	        «       «      5  t        «       }d d d «       | j                  t        j                  t        j                  df«       t        j                  j                  j                  }| j                  t        |«      dz   t        |«      «       y # 1 sw Y   Œ†xY w)Nr   r   )r   rO   rP   r   r   r   r   r   r	   r
   r'   r(   r)   r*   r;   r<   )r"   r#   r   s      r   Ú%test_skips_options_the_platform_lackszCTestTcpKeepaliveSocketOptions.test_skips_options_the_platform_lacksb   s�   € Ü�Z‰Z×Ñœy¨(Ô4FÓ4HÓIñ 	5Ü2Ó4ˆG÷	5ð 	�‰”v×(Ñ(¬&×*=Ñ*=¸qÐAÀ7ÔKÜ×%Ñ%×4Ñ4×KÑKˆØ×Ñœ˜X›¨Ñ*¬C°«LÕ9÷	5ð 	5ús   ®B>Â>CN)Ú__name__Ú
__module__Ú__qualname__r$   r,   r4   r9   rA   rK   rR   rT   r   r   r   r   r   (   s-   „ òLò,òLò7ò
1òNò	?ó:r   r   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestConfigurationKeepAlivec                 ób   — t        |«      }|j                  j                  j                  d«      S )NÚsocket_options)r   Úpool_managerÚconnection_pool_kwÚget)r"   ÚconfigurationÚrest_clients      r   Úpool_socket_optionsz.TestConfigurationKeepAlive.pool_socket_optionsm   s.   € Ü& }Ó5ˆØ×'Ñ'×:Ñ:×>Ñ>Øóð 	r   c                 óŽ   — t        «       }| j                  |j                  «       | j                  | j	                  |«      «       y r&   )r   ÚassertFalseÚ
keep_aliveÚassertIsNonera   ©r"   r_   s     r   Útest_off_by_defaultz.TestConfigurationKeepAlive.test_off_by_defaultr   s6   € Ü%›ˆà×Ñ˜×1Ñ1Ô2Ø×Ñ˜$×2Ñ2°=ÓAÕBr   c                 óx   — t        «       }d|_        | j                  t        «       | j	                  |«      «       y )NT)r   rd   r;   r   ra   rf   s     r   Útest_enabledz'TestConfigurationKeepAlive.test_enabledx   s3   € Ü%›ˆØ#'ˆÔ à×ÑÜ(Ó*Ø×$Ñ$ ]Ó3õ	5r   c                 óÊ   — t        «       }d|_        t        j                  t        j                  dfg|_        | j                  |j
                  | j                  |«      «       y )NTr   )r   rd   r   r   ÚTCP_NODELAYr[   r;   ra   rf   s     r   Útest_socket_options_winz2TestConfigurationKeepAlive.test_socket_options_win€   sX   € Ü%›ˆØ#'ˆÔ ä×Ñ¤×!3Ñ!3°QÐ7ð(9ˆÔ$ð 	×ÑØ×(Ñ(Ø×$Ñ$ ]Ó3õ	5r   N)rU   rV   rW   ra   rg   ri   rl   r   r   r   rY   rY   k   s   „ òò
Cò5ó5r   rY   Ú__main__)r   r   Úunittestr   r'   Úkubernetes.clientr   Úkubernetes.client.restr   Úkubernetes.utilsr   Úkubernetes.utils.keepaliver   r   ÚTestCaser   rY   rU   Úmainr   r   r   ú<module>ru      si   ðó Û Û Ý ã å +Ý 3Ý &Ý Cò	-ô@: H×$5Ñ$5ô @:ôF5 ×!2Ñ!2ô 5ð@ ˆzÒØ€H‡M�M…Oð r   