Ë
    eQêjB  ã                   óì   — d dl Z d dlZd dlZd dlZd dlZd dlmZ ddlmZ ddl	m
Z
mZmZmZ dZdZdZd	Zd
ZdZdZdZe
eeeiZe
eeeiZ G d„ dej0                  «      Zedk(  r ej6                  «        yy)é    N)ÚConfigurationé   )ÚConfigException)ÚSERVICE_HOST_ENV_NAMEÚSERVICE_PORT_ENV_NAMEÚInClusterConfigLoaderÚ_join_host_portÚ
temp_tokenÚtemp_new_tokenÚ	temp_certz	127.0.0.1Ú80z127.0.0.1:80z::1z[::1]:80c                   ó|   — e Zd Zd„ Zd„ Zdd„Zddef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)ÚInClusterConfigTestc                 ó   — g | _         y ©N)Ú_temp_files©Úselfs    úl/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/kubernetes/config/incluster_config_test.pyÚsetUpzInClusterConfigTest.setUp/   s
   € ØˆÕó    c                 óP   — | j                   D ]  }t        j                  |«       Œ y r   )r   ÚosÚremove)r   Úfs     r   ÚtearDownzInClusterConfigTest.tearDown2   s"   € Ø×!Ñ!ò 	ˆAÜ�I‰I�a�Lñ	r   c                 óæ   — t        j                  «       \  }}| j                  j                  |«       t	        j
                  |t        j                  |«      «       t	        j                  |«       |S r   )	ÚtempfileÚmkstempr   Úappendr   ÚwriteÚstrÚencodeÚclose)r   ÚcontentÚhandlerÚnames       r   Ú_create_file_with_temp_contentz2InClusterConfigTest._create_file_with_temp_content6   sP   € Ü ×(Ñ(Ó*‰ˆ�Ø×Ñ×Ñ Ô%Ü
�‰�œ#Ÿ*™* WÓ-Ô.Ü
�‰�ÔØˆr   Nc                 ó|   — |s| j                  t        «      }|s| j                  t        «      }t        ||d|¬«      S )NT)Útoken_filenameÚcert_filenameÚtry_refresh_tokenÚenviron)r(   Ú_TEST_TOKENÚ
_TEST_CERTr   )r   r*   r+   r-   s       r   Úget_test_loaderz#InClusterConfigTest.get_test_loader=   sB   € ñ Ø!×@Ñ@ÄÓMˆNÙØ ×?Ñ?Ä
ÓKˆMÜ$°NØ3@Ø7;Ø-4ô6ð 	6r   c                 ó¤   — | j                  t        t        t        t        «      «       | j                  t
        t        t        t        «      «       y r   )ÚassertEqualÚ_TEST_HOST_PORTr	   Ú
_TEST_HOSTÚ
_TEST_PORTÚ_TEST_IPV6_HOST_PORTÚ_TEST_IPV6_HOSTr   s    r   Útest_join_host_portz'InClusterConfigTest.test_join_host_portJ   s9   € Ø×ÑœÜ(¬´ZÓ@ô	Bà×ÑÔ-Ü(¬¼*ÓEõ	Gr   c                 ó6  — | j                  t        «      }| j                  |¬«      }|j                  «        | j	                  dt
        z   |j                  «       | j	                  ||j                  «       | j	                  dt        z   |j                  «       y )N©r+   zhttps://úbearer )
r(   r/   r0   Ú_load_configr2   r3   ÚhostÚssl_ca_certr.   Útoken)r   r+   Úloaders      r   Útest_load_configz$InClusterConfigTest.test_load_configP   sy   € Ø×;Ñ;¼JÓGˆØ×%Ñ%°MÐ%ÓBˆØ×ÑÔØ×Ñ˜¤oÑ5°v·{±{ÔCØ×Ñ˜¨×(:Ñ(:Ô;Ø×Ñ˜¤[Ñ0°&·,±,Õ?r   c                 óî  — | j                  «       }t        «       }|j                  |«       | j                  dt        z   |j                  d«      «       | j                  dt        z   |j                  «       | j                  |j                  «       |j                  }|j                  }| j                  t        «      |_        | j                  dt        z   |j                  d«      «       t        j                  j                  «       |_        | j                  dt        z   |j                  d«      «       | j                  dt        z   |j                  «       | j                  |j                  |«       y )Nr;   ÚBearerToken)r0   r   Úload_and_setr2   r.   Úget_api_key_with_prefixr?   ÚassertIsNotNoneÚtoken_expires_atr(   Ú_TEST_NEW_TOKENÚ_token_filenameÚdatetimeÚnowÚassertGreater)r   r@   ÚconfigÚ	old_tokenÚold_token_expires_ats        r   Útest_refresh_tokenz&InClusterConfigTest.test_refresh_tokenX   s2  € Ø×%Ñ%Ó'ˆÜ“ˆØ×Ñ˜FÔ#à×Ñ˜¤[Ñ0Ø×7Ñ7¸ÓFô	Hà×Ñ˜¤[Ñ0°&·,±,Ô?Ø×Ñ˜V×4Ñ4Ô5à—L‘Lˆ	Ø%×6Ñ6ÐØ!%×!DÑ!DÜó"ˆÔà×Ñ˜¤[Ñ0Ø×7Ñ7¸ÓFô	Hô #+×"3Ñ"3×"7Ñ"7Ó"9ˆÔØ×Ñ˜¤_Ñ4Ø×7Ñ7¸ÓFô	Hà×Ñ˜¤_Ñ4°f·l±lÔCØ×Ñ˜6×2Ñ2Ð4HÕIr   c                 ón  — ddl m} | j                  t        «      }| j	                  |¬«      }t        «       }|j                  |«        ||«      }|j                  dddg¬«      \  }}}}}| j                  d|«       | j                  |d   j                  «       j                  d	«      d
|d   z  «       y )Nr   )Ú	ApiClientr:   ÚGETú/rC   )Úauth_settingsÚauthorizationr;   z/Expected a Bearer authorization header, got: %r)Úkubernetes.clientrR   r(   r/   r0   r   rD   Úparam_serializeÚassertInÚ
assertTrueÚlowerÚ
startswith)r   rR   r+   r@   rM   Ú
api_clientÚ_Úheaderss           r   Ú5test_load_incluster_sets_request_authorization_headerzIInClusterConfigTest.test_load_incluster_sets_request_authorization_headero   sº   € Ý/Ø×;Ñ;¼JÓGˆØ×%Ñ%°MÐ%ÓBˆÜ“ˆØ×Ñ˜FÔ#á˜vÓ&ˆ
Ø(×8Ñ8ØØØ(˜/ð 9ó 
Ñˆˆ1ˆg�q˜!ð 	�‰�o wÔ/Ø�‰Ø�OÑ$×*Ñ*Ó,×7Ñ7¸	ÓBØ=Ø�oÑ&ñ'õ	(r   c                 ól   — 	 |j                  «        | j                  d|z  «       y # t        $ r Y y w xY w)NzShould fail because %s)rD   Úfailr   )r   Úconfig_loaderÚreasons      r   Ú_should_fail_loadz%InClusterConfigTest._should_fail_loadƒ   s7   € ð	Ø×&Ñ&Ô(Ø�I‰IÐ.°Ñ7Õ8øÜò 	áð	ús   ‚$' §	3²3c                 ó`   — | j                  t        t        i¬«      }| j                  |d«       y )N©r-   zno port specified)r0   r   r4   re   ©r   r@   s     r   Útest_no_portz InClusterConfigTest.test_no_port‹   ó0   € Ø×%Ñ%Ü*¬JÐ7ð &ó 9ˆà×Ñ˜vÐ':Õ;r   c                 ól   — | j                  t        t        t        di¬«      }| j	                  |d«       y )NÚ rg   zempty port specified)r0   r   r4   r   re   rh   s     r   Útest_empty_portz#InClusterConfigTest.test_empty_port�   s7   € Ø×%Ñ%Ü!¤:Ü! 2ð/
Ð%ó ˆð 	×Ñ˜vÐ'=Õ>r   c                 ó`   — | j                  t        t        i¬«      }| j                  |d«       y )Nrg   zno host specified)r0   r   r5   re   rh   s     r   Útest_no_hostz InClusterConfigTest.test_no_host—   rj   r   c                 ól   — | j                  t        dt        t        i¬«      }| j	                  |d«       y )Nrl   rg   zempty host specified)r0   r   r   r5   re   rh   s     r   Útest_empty_hostz#InClusterConfigTest.test_empty_hostœ   s7   € Ø×%Ñ%Ü! 2Ü!¤:ð/
Ð%ó ˆð 	×Ñ˜vÐ'=Õ>r   c                 óL   — | j                  d¬«      }| j                  |d«       y )NÚnot_exists_file_1123r:   zcert file does not exist©r0   re   rh   s     r   Útest_no_cert_filez%InClusterConfigTest.test_no_cert_file£   s'   € Ø×%Ñ%Ð4JÐ%ÓKˆØ×Ñ˜vÐ'AÕBr   c                 óh   — | j                  | j                  «       ¬«      }| j                  |d«       y )Nr:   zempty cert file provided©r0   r(   re   rh   s     r   Útest_empty_cert_filez(InClusterConfigTest.test_empty_cert_file§   s5   € Ø×%Ñ%Ø×=Ñ=Ó?ð &ó Aˆà×Ñ˜vÐ'AÕBr   c                 óL   — | j                  d¬«      }| j                  |d«       y )Nrs   ©r*   ztoken file does not existrt   rh   s     r   Útest_no_token_filez&InClusterConfigTest.test_no_token_file¬   s'   € Ø×%Ñ%Ð5KÐ%ÓLˆØ×Ñ˜vÐ'BÕCr   c                 óh   — | j                  | j                  «       ¬«      }| j                  |d«       y )Nrz   zempty token file providedrw   rh   s     r   Útest_empty_token_filez)InClusterConfigTest.test_empty_token_file°   s5   € Ø×%Ñ%Ø×>Ñ>Ó@ð &ó Bˆà×Ñ˜vÐ'BÕCr   )rl   )Ú__name__Ú
__module__Ú__qualname__r   r   r(   Ú_TEST_ENVIRONr0   r8   rA   rP   r`   re   ri   rm   ro   rq   ru   rx   r{   r}   © r   r   r   r   .   si   „ òòóð (,Ø&*Ø -ó6òGò@òJò.(ò(ò<ò
?ò<ò
?òCòCò
DóDr   r   Ú__main__)rJ   r   r   ÚtimeÚunittestrW   r   Úconfig_exceptionr   Úincluster_configr   r   r   r	   r.   rH   r/   r4   r5   r3   r7   r6   r�   Ú_TEST_IPV6_ENVIRONÚTestCaser   r~   Úmainr‚   r   r   ú<module>r‹      s«   ðó Û 	Û Û Û å +å -÷Gó Gð €Ø"€Ø€
Ø€
Ø€
Ø €Ø€Ø!Ð ð ˜:Ø˜:ð€ð
 ˜?Ø˜:ðÐ ôED˜(×+Ñ+ô EDðP ˆzÒØ€H‡M�M…Oð r   