§
    Štjß¿  ã                   óÚ  — 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 d dlZd dlmZ ddlm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 d
ZdZ d„ Z!d„ Z"d„ Z#dZ$dZ%dZ&dZ' e!e'¦  «        Z(dZ) e!e)¦  «        Z*dZ+dZ,dZ-dZ.dZ/dZ0 e!e0¦  «        Z1dZ2 e!e2¦  «        Z3dZ4 e!e4¦  «        Z5dZ6dZ7dZ8dZ9 e"e8¦  «        d z    e"e9¦  «        z   Z:e:d z   e5z   Z;d
e;z  Z8d!Z< e"e8¦  «        d z    e"e<¦  «        z   Z=e=d z   e5z   Z> e!e0¦  «        Z?d"„ Z@ G d#„ d$e¦  «        ZA G d%„ d&eA¦  «        ZB G d'„ d(eA¦  «        ZC G d)„ d*¦  «        ZD G d+„ d,eA¦  «        ZE G d-„ d.eA¦  «        ZFdS )/é    N)ÚSimpleNamespace)ÚIsolatedAsyncioTestCase)ÚMockÚpatch)ÚPY3é   )Úload_config)ÚConfigException)ÚENV_KUBECONFIG_PATH_SEPARATORÚ
ConfigNodeÚ
FileOrDataÚKubeConfigLoaderÚKubeConfigMergerÚlist_kube_config_contextsÚload_kube_configÚload_kube_config_from_dictÚnew_client_from_configÚnew_client_from_config_dictÚrefresh_tokenz	Bearer %sÚzz_non_existing_file_472398324c                 ór   — t          j        |                      ¦   «         ¦  «                             ¦   «         S ©N)Úbase64Ústandard_b64encodeÚencodeÚdecode©Ústrings    úd/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/kubernetes/aio/config/kube_config_test.pyÚ_base64r    )   s'   € ÝÔ$ V§]¢]¡_¤_Ñ5Ô5×<Ò<Ñ>Ô>Ð>ó    c                 ó˜   — t          j        |                      ¦   «         ¦  «                             ¦   «                              d¦  «        S )NÚ )r   Ú	b64encoder   r   Úrstripr   s    r   Ú_unpadded_base64r&   -   s5   € ÝÔ˜FŸMšM™OœOÑ,Ô,×3Ò3Ñ5Ô5×<Ò<¸RÑ@Ô@Ð@r!   c                 ó    — t          | ¦  «        ‚r   )Ú	Exception)Ústs    r   Ú_raise_exceptionr*   1   s   € Ý
�B‰-Œ-Ðr!   ÚfileÚdataztest-filenamez	test-datazanother-test-dataz	test-hostÚmeÚpasszBasic bWU6cGFzcw==zhttps://test-hostz	cert-authú
client-keyzclient-certzkubernetes.iozhttp://proxy.example.com:3128ztest-oidc-tokenz{"name": "test"}ú.z!{"name": "test","exp": 536457600}c              ƒ   ó
   K  — | S r   © )Úvals    r   Ú_return_async_valuer4   Z   s   è è € Ø€Jr!   c                   ó.   — e Zd Zd„ Zd„ Zdd„Zd„ Zd„ ZdS )	ÚBaseTestCasec                 ó   — g | _         d S r   )Ú_temp_files©Úselfs    r   ÚsetUpzBaseTestCase.setUp`   s   € ØˆÔÐÐr!   c                 óh   — | j         D ]}t          j        |¦  «         Œt          j        ¦   «          d S r   )r8   ÚosÚremover   Ústopall)r:   Úfs     r   ÚtearDownzBaseTestCase.tearDownc   s2   € ØÔ!ð 	ð 	ˆAÝŒI�a‰LŒLˆLˆLÝŒ‰Œˆˆˆr!   r#   c                 óè   — t          j        ¦   «         \  }}| j                             |¦  «         t	          j        |t                               |¦  «        ¦  «         t	          j        |¦  «         |S r   )	ÚtempfileÚmkstempr8   Úappendr=   ÚwriteÚstrr   Úclose)r:   ÚcontentÚhandlerÚnames       r   Ú_create_temp_filezBaseTestCase._create_temp_fileh   s^   € Ý Ô(Ñ*Ô*‰ˆ�ØÔ×Ò Ñ%Ô%Ð%Ý
Œ��#Ÿ*š* WÑ-Ô-Ñ.Ô.Ð.Ý
Œ�ÑÔÐØˆr!   c                 óÊ   — |                       t          ¦  «        5 } ||i |¤Ž d d d ¦  «         n# 1 swxY w Y   |                      |t          |j        ¦  «        ¦  «         d S r   ©ÚassertRaisesr
   ÚassertInrG   Ú	exception©r:   ÚfuncÚmessage_partÚargsÚkwargsÚcontexts         r   Úexpect_exceptionzBaseTestCase.expect_exceptiono   s¢   € Ø×Ò�Ñ/Ô/ð 	"°7ØˆD�$Ð!˜&Ð!Ð!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"à�Š�l¥C¨Ô(9Ñ$:Ô$:Ñ;Ô;Ð;Ð;Ð;s   ›	0°4·4c              �   óÚ   K  — |                       t          ¦  «        5 } ||i |¤Žƒ d {V —† d d d ¦  «         n# 1 swxY w Y   |                      |t          |j        ¦  «        ¦  «         d S r   rN   rR   s         r   Úasync_expect_exceptionz#BaseTestCase.async_expect_exceptiont   s¸   è è € Ø×Ò�Ñ/Ô/ð 	(°7Ø�$˜Ð' Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(à�Š�l¥C¨Ô(9Ñ$:Ô$:Ñ;Ô;Ð;Ð;Ð;s   �8¸<¿<N)r#   )Ú__name__Ú
__module__Ú__qualname__r;   rA   rL   rX   rZ   r2   r!   r   r6   r6   ^   sd   € € € € € ðð ð ðð ð ð
ð ð ð ð<ð <ð <ð
<ð <ð <ð <ð <r!   r6   c                   ól   — e Zd Ze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S )ÚTestFileOrDatac                 ó|   — t          | ¦  «        5 }|                     ¦   «         cd d d ¦  «         S # 1 swxY w Y   d S r   )ÚopenÚread)Úfilenamer@   s     r   Úget_file_contentzTestFileOrData.get_file_content|   sz   € å�(‰^Œ^ð 	˜qØ—6’6‘8”8ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   �1±5¸5c                 óö   — t           |                      t          ¬¦  «        i}t          |t           ¬¦  «        }|                      t          |                      |                     ¦   «         ¦  «        ¦  «         d S ©N©rI   ©ÚobjÚfile_key_name)ÚTEST_FILE_KEYrL   Ú	TEST_DATAr   ÚassertEqualrd   Úas_file©r:   ri   Úts      r   Útest_file_given_filez#TestFileOrData.test_file_given_file�   sd   € å˜4×1Ò1½)Ð1ÑDÔDðFˆå˜3­mÐ<Ñ<Ô<ˆØ×Ò� D×$9Ò$9¸!¿)º)¹+¼+Ñ$FÔ$FÑGÔGÐGÐGÐGr!   c                 óˆ   — t           }t          |i}t          |t          ¬¦  «        }|                      |j        d¦  «         d S )Nrh   údoes not exists)ÚNON_EXISTING_FILErk   r   rX   rn   )r:   Útemp_filenameri   rp   s       r   Ú!test_file_given_non_existing_filez0TestFileOrData.test_file_given_non_existing_file‡   sB   € Ý)ˆÝ˜mÐ,ˆÝ˜3­mÐ<Ñ<Ô<ˆØ×Ò˜aœiÐ):Ñ;Ô;Ð;Ð;Ð;r!   c                 óÚ   — t           t          i}t          |t          t           ¬¦  «        }|                      t
          |                      |                     ¦   «         ¦  «        ¦  «         d S ©N©ri   rj   Údata_key_name)ÚTEST_DATA_KEYÚTEST_DATA_BASE64r   rk   rm   rl   rd   rn   ro   s      r   Útest_file_given_dataz#TestFileOrData.test_file_given_data�   sZ   € ÝÕ.Ð/ˆÝ˜3­mÝ%2ð4ñ 4ô 4ˆà×Ò� D×$9Ò$9¸!¿)º)¹+¼+Ñ$FÔ$FÑGÔGÐGÐGÐGr!   c                 óÜ   — t           t          i}t          |t          t           d¬¦  «        }|                      t          |                      |                     ¦   «         ¦  «        ¦  «         d S ©NF)ri   rj   rz   Úbase64_file_content)r{   rl   r   rk   rm   rd   rn   ro   s      r   Útest_file_given_data_no_base64z-TestFileOrData.test_file_given_data_no_base64“   s^   € Ý�iÐ(ˆÝ˜3­mÝ%2ÈðOñ Oô Oˆà×Ò� D×$9Ò$9¸!¿)º)¹+¼+Ñ$FÔ$FÑGÔGÐGÐGÐGr!   c                 ó´   — t           t          i}t          |t          t           ¬¦  «        }|                      t          |                     ¦   «         ¦  «         d S rx   )r{   r|   r   rk   rm   Úas_dataro   s      r   Útest_data_given_dataz#TestFileOrData.test_data_given_data™   sM   € ÝÕ.Ð/ˆÝ˜3­mÝ%2ð4ñ 4ô 4ˆà×ÒÕ)¨1¯9ª9©;¬;Ñ7Ô7Ð7Ð7Ð7r!   c                 óÐ   — t           |                      t          ¬¦  «        i}t          |t           ¬¦  «        }|                      t
          |                     ¦   «         ¦  «         d S rf   )rk   rL   rl   r   rm   r|   rƒ   ro   s      r   Útest_data_given_filez#TestFileOrData.test_data_given_fileŸ   sW   € å˜4×1Ò1½)Ð1ÑDÔDðFˆå˜3­mÐ<Ñ<Ô<ˆØ×ÒÕ)¨1¯9ª9©;¬;Ñ7Ô7Ð7Ð7Ð7r!   c                 óÒ   — t           |                      t          ¬¦  «        i}t          |t           d¬¦  «        }|                      t          |                     ¦   «         ¦  «         d S )Nrg   F)ri   rj   r€   )rk   rL   rl   r   rm   rƒ   ro   s      r   Útest_data_given_file_no_base64z-TestFileOrData.test_data_given_file_no_base64¥   s_   € å˜4×1Ò1½)Ð1ÑDÔDðFˆå˜3­mØ+0ð2ñ 2ô 2ˆà×Ò� A§I¢I¡K¤KÑ0Ô0Ð0Ð0Ð0r!   c                 óô   — t           t          t          |                      t          ¬¦  «        i}t          |t          t           ¬¦  «        }|                      t          |                     ¦   «         ¦  «         d S ©Nrg   ry   )r{   r|   rk   rL   ÚTEST_ANOTHER_DATAr   rm   rƒ   ro   s      r   Útest_data_given_file_and_dataz,TestFileOrData.test_data_given_file_and_data¬   sn   € åÕ+Ý˜4×1Ò1Ý)ð 2ñ +ô +ð,ˆõ ˜3­mÝ%2ð4ñ 4ô 4ˆà×ÒÕ)¨1¯9ª9©;¬;Ñ7Ô7Ð7Ð7Ð7r!   c                 ó  — t           t          t          |                      t          ¬¦  «        i}t          |t          t           ¬¦  «        }|                      t          |                      | 	                    ¦   «         ¦  «        ¦  «         d S rŠ   )
r{   r|   rk   rL   r‹   r   rm   rl   rd   rn   ro   s      r   Útest_file_given_file_and_dataz,TestFileOrData.test_file_given_file_and_dataµ   s{   € åÕ+Ý˜4×1Ò1Ý)ð 2ñ +ô +ð,ˆõ ˜3­mÝ%2ð4ñ 4ô 4ˆà×Ò� D×$9Ò$9¸!¿)º)¹+¼+Ñ$FÔ$FÑGÔGÐGÐGÐGr!   c                 óx  — |                       t          ¬¦  «        }t          j                             |¦  «        }t          j                             |¦  «        }t          |i}t          |t          |¬¦  «        }|                      t          |  	                    | 
                    ¦   «         ¦  «        ¦  «         d S )Nrg   )ri   rj   Úfile_base_path)rL   rl   r=   ÚpathÚdirnameÚbasenamerk   r   rm   rd   rn   )r:   rC   Útempfile_dirÚtempfile_basenameri   rp   s         r   Útest_file_with_custom_dirnamez,TestFileOrData.test_file_with_custom_dirname¾   s™   € Ø×)Ò)µ)Ð)Ñ<Ô<ˆÝ”w—’ xÑ0Ô0ˆÝœG×,Ò,¨XÑ6Ô6ÐÝÐ/Ð0ˆÝ˜3­mØ&2ð4ñ 4ô 4ˆà×Ò� D×$9Ò$9¸!¿)º)¹+¼+Ñ$FÔ$FÑGÔGÐGÐGÐGr!   c                 óþ   — t           t                               ¦   «         i}t          |t          t           ¬¦  «        }|                      t          |                      |                     ¦   «         ¦  «        ¦  «         d S rx   )	r{   r|   r   r   rk   rm   rl   rd   rn   ro   s      r   Útest_file_given_data_bytesz)TestFileOrData.test_file_given_data_bytesÇ   sf   € ÝÕ.×5Ò5Ñ7Ô7Ð8ˆÝ˜3­mÝ%2ð4ñ 4ô 4ˆà×Ò� D×$9Ò$9¸!¿)º)¹+¼+Ñ$FÔ$FÑGÔGÐGÐGÐGr!   c                 ó   — t           t                               ¦   «         i}t          |t          t           d¬¦  «        }|                      t          |                      |                     ¦   «         ¦  «        ¦  «         d S r   )r{   rl   r   r   rk   rm   rd   rn   ro   s      r   Ú$test_file_given_data_bytes_no_base64z3TestFileOrData.test_file_given_data_bytes_no_base64Í   sj   € Ý�i×.Ò.Ñ0Ô0Ð1ˆÝ˜3­mÝ%2ÈðOñ Oô Oˆà×Ò� D×$9Ò$9¸!¿)º)¹+¼+Ñ$FÔ$FÑGÔGÐGÐGÐGr!   N)r[   r\   r]   Ústaticmethodrd   rq   rv   r}   r�   r„   r†   rˆ   rŒ   rŽ   r–   r˜   rš   r2   r!   r   r_   r_   z   sø   € € € € € àðð ñ „\ððHð Hð Hð<ð <ð <ðHð Hð HðHð Hð Hð8ð 8ð 8ð8ð 8ð 8ð1ð 1ð 1ð8ð 8ð 8ðHð Hð HðHð Hð HðHð Hð HðHð Hð Hð Hð Hr!   r_   c            	       ó    ‡ — e Zd Zdg d¢ddidddœdd	dhdœd
g d¢dœgdddœdd	dhdœd
g d¢dœgdœZˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zˆ xZS )ÚTestConfigNodeÚtest©ÚaÚbÚcÚ	inner_keyÚinner_valueÚ	test_nameÚ
test_value)rK   ÚvalueÚ
test_name2Úkey1Ú
test_name3)r   é   é   )r©   Úkey2Úkey3Ú
with_namesÚwith_names_dupc                 óŠ   •— t          t          | ¦  «                             ¦   «          t          d| j        ¦  «        | _        d S )NÚtest_obj)Úsuperr�   r;   r   r²   Únode)r:   Ú	__class__s    €r   r;   zTestConfigNode.setUpá   s6   ø€ Ý�n˜dÑ#Ô#×)Ò)Ñ+Ô+Ð+Ý˜z¨4¬=Ñ9Ô9ˆŒ	ˆ	ˆ	r!   c                 ó$  — |                       d| j        d         ¦  «         |                       dt          | j        ¦  «        ¦  «         |                       d| j        d         j        ¦  «         |                       g d¢| j        d         j        ¦  «         |                       d| j        d         d         ¦  «         |                       d	t          | j        d         ¦  «        ¦  «         |                       d
| j        d         j        ¦  «         |                       ddi| j        d         j        ¦  «         |                       d| j        d         d         ¦  «         |                       dt          | j        d         ¦  «        ¦  «         d S )Nrž   r©   é   ztest_obj/key2r­   rŸ   r¡   r   r¬   ztest_obj/key3r®   r£   r¤   )rm   r´   ÚlenrK   r§   r9   s    r   Ú test_normal_map_array_operationsz/TestConfigNode.test_normal_map_array_operationså   sZ  € Ø×Ò˜ ¤¨6Ô!2Ñ3Ô3Ð3Ø×Ò˜�C ¤	™NœNÑ+Ô+Ð+à×Ò˜¨$¬)°FÔ*;Ô*@ÑAÔAÐAØ×Ò˜˜˜¨$¬)°FÔ*;Ô*AÑBÔBÐBØ×Ò˜˜dœi¨Ô/°Ô2Ñ3Ô3Ð3Ø×Ò˜�C ¤	¨&Ô 1Ñ2Ô2Ñ3Ô3Ð3à×Ò˜¨$¬)°FÔ*;Ô*@ÑAÔAÐAØ×Ò˜+ }Ð5°t´yÀÔ7HÔ7NÑOÔOÐOØ×Ò˜¨¬	°&Ô(9¸+Ô(FÑGÔGÐGØ×Ò˜�C ¤	¨&Ô 1Ñ2Ô2Ñ3Ô3Ð3Ð3Ð3r!   c                 ó"  — | j         d         }|                      d|                     d¦  «        d         ¦  «         |                      t	          |                     d¦  «        t
          ¦  «        ¦  «         |                      t	          |                     d¦  «        t
          ¦  «        ¦  «         |                      d|                     d¦  «        j        ¦  «         |                      d|                     d¦  «        j        ¦  «         d S )	Nr¯   r¦   r¥   r§   r¨   rª   z$test_obj/with_names[name=test_name2]z$test_obj/with_names[name=test_name3])r´   rm   Úget_with_nameÚ
assertTrueÚ
isinstancer   rK   )r:   r´   s     r   Útest_get_with_namez!TestConfigNode.test_get_with_nameó   s  € ØŒy˜Ô&ˆØ×ÒØØ×Ò˜{Ñ+Ô+¨GÔ4ñ	6ô 	6ð 	6ð 	�ŠÝ�t×)Ò)¨,Ñ7Ô7½ÑDÔDñ	Fô 	Fð 	Fà�ŠÝ�t×)Ò)¨,Ñ7Ô7½ÑDÔDñ	Fô 	Fð 	Fà×ÒÐ?Ø×+Ò+¨LÑ9Ô9Ô>ñ	@ô 	@ð 	@à×ÒÐ?Ø×+Ò+¨LÑ9Ô9Ô>ñ	@ô 	@ð 	@ð 	@ð 	@r!   c                 ól   ‡ — ‰                       ˆ fd„d¦  «         ‰                       ˆ fd„d¦  «         d S )Nc                  ó   •— ‰ j         d         S )Núnot-exists-key©r´   r9   s   €r   ú<lambda>z9TestConfigNode.test_key_does_not_exists.<locals>.<lambda>  s   ø€  d¤iÐ0@Ô&A€ r!   z'Expected key not-exists-key in test_objc                  ó*   •— ‰ j         d         d         S )Nr®   rÁ   rÂ   r9   s   €r   rÃ   z9TestConfigNode.test_key_does_not_exists.<locals>.<lambda>  s   ø€  d¤i°Ô&7Ð8HÔ&I€ r!   z,Expected key not-exists-key in test_obj/key3©rX   r9   s   `r   Útest_key_does_not_existsz'TestConfigNode.test_key_does_not_exists  sc   ø€ Ø×ÒÐAÐAÐAÐAØGñ	Iô 	Ið 	Ià×ÒÐIÐIÐIÐIØLñ	Nô 	Nð 	Nð 	Nð 	Nr!   c                 ó:   ‡ — ‰                       ˆ fd„d¦  «         d S )Nc                  óD   •— ‰ j         d                              d¦  «        S )Nr­   úno-name©r´   r»   r9   s   €r   rÃ   zETestConfigNode.test_get_with_name_on_invalid_object.<locals>.<lambda>	  ó   ø€ �D”I˜fÔ%×3Ò3°IÑ>Ô>€ r!   z<Expected all values in test_obj/key2 list to have 'name' keyrÅ   r9   s   `r   Ú$test_get_with_name_on_invalid_objectz3TestConfigNode.test_get_with_name_on_invalid_object  s9   ø€ Ø×ÒØ>Ð>Ð>Ð>ØLñ	Nô 	Nð 	Nð 	Nð 	Nr!   c                 ó:   ‡ — ‰                       ˆ fd„d¦  «         d S )Nc                  óD   •— ‰ j         d                              d¦  «        S )Nr®   rÉ   rÊ   r9   s   €r   rÃ   zFTestConfigNode.test_get_with_name_on_non_list_object.<locals>.<lambda>  rË   r!   z#Expected test_obj/key3 to be a listrÅ   r9   s   `r   Ú%test_get_with_name_on_non_list_objectz4TestConfigNode.test_get_with_name_on_non_list_object  s4   ø€ Ø×ÒØ>Ð>Ð>Ð>Ø1ñ	3ô 	3ð 	3ð 	3ð 	3r!   c                 ó:   ‡ — ‰                       ˆ fd„d¦  «         d S )Nc                  óD   •— ‰ j         d                              d¦  «        S )Nr¯   rÉ   rÊ   r9   s   €r   rÃ   zKTestConfigNode.test_get_with_name_on_name_does_not_exists.<locals>.<lambda>  s   ø€ �D”I˜lÔ+×9Ò9¸)ÑDÔD€ r!   z=Expected object with name no-name in test_obj/with_names listrÅ   r9   s   `r   Ú*test_get_with_name_on_name_does_not_existsz9TestConfigNode.test_get_with_name_on_name_does_not_exists  s9   ø€ Ø×ÒØDÐDÐDÐDØKñ	Mô 	Mð 	Mð 	Mð 	Mr!   c                 ó:   ‡ — ‰                       ˆ fd„d¦  «         d S )Nc                  óD   •— ‰ j         d                              d¦  «        S )Nr°   r¥   rÊ   r9   s   €r   rÃ   zETestConfigNode.test_get_with_name_on_duplicate_name.<locals>.<lambda>  s   ø€ �D”IÐ.Ô/×=Ò=¸kÑJÔJ€ r!   zLExpected only one object with name test_name in test_obj/with_names_dup listrÅ   r9   s   `r   Ú$test_get_with_name_on_duplicate_namez3TestConfigNode.test_get_with_name_on_duplicate_name  s9   ø€ Ø×ÒØJÐJÐJÐJØZñ	\ô 	\ð 	\ð 	\ð 	\r!   )r[   r\   r]   r²   r;   r¹   r¾   rÆ   rÌ   rÏ   rÒ   rÕ   Ú__classcell__)rµ   s   @r   r�   r�   Ô   s?  ø€ € € € € à¨¨¨Ø$ mÐ4Ø(3¸lÐKÐKØ(4Ø*0°&Ð)9ð ;ð  ;à(4¸y¸y¸yÐIÐIðKð -8À,Ð#OÐ#OØ,7Ø.4°fÐ-=ð$?ð $?à,8À9À9À9Ð#MÐ#Mð#Oð	Pð 	P€Hð:ð :ð :ð :ð :ð4ð 4ð 4ð@ð @ð @ðNð Nð NðNð Nð Nð
3ð 3ð 3ð
Mð Mð Mð
\ð \ð \ð \ð \ð \ð \r!   r�   c                   ó*   — e Zd Zg d¢Zdd„Zd„ Zd„ ZdS )Ú
FakeConfig)Ússl_ca_certÚkey_fileÚ	cert_fileNc                 ó`   — i | _         |r
|| j         d<   | j                             |¦  «         d S )NÚBearerToken)Úapi_keyÚ__dict__Úupdate)r:   ÚtokenrV   s      r   Ú__init__zFakeConfig.__init__   s9   € ØˆŒØð 	0Ø*/ˆDŒL˜Ñ'àŒ×Ò˜VÑ$Ô$Ð$Ð$Ð$r!   c                 óÆ  — t          | j        ¦  «        t          |j        ¦  «        k    rd S | j                             ¦   «         D �]\  }}||j        vr d S || j        v rê|rÒ|j        |         rÅ	 t	          |¦  «        5 }t	          |j        |         ¦  «        5 }|                     ¦   «         |                     ¦   «         k    r	 d d d ¦  «         d d d ¦  «          d S 	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   ŒÊ# t          $ r |j        |         |k    rY  d S Y Œëw xY w|j        |         |k    r d S �Œ|j        |         |k    r d S �ŒdS )NT)r¸   rß   ÚitemsÚ	FILE_KEYSra   rb   ÚIOError)r:   ÚotherÚkÚvÚf1Úf2s         r   Ú__eq__zFakeConfig.__eq__'  s;  € ÝˆtŒ}ÑÔ¥ U¤^Ñ!4Ô!4Ò4Ð4ØˆFØ”M×'Ò'Ñ)Ô)ð 	ñ 	‰DˆAˆqØ˜œÐ&Ð&Ø��Ø�D”NÐ"Ð"Øð ˜œ¨Ô*ð ð#Ý! !™WœWð '¨­D°´ÀÔ1BÑ,CÔ,Cð 'ÀrØ!Ÿwšw™yœy¨B¯GªG©I¬IÒ5Ð5Ø &ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'Ø5ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'øøõ #ð #ð #ð #ð !œ>¨!Ô,°Ò1Ð1Ø"˜F˜F˜Fð 2Ð1ð#øøøð ”~ aÔ(¨AÒ-Ð-Ø˜˜ñ .ð ”> !Ô$¨Ò)Ð)Ø�F�Fñ *àˆtsf   Á1DÂ DÂ,C-ÃDÃDÃ!DÃ-C1Ã1DÃ4C1Ã5DÃ8DÄD	ÄDÄD	ÄDÄD2Ä1D2c                 ó~  — d}| j                              ¦   «         D ]�\  }}|}|| j        v r�	 t          |¦  «        5 }dt                               |                     ¦   «         ¦  «        z  }d d d ¦  «         n# 1 swxY w Y   n)# t          $ r}dt	          |¦  «        z  }Y d }~nd }~ww xY w|d|›d|›d�z  }Œžd|z  S )Nú
zFILE: %sz	ERROR: %sú	z: zConfig(%s
))rß   rä   rå   ra   rG   r   rb   ræ   )r:   Úreprè   ré   r3   r@   Úes          r   Ú__repr__zFakeConfig.__repr__@  s+  € ØˆØ”M×'Ò'Ñ)Ô)ð 	+ð 	+‰DˆAˆqØˆCØ�D”NÐ"Ð"ð/Ý˜a™œð @ AØ(­3¯:ª:°a·f²f±h´hÑ+?Ô+?Ñ?˜ð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @øøåð /ð /ð /Ø%­¨A©¬Ñ.�C�C�C�C�C�Cøøøøð/øøøàˆC 1 1 1 c c cÐ*Ñ*ˆCˆCØ Ñ#Ð#s:   ­B¼0A8Á,BÁ8A<	Á<BÁ?A<	Â BÂ
B*ÂB%Â%B*r   )r[   r\   r]   rå   râ   rì   rò   r2   r!   r   rØ   rØ     sQ   € € € € € à8Ð8Ð8€Ið%ð %ð %ð %ðð ð ð2$ð $ð $ð $ð $r!   rØ   c                   óþ  — e Zd Zddddidœddddœdœddddœdœddddœdœd	dd	dœdœd
dd
dœdœddddœdœddddœdœddddœdœddddœdœddddœdœddddœdœddddœdœddddœdœddddœdœddddœdœddddœdœddddœdœgddeidœdeedœdœdeddœdœdeeddœdœdeddœdœdeddœdœdeeded œdœdeed!œdœgde	e
ed"œd#œddd$e	id%œe	e
ed&œd#œdde	d'd(œd%œe	e
ed&œd#œd	d)d	d*eid%œid#œd
d)d	d+d,eed-d.d/œd%œid#œdd)d	d+d,ed-d.d0œd%œid#œde
ed1œd#œde	eed2œd#œdd3d4d5d6œd#œde	eed7œd#œdd8d9d:g d;¢d<œid#œdd8d9d=g d<œid#œgd>œZd?„ Zd@„ ZdA„ ZdB„ ZdC„ ZdD„ ZdE„ ZdF„ Z edG¦  «        dH„ ¦   «         Z edG¦  «        dI„ ¦   «         ZdJ„ ZdK„ Z  edL¦  «        dM„ ¦   «         Z! edL¦  «        dN„ ¦   «         Z"dO„ Z#dP„ Z$dQ„ Z%dR„ Z&dS„ Z'dT„ Z(dU„ Z)dV„ Z*dW„ Z+dX„ Z,dY„ Z-dZ„ Z.d[„ Z/d\„ Z0d]„ Z1d^„ Z2d_„ Z3d`„ Z4da„ Z5db„ Z6dc„ Z7dd„ Z8de„ Z9df„ Z:dgS )hÚTestKubeConfigLoaderÚno_userÚclusterÚdefault©rK   rW   Úsimple_token©rö   ÚuserÚgcpÚexpired_gcpÚoidcÚexpired_oidcÚexpired_oidc_no_idp_cert_dataÚ	user_passÚsslÚno_ssl_verificationÚssl_verificationÚproxy_cluster_contextÚproxy_clusterússl-no_fileússl-local-fileÚnon_existing_userÚexec_cred_userÚexec_cred_user_certificateútls-server-nameÚserver©rK   rö   )r  zcertificate-authorityÚ	cert_testF)r  úcertificate-authority-dataúinsecure-skip-tls-verifyT)r  r  )r  r  r  r  )r  z	proxy-url©rá   ÚusernameÚpassword©rK   rû   úaccess-token©rK   Úconfig)úauth-providerrá   r  r  z2000-01-01T12:00:00Z)r  Úexpiryr  úid-tokenútectonic-kubectlÚFAKE_SECRETz"https://example.localhost/identityÚ lucWJjEhlxZW01cXI3YmVlcYnpxNGhzk©ú	client-idúclient-secretr  zidp-certificate-authority-dataúidp-issuer-urlúrefresh-token)r   r!  r  r"  r#  )r  r  )rá   úclient-certificater/   Ú
token_fileÚclient_certÚ
client_key)Ú	tokenFiler$  r/   ©rá   zclient-certificate-datazclient-key-dataÚexecz$client.authentication.k8s.io/v1beta1zaws-iam-authenticator)rá   z-izdummy-cluster)Ú
apiVersionÚcommandrU   z custom-certificate-authenticator©úcurrent-contextÚcontextsÚclustersÚusersc              ƒ   óÚ   K  — t          t          ¬¦  «        }t          ¦   «         }t          | j        d¬¦  «                             |¦  «        ƒ d {V —† |                      ||¦  «         d S )N©Úhostrõ   ©Úconfig_dictÚactive_context©rØ   Ú	TEST_HOSTr   ÚTEST_KUBE_CONFIGÚload_and_setrm   ©r:   ÚexpectedÚactuals      r   Útest_no_user_contextz)TestKubeConfigLoader.test_no_user_context”  sˆ   è è € Ý¥9Ð-Ñ-Ô-ˆÝ‘”ˆÝØÔ-Ø$ð&ñ &ô &ç&2¢l°6Ñ&:Ô&:ð	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r!   c              ƒ   óö   K  — t          t          t          t          z  ¬¦  «        }t          ¦   «         }t	          | j        d¬¦  «                             |¦  «        ƒ d {V —† |                      ||¦  «         d S )N©r4  rá   rù   r5  ©rØ   r9  ÚBEARER_TOKEN_FORMATr|   r   r:  r;  rm   r<  s      r   Útest_simple_tokenz&TestKubeConfigLoader.test_simple_tokenœ  s¡   è è € Ý¥9Ý$7Õ:JÑ$JðLñ Lô Lˆå‘”ˆÝØÔ-Ø)ð+ñ +ô +ç+7ª<¸Ñ+?Ô+?ð	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r!   c                 óÐ   — t          | j        d¬¦  «        }|                      |                     ¦   «         ¦  «         |                      t
          t          z  |j        ¦  «         d S )Nrù   r5  )r   r:  r¼   Ú_load_user_tokenrm   rC  r|   rá   ©r:   Úloaders     r   Útest_load_user_tokenz)TestKubeConfigLoader.test_load_user_token¥  sd   € Ý!ØÔ-Ø)ð+ñ +ô +ˆð 	�Š˜×/Ò/Ñ1Ô1Ñ2Ô2Ð2Ø×ÒÕ,Õ/?Ñ?ÀÄÑNÔNÐNÐNÐNr!   c              ƒ   óú   K  — t          t          t          t          z  ¬¦  «        }t          ¦   «         }t	          | j        dd„ ¬¦  «                             |¦  «        ƒ d {V —† |                      ||¦  «         d S )NrA  rü   c                  ó    — t          d¦  «        S ©NzSHOULD NOT BE CALLED©r*   r2   r!   r   rÃ   z:TestKubeConfigLoader.test_gcp_no_refresh.<locals>.<lambda>´  ó   € Õ+;Ø&ñ,(ô ,(€ r!   ©r6  r7  Úget_google_credentialsrB  r<  s      r   Útest_gcp_no_refreshz(TestKubeConfigLoader.test_gcp_no_refresh¬  s¦   è è € ÝÝÝ%Õ(8Ñ8ð:ñ :ô :ˆõ ‘”ˆÝØÔ-Ø ð$(ð $(ð)ñ )ô )÷ *6ª°fÑ)=Ô)=ð		>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð
 	×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r!   c              ƒ   óè   K  — t          | j        dd„ ¬¦  «        }|                     ¦   «         ƒ d {V —†}|                      |¦  «         |                      t
          t          z  |j        ¦  «         d S )Nrü   c                  ó    — t          d¦  «        S rL  rM  r2   r!   r   rÃ   zETestKubeConfigLoader.test_load_gcp_token_no_refresh.<locals>.<lambda>¼  rN  r!   rO  )r   r:  Úload_gcp_tokenr¼   rm   rC  r|   rá   )r:   rH  Úress      r   Útest_load_gcp_token_no_refreshz3TestKubeConfigLoader.test_load_gcp_token_no_refresh¸  s”   è è € Ý!ØÔ-Ø ð$(ð $(ð)ñ )ô )ˆð
 ×)Ò)Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+ˆØ�Š˜ÑÔÐØ×ÒÕ,Õ/?Ñ?Øœñ	'ô 	'ð 	'ð 	'ð 	'r!   c              ƒ   óR  ‡K  — t          t          t          j                             ¦   «         ¬¦  «        Št	          | j        dˆfd„¬¦  «        }|                     ¦   «         ƒ d {V —†}|                      |¦  «         |                      t          t          z  |j
        ¦  «         d S )N©rá   r  rý   c                  ó   •— ‰ S r   r2   )Úcreds   €r   rÃ   zGTestKubeConfigLoader.test_load_gcp_token_with_refresh.<locals>.<lambda>Í  s   ø€ ¨4€ r!   rO  )r   ÚTEST_ANOTHER_DATA_BASE64ÚdatetimeÚnowr   r:  rT  r¼   rm   rC  rá   )r:   rH  rU  rZ  s      @r   Ú test_load_gcp_token_with_refreshz5TestKubeConfigLoader.test_load_gcp_token_with_refreshÃ  s¿   øè è € åÝ*ÝÔ$×(Ò(Ñ*Ô*ð
ñ 
ô 
ˆõ
 "ØÔ-Ø(Ø#/ < < <ð1ñ 1ô 1ˆð ×)Ò)Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+ˆØ�Š˜ÑÔÐØ×ÒÕ,Õ/GÑGØœñ	'ô 	'ð 	'ð 	'ð 	'r!   c              ƒ   óì   K  — d„ }t          | j        d|¬¦  «        }|                     ¦   «         ƒ d {V —†}|                      |¦  «         |                      t
          t          z  |j        ¦  «         d S )Nc               “   ój   K  — t          t          t          j                             ¦   «         ¬¦  «        S )NrX  )r   r[  r\  r]  r2   r!   r   rZ  zITestKubeConfigLoader.test_async_load_gcp_token_with_refresh.<locals>.credÕ  s2   è è € Ý"Ý.ÝÔ(×,Ò,Ñ.Ô.ðñ ô ð r!   rý   rO  )r   r:  rT  r¼   rm   rC  r[  rá   )r:   rZ  rH  rU  s       r   Ú&test_async_load_gcp_token_with_refreshz;TestKubeConfigLoader.test_async_load_gcp_token_with_refreshÓ  sž   è è € ð	ð 	ð 	õ "ØÔ-Ø(Ø#'ð)ñ )ô )ˆð ×)Ò)Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+ˆØ�Š˜ÑÔÐØ×ÒÕ,Õ/GÑGØœñ	'ô 	'ð 	'ð 	'ð 	'r!   c              ƒ   óª   K  — t          | j        d¬¦  «        }|                     ¦   «         ƒ d {V —† |                      t          |j        ¦  «         d S )Nrþ   r5  )r   r:  Ú_load_authenticationrm   ÚTEST_OIDC_TOKENrá   rG  s     r   Útest_oidc_no_refreshz)TestKubeConfigLoader.test_oidc_no_refreshä  sg   è è € Ý!ØÔ-Ø!ð
ñ 
ô 
ˆð ×)Ò)Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ø×Ò�¨&¬,Ñ7Ô7Ð7Ð7Ð7r!   z?kubernetes.aio.config.kube_config.OpenIDRequestor.refresh_tokenc              ƒ   ó´   K  — dddœ|_         t          | j        d¬¦  «        }|                     ¦   «         ƒ d {V —† |                      d|j        ¦  «         d S )NÚabc123Únewtoken123©Úid_tokenr   rÿ   r5  úBearer abc123©Úreturn_valuer   r:  rc  rm   rá   ©r:   Úmock_refresh_tokenrH  s      r   Útest_oidc_with_refreshz+TestKubeConfigLoader.test_oidc_with_refreshì  s�   è è € ð !Ø*ð+
ð +
ÐÔ'õ
 "ØÔ-Ø)ð
ñ 
ô 
ˆð ×)Ò)Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ø×Ò˜¨&¬,Ñ7Ô7Ð7Ð7Ð7r!   c              ƒ   ó´   K  — dddœ|_         t          | j        d¬¦  «        }|                     ¦   «         ƒ d {V —† |                      d|j        ¦  «         d S )Nrg  rh  ri  r   r5  rk  rl  rn  s      r   Ú'test_oidc_with_refresh_no_idp_cert_dataz<TestKubeConfigLoader.test_oidc_with_refresh_no_idp_cert_dataú  s�   è è € ð !Ø*ð+
ð +
ÐÔ'õ
 "ØÔ-Ø:ð
ñ 
ô 
ˆð ×)Ò)Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ø×Ò˜¨&¬,Ñ7Ô7Ð7Ð7Ð7r!   c              ƒ   ó’  K  — t          | j        ¬¦  «        }|                      t          ¦  «        5  di i|_        |                     ¦   «         ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   |                      t          ¦  «        5  ddddiii|_        |                     ¦   «         ƒ d {V —† d d d ¦  «         d S # 1 swxY w Y   d S )N©r6  r  r  r  Únotvalid)r   r:  rO   Ú
ValueErrorÚ_userÚ_load_oid_tokenrG  s     r   Útest_invalid_oidc_configsz.TestKubeConfigLoader.test_invalid_oidc_configs  sp  è è € Ý!¨dÔ.CÐDÑDÔDˆà×Ò�zÑ*Ô*ð 	+ð 	+Ø+¨RÐ0ˆFŒLØ×(Ò(Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð ×Ò�zÑ*Ô*ð 	+ð 	+àØØ" Jðð"ðˆFŒLð ×(Ò(Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+s#   ²$A"Á"A&Á)A&Â(B<Â<C ÃC c              ƒ   óÔ   K  — t          | j        ¬¦  «        }|                      t          ¦  «        5  |                     di i¦  «        ƒ d {V —† d d d ¦  «         d S # 1 swxY w Y   d S )Nrt  r  )r   r:  rO   r
   Ú_refresh_oidcrG  s     r   Útest_invalid_refreshz)TestKubeConfigLoader.test_invalid_refresh  s»   è è € Ý!¨dÔ.CÐDÑDÔDˆà×Ò�Ñ/Ô/ð 	7ð 	7Ø×&Ò&¨°" ~Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð 	7ð 	7s   ²AÁA!Á$A!z2kubernetes.aio.config.kube_config.ExecProvider.runc              ƒ   ó  K  — d}d|i|_         t          t          dt          |z  i¬¦  «        }t          ¦   «         }t	          | j        d¬¦  «                             |¦  «        ƒ d {V —† |                      ||¦  «         d S )NÚdummyrá   rÝ   )r4  rÞ   r
  r5  )rm  rØ   r9  rC  r   r:  r;  rm   )r:   Úmockrá   r=  r>  s        r   Útest_user_exec_authz(TestKubeConfigLoader.test_user_exec_auth  s¿   è è € àˆà�Uð
ˆÔõ ¥9Ø+Õ-@À5Ñ-Hð7Jð Kñ Kô Kˆå‘”ˆÝØÔ-Ø+ð-ñ -ô -ç-9ª\¸&Ñ-AÔ-Að	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r!   c              ƒ   óš  K  — t           t          dœ|_        t          t          |                      t           ¦  «        |                      t          ¦  «        |                      t          ¦  «        d¬¦  «        }t          ¦   «         }t          | j        d¬¦  «         	                    |¦  «        ƒ d {V —† |  
                    ||¦  «         d S )N)ÚclientCertificateDataÚclientKeyDataT)r4  rÛ   rÚ   rÙ   Ú
verify_sslr  r5  )ÚTEST_CLIENT_CERTÚTEST_CLIENT_KEYrm  rØ   ÚTEST_SSL_HOSTrL   ÚTEST_CERTIFICATE_AUTHr   r:  r;  rm   )r:   r  r=  r>  s       r   Ú test_user_exec_auth_certificatesz5TestKubeConfigLoader.test_user_exec_auth_certificates-  sé   è è € õ &6Ý,ð
ð 
ˆÔõ ÝØ×,Ò,Õ-=Ñ>Ô>Ø×+Ò+­OÑ<Ô<Ø×.Ò.Õ/DÑEÔEØðñ ô ˆõ ‘”ˆÝØÔ-Ø7ð9ñ 9ô 9ç9EºÀfÑ9MÔ9Mð	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r!   c              ƒ   óæ   K  — t          t          t          ¬¦  «        }t          ¦   «         }t          | j        d¬¦  «                             |¦  «        ƒ d {V —† |                      ||¦  «         d S )NrA  r  r5  )rØ   r9  ÚTEST_BASIC_TOKENr   r:  r;  rm   r<  s      r   Útest_user_passz#TestKubeConfigLoader.test_user_pass?  s‹   è è € Ý¥9Õ4DÐEÑEÔEˆÝ‘”ˆÝØÔ-Ø&ð(ñ (ô (ç(4ª°VÑ(<Ô(<ð	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r!   c                 óÀ   — t          | j        d¬¦  «        }|                      |                     ¦   «         ¦  «         |                      t
          |j        ¦  «         d S )Nr  r5  )r   r:  r¼   Ú_load_user_pass_tokenrm   r‹  rá   rG  s     r   Útest_load_user_pass_tokenz.TestKubeConfigLoader.test_load_user_pass_tokenG  s^   € Ý!ØÔ-Ø&ð(ñ (ô (ˆð 	�Š˜×4Ò4Ñ6Ô6Ñ7Ô7Ð7Ø×ÒÕ)¨6¬<Ñ8Ô8Ð8Ð8Ð8r!   c              ƒ   ó’   K  — t          | j        d¬¦  «        }|                      |j        dt	          ¦   «         ¦  «        ƒ d {V —† d S )Nr  r5  rs   )r   r:  rZ   r;  rØ   rG  s     r   Útest_ssl_no_cert_filesz+TestKubeConfigLoader.test_ssl_no_cert_filesN  su   è è € Ý!ØÔ-Ø(ð*ñ *ô *ˆð ×)Ò)ØÔØÝ‰LŒLñô ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r!   c           	   ƒ   óŽ  K  — t          t          t          t          z  |                      t
          ¦  «        |                      t          ¦  «        |                      t          ¦  «        d¬¦  «        }t          ¦   «         }t          | j	        d¬¦  «         
                    |¦  «        ƒ d {V —† |                      ||¦  «         d S )NT©r4  rá   rÛ   rÚ   rÙ   r„  r  r5  )rØ   r‡  rC  r|   rL   r…  r†  rˆ  r   r:  r;  rm   r<  s      r   Útest_sslzTestKubeConfigLoader.test_sslW  sÒ   è è € ÝÝÝ%Õ(8Ñ8Ø×,Ò,Õ-=Ñ>Ô>Ø×+Ò+­OÑ<Ô<Ø×.Ò.Õ/DÑEÔEØð
ñ 
ô 
ˆõ ‘”ˆÝØÔ-Ø ð"ñ "ô "ç".¢,¨vÑ"6Ô"6ð	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r!   c              ƒ   ó^  K  — t          t          t          t          z  |                      t
          ¦  «        |                      t          ¦  «        dd ¬¦  «        }t          ¦   «         }t          | j        d¬¦  «         	                    |¦  «        ƒ d {V —† |  
                    ||¦  «         d S )NF©r4  rá   rÛ   rÚ   r„  rÙ   r  r5  ©rØ   r‡  rC  r|   rL   r…  r†  r   r:  r;  rm   r<  s      r   Útest_ssl_no_verificationz-TestKubeConfigLoader.test_ssl_no_verificationf  sÊ   è è € ÝÝÝ%Õ(8Ñ8Ø×,Ò,Õ-=Ñ>Ô>Ø×+Ò+­OÑ<Ô<ØØð
ñ 
ô 
ˆõ ‘”ˆÝØÔ-Ø0ð2ñ 2ô 2ç2>²,¸vÑ2FÔ2Fð	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r!   c              ƒ   ó^  K  — t          t          t          t          z  |                      t
          ¦  «        |                      t          ¦  «        dd ¬¦  «        }t          ¦   «         }t          | j        d¬¦  «         	                    |¦  «        ƒ d {V —† |  
                    ||¦  «         d S )NTr–  r  r5  r—  r<  s      r   Útest_ssl_verificationz*TestKubeConfigLoader.test_ssl_verificationu  sÊ   è è € ÝÝÝ%Õ(8Ñ8Ø×,Ò,Õ-=Ñ>Ô>Ø×+Ò+­OÑ<Ô<ØØð
ñ 
ô 
ˆõ ‘”ˆÝØÔ-Ø-ð/ñ /ô /ç/;ª|¸FÑ/CÔ/Cð	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r!   c           	   ƒ   óš  K  — t          t          t          t          z  |                      t
          ¦  «        |                      t          ¦  «        |                      t          ¦  «        dt          ¬¦  «        }t          ¦   «         }t          | j
        d¬¦  «                             |¦  «        ƒ d {V —† |                      ||¦  «         d S )NT)r4  rá   rÛ   rÚ   rÙ   r„  Útls_server_namer  r5  )rØ   r‡  rC  r|   rL   r…  r†  rˆ  ÚTEST_TLS_SERVER_NAMEr   r:  r;  rm   r<  s      r   Útest_tls_server_namez)TestKubeConfigLoader.test_tls_server_name„  sÜ   è è € ÝÝÝ%Õ(8Ñ8Ø×,Ò,Õ-=Ñ>Ô>Ø×+Ò+­OÑ<Ô<Ø×.Ò.Õ/DÑEÔEØÝ0ð
ñ 
ô 
ˆõ ‘”ˆÝØÔ-Ø,ð.ñ .ô .ç.:ªl¸6Ñ.BÔ.Bð	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r!   c              ƒ   ó  K  — t          t          t          t          z  t          ¬¦  «        }t          ¦   «         }t          | j        d¬¦  «                             |¦  «        ƒ d {V —† |                      ||¦  «         d S )N)r4  rá   Úproxyr  r5  )	rØ   r9  rC  r|   ÚTEST_PROXY_URLr   r:  r;  rm   r<  s      r   Útest_proxy_url_from_clusterz0TestKubeConfigLoader.test_proxy_url_from_cluster”  s¤   è è € ÝÝÝ%Õ(8Ñ8Ý ð
ñ 
ô 
ˆõ
 ‘”ˆÝØÔ-Ø2ð4ñ 4ô 4ç4@²LÀÑ4HÔ4Hð	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r!   c                 ó  — t          | j        d¬¦  «        }|                     ¦   «         }t          d| j        ¦  «        d         }|D ]8}|                     |d         ¦  «        }|                      |j        |¦  «         Œ9d S )Nrõ   r5  r#   r/  rK   )r   r:  Úlist_contextsr   r»   rm   r§   )r:   rH  Úactual_contextsÚexpected_contextsr>  r=  s         r   Útest_list_contextsz'TestKubeConfigLoader.test_list_contexts   s•   € Ý!ØÔ-Ø$ð&ñ &ô &ˆð !×.Ò.Ñ0Ô0ˆÝ& r¨4Ô+@ÑAÔAÀ*ÔMÐØ%ð 	5ð 	5ˆFØ(×6Ò6°v¸f´~ÑFÔFˆHØ×Ò˜Xœ^¨VÑ4Ô4Ð4Ð4ð	5ð 	5r!   c                 óÌ   — t          | j        ¬¦  «        }t          d| j        ¦  «        d         }|                      |                     d¦  «        j        |j        ¦  «         d S )Nrt  r#   r/  rõ   )r   r:  r   rm   r»   r§   Úcurrent_context©r:   rH  r¦  s      r   Útest_current_contextz)TestKubeConfigLoader.test_current_contextª  si   € Ý!¨dÔ.CÐDÑDÔDˆÝ& r¨4Ô+@ÑAÔAÀ*ÔMÐØ×ÒÐ*×8Ò8¸ÑCÔCÔIØÔ/ñ	1ô 	1ð 	1ð 	1ð 	1r!   c                 óö   — t          | j        ¬¦  «        }|                     d¦  «         t          d| j        ¦  «        d         }|                      |                     d¦  «        j        |j        ¦  «         d S )Nrt  r  r#   r/  )r   r:  Úset_active_contextr   rm   r»   r§   r©  rª  s      r   Útest_set_active_contextz,TestKubeConfigLoader.test_set_active_context°  s}   € Ý!¨dÔ.CÐDÑDÔDˆØ×!Ò! %Ñ(Ô(Ð(Ý& r¨4Ô+@ÑAÔAÀ*ÔMÐØ×ÒÐ*×8Ò8¸Ñ?Ô?ÔEØÔ/ñ	1ô 	1ð 	1ð 	1ð 	1r!   c           	   ƒ   ó   K  — t          t          t          t          z  |                      t
          ¦  «        |                      t          ¦  «        |                      t          ¦  «        ¬¦  «        }	 t          j	        ¦   «         }t          ¦   «         }t          t          j                             |d¦  «        d¦  «        5 }|                     t                               ¦   «         ¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          j                             |d¦  «        d¦  «        5 }|                     t
                               ¦   «         ¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          j                             |d¦  «        d¦  «        5 }|                     t                               ¦   «         ¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          j                             |d¦  «        d¦  «        5 }|                     t                               ¦   «         ¦  «         d d d ¦  «         n# 1 swxY w Y   t!          | j        d|¬¦  «                             |¦  «        ƒ d {V —† |                      ||¦  «         t)          j        |¦  «         d S # t)          j        |¦  «         w xY w)	N)r4  rá   rÛ   rÚ   rÙ   r  Úwbr&  r'  r%  r  )r6  r7  Úconfig_base_path)rØ   r‡  rC  r|   rL   r…  r†  rˆ  rC   Úmkdtempra   r=   r‘   ÚjoinrF   r   r   r:  r;  rm   ÚshutilÚrmtree)r:   r=  Útemp_dirr>  Úfds        r   Ú test_ssl_with_relative_ssl_filesz5TestKubeConfigLoader.test_ssl_with_relative_ssl_files·  sU  è è € ÝÝÝ%Õ(8Ñ8Ø×,Ò,Õ-=Ñ>Ô>Ø×+Ò+­OÑ<Ô<Ø×.Ò.Õ/DÑEÔEð
ñ 
ô 
ˆð	$ÝÔ'Ñ)Ô)ˆHÝ‘\”\ˆFÝ•b”g—l’l 8¨[Ñ9Ô9¸4Ñ@Ô@ð 9ÀBØ—’Õ.×5Ò5Ñ7Ô7Ñ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9å•b”g—l’l 8¨]Ñ;Ô;¸TÑBÔBð 4ÀbØ—’Õ)×0Ò0Ñ2Ô2Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4å•b”g—l’l 8¨\Ñ:Ô:¸DÑAÔAð 3ÀRØ—’�×/Ò/Ñ1Ô1Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3å•b”g—l’l 8¨\Ñ:Ô:¸DÑAÔAð 4ÀRØ—’Õ)×0Ò0Ñ2Ô2Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4å"Ø Ô1Ø/Ø!)ð+ñ +ô +÷ ,8ª<¸Ñ+?Ô+?ð@ð @ð @ð @ð @ð @ð @ð ×Ò˜X vÑ.Ô.Ð.åŒM˜(Ñ#Ô#Ð#Ð#Ð#ø�FŒM˜(Ñ#Ô#Ð#Ð#øøøsž   Á2AJ7 Ã-C:Ã.J7 Ã:C>Ã>J7 ÄC>Ä1J7 Ä3-E,Å J7 Å,E0Å0J7 Å3E0Å41J7 Æ%-GÇJ7 ÇG"Ç"J7 Ç%G"Ç&1J7 È-IÉJ7 ÉIÉJ7 ÉIÉA	J7 Ê7Kc              ƒ   ó   K  — t          t          t          t          z  ¬¦  «        }|                      t          j        | j        ¦  «        ¦  «        }t          ¦   «         }t          |d|¬¦  «        ƒ d {V —† |  	                    ||¦  «         d S ©NrA  rù   )Úconfig_filerW   Úclient_configuration)
rØ   r9  rC  r|   rL   ÚyamlÚ	safe_dumpr:  r   rm   ©r:   r=  r»  r>  s       r   Útest_load_kube_configz*TestKubeConfigLoader.test_load_kube_configÒ  s¬   è è € Ý¥9Ý$7Õ:JÑ$JðLñ Lô Lˆà×,Ò,­T¬^¸DÔ<QÑ-RÔ-RÑSÔSˆÝ‘”ˆÝ¨;Ø'5Ø4:ð<ñ <ô <ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r!   c              ƒ   óÒ   K  — t          t          t          t          z  ¬¦  «        }t          ¦   «         }t	          | j        d|¬¦  «        ƒ d {V —† |                      ||¦  «         d S )NrA  rù   )r6  rW   r¼  )rØ   r9  rC  r|   r   r:  rm   r<  s      r   Útest_load_kube_config_from_dictz4TestKubeConfigLoader.test_load_kube_config_from_dictÜ  s™   è è € Ý¥9Ý$7Õ:JÑ$JðLñ Lô Lˆå‘”ˆÝ(°TÔ5JØ1?Ø>DðFñ Fô Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r!   c           	   ƒ   óþ  K  — t          t          t          t          z  |                      t
          ¦  «        |                      t          ¦  «        |                      t          ¦  «        d¬¦  «        }t          ¦   «         }t          j	        d¦  «        }t          | j        d||¬¦  «        ƒ d {V —† |                      ||¦  «         |                      t          t          j        |¦  «        ¦  «        d¦  «         d S )NTr“  Útest_temp_file_pathr  )r6  rW   r¼  Útemp_file_pathr¬   )rØ   r‡  rC  r|   rL   r…  r†  rˆ  rC   r²  r   r:  rm   r¸   r=   Úlistdir)r:   r=  r>  Útmp_paths       r   Ú3test_load_kube_config_from_dict_with_temp_file_pathzHTestKubeConfigLoader.test_load_kube_config_from_dict_with_temp_file_pathå  s  è è € ÝÝÝ%Õ(8Ñ8Ø×,Ò,Õ-=Ñ>Ô>Ø×+Ò+­OÑ<Ô<Ø×.Ò.Õ/DÑEÔEØð
ñ 
ô 
ˆõ ‘”ˆåÔ#Ð$9Ñ:Ô:ˆå(°TÔ5JØ16Ø>DØ8@ðBñ Bô Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	×Ò˜ 6Ñ*Ô*Ð*ð 	×Ò��RœZ¨Ñ1Ô1Ñ2Ô2°AÑ6Ô6Ð6Ð6Ð6r!   c                 óh  — |                       t          j        | j        ¦  «        ¦  «        }t	          |¬¦  «        \  }}|                      | j        d         d         |¦  «         t          r#|                      | j        d         |¦  «         d S |                      | j        d         |¦  «         d S )N©r»  r/  r   )	rL   r½  r¾  r:  r   ÚassertDictEqualr   ÚassertCountEqualÚassertItemsEqual)r:   r»  r/  r7  s       r   Útest_list_kube_config_contextsz3TestKubeConfigLoader.test_list_kube_config_contextsû  sÐ   € Ø×,Ò,­T¬^¸DÔ<QÑ-RÔ-RÑSÔSˆÝ#<Ø#ð$%ñ $%ô $%Ñ ˆ�.à×Ò˜TÔ2°:Ô>¸qÔAØ+ñ	-ô 	-ð 	-åð 	,Ø×!Ò! $Ô"7¸
Ô"CØ"*ñ,ô ,ð ,ð ,ð ,ð ×!Ò! $Ô"7¸
Ô"CØ"*ñ,ô ,ð ,ð ,ð ,r!   c              ƒ   ó@  K  — |                       t          j        | j        ¦  «        ¦  «        }t	          |d¬¦  «        ƒ d {V —†}|                      t          |j        j        ¦  «         |                      t          t          z  |j        j        d         ¦  «         d S ©Nrù   ©r»  rW   rÝ   )rL   r½  r¾  r:  r   rm   r9  Úconfigurationr4  rC  r|   rÞ   ©r:   r»  Úclients      r   Útest_new_client_from_configz0TestKubeConfigLoader.test_new_client_from_config  s·   è è € Ø×,Ò,­T¬^¸DÔ<QÑ-RÔ-RÑSÔSˆÝ-Ø#¨^ð=ñ =ô =ð =ð =ð =ð =ð =ð =ˆà×Ò� FÔ$8Ô$=Ñ>Ô>Ð>Ø×ÒÕ,Õ/?Ñ?ØÔ-Ô5°mÔDñ	Fô 	Fð 	Fð 	Fð 	Fr!   c              ƒ   óŠ  K  — |                       t          j        | j        ¦  «        ¦  «        }t	          |d¬¦  «        ƒ d {V —†}|                      t          |j        j        ¦  «         |                      t          t          z  |j        j        d         ¦  «         |                      t          |j        j        ¦  «         d S )Nr  rÑ  rÝ   )rL   r½  r¾  r:  r   rm   r9  rÒ  r4  rC  r|   rÞ   r¡  r   rÓ  s      r   Ú!test_new_client_from_config_proxyz6TestKubeConfigLoader.test_new_client_from_config_proxy  s×   è è € Ø×,Ò,­T¬^¸DÔ<QÑ-RÔ-RÑSÔSˆÝ-Ø#Ð-DðFñ Fô Fð Fð Fð Fð Fð Fð Fˆà×Ò� FÔ$8Ô$=Ñ>Ô>Ð>Ø×ÒÕ,Õ/?Ñ?ØÔ-Ô5°mÔDñ	Fô 	Fð 	Fà×Ò�¨Ô)=Ô)CÑDÔDÐDÐDÐDr!   c              ƒ   óò   K  — t          | j        d¬¦  «        ƒ d {V —†}|                      t          |j        j        ¦  «         |                      t          t          z  |j        j        d         ¦  «         d S )Nrù   )r6  rW   rÝ   )	r   r:  rm   r9  rÒ  r4  rC  r|   rÞ   )r:   rÔ  s     r   Ú test_new_client_from_config_dictz5TestKubeConfigLoader.test_new_client_from_config_dict  s£   è è € Ý2ØÔ-°~ðGñ Gô Gð Gð Gð Gð Gð Gð Gˆà×Ò� FÔ$8Ô$=Ñ>Ô>Ð>Ø×ÒÕ,Õ/?Ñ?ØÔ-Ô5°mÔDñ	Fô 	Fð 	Fð 	Fð 	Fr!   c              ƒ   ó  K  — t          t          ¬¦  «        }t          ¦   «         }| j                             ¦   «         }|d= t	          |d¬¦  «                             |¦  «        ƒ d {V —† |                      ||¦  «         d S )Nr3  r1  rü   r5  )rØ   r9  r:  Úcopyr   r;  rm   )r:   r=  r>  Útest_kube_configs       r   Útest_no_users_sectionz*TestKubeConfigLoader.test_no_users_section   s¢   è è € Ý¥9Ð-Ñ-Ô-ˆÝ‘”ˆØÔ0×5Ò5Ñ7Ô7ÐØ˜WÐ%ÝØ(Ø ð"ñ "ô "ç".¢,¨vÑ"6Ô"6ð	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r!   c              ƒ   óÚ   K  — t          t          ¬¦  «        }t          ¦   «         }t          | j        d¬¦  «                             |¦  «        ƒ d {V —† |                      ||¦  «         d S )Nr3  r	  r5  r8  r<  s      r   Útest_non_existing_userz+TestKubeConfigLoader.test_non_existing_user*  s�   è è € Ý¥9Ð-Ñ-Ô-ˆÝ‘”ˆÝØÔ-Ø.ð0ñ 0ô 0ç0<²¸VÑ0DÔ0Dð	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r!   c              ƒ   ó¢  K  — t          | j        dd„ ¬¦  «        }t          d¦  «                             ¦   «         }dt          g|_        t          ¦   «         }i |_        |                      t          ¦  «        5  t          ||¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   |  
                    t          t          z  |j        ¦  «         d S )Nrü   c                  ó    — t          d¦  «        S rL  rM  r2   r!   r   rÃ   z=TestKubeConfigLoader.test_refresh_gcp_token.<locals>.<lambda>6  rN  r!   rO  úasyncio.sleepr   )r   r:  r   ÚstartÚAssertionErrorÚside_effectr   rÞ   rO   r   rm   rC  r|   rá   )r:   rH  Ú
mock_sleepÚmock_configs       r   Útest_refresh_gcp_tokenz+TestKubeConfigLoader.test_refresh_gcp_token2  s#  è è € Ý!ØÔ-Ø ð$(ð $(ð)ñ )ô )ˆõ
 ˜?Ñ+Ô+×1Ò1Ñ3Ô3ˆ
Ø"#¥^Ð!4ˆ
Ôå‘f”fˆØ ˆÔà×Ò�~Ñ.Ô.ð 	5ð 	5Ý ¨Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ð4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	×ÒÕ,Õ/?Ñ?Øœñ	'ô 	'ð 	'ð 	'ð 	's   Á9BÂB Â#B c              ƒ   óþ  K  —  G d„ dt           ¦  «        } || j        d¬¦  «        }t          d¦  «                             ¦   «         }dt          g|_        t          ¦   «         }i |_        t          j         	                    ¦   «         |_
        |                      t          ¦  «        5  t          ||¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   |                      t          |j        d         ¦  «         d S )Nc                   ó   — e Zd Zd„ ZdS )úJTestKubeConfigLoader.test_refresh_exec_token.<locals>.MockKubeConfigLoaderc              “   ó"   K  — t           | _        d S r   )r[  rá   r9   s    r   Úload_from_exec_pluginz`TestKubeConfigLoader.test_refresh_exec_token.<locals>.MockKubeConfigLoader.load_from_exec_pluginF  s   è è € Ý5�”
�
�
r!   N)r[   r\   r]   rí  r2   r!   r   ÚMockKubeConfigLoaderrë  E  s#   € € € € € ð6ð 6ð 6ð 6ð 6r!   rî  r
  r5  râ  r   rÝ   )r   r:  r   rã  rä  rå  r   rÞ   r\  r]  Úexec_plugin_expiryrO   r   rm   r[  )r:   rî  rH  ræ  rç  s        r   Útest_refresh_exec_tokenz,TestKubeConfigLoader.test_refresh_exec_tokenD  sU  è è € ð	6ð 	6ð 	6ð 	6ð 	6Õ#3ñ 	6ô 	6ð 	6ð &Ð%ØÔ-Ø+ð-ñ -ô -ˆõ ˜?Ñ+Ô+×1Ò1Ñ3Ô3ˆ
Ø"#¥^Ð!4ˆ
Ôå‘f”fˆØ ˆÔå$,Ô$5×$9Ò$9Ñ$;Ô$;ˆÔ!à×Ò�~Ñ.Ô.ð 	5ð 	5Ý ¨Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ð4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	×ÒÕ1°;Ô3FÀ}Ô3UÑVÔVÐVÐVÐVs   Â)CÃCÃCc              ƒ   ó   K  — t          t          t          t          z  ¬¦  «        }|                      t          j        | j        ¦  «        ¦  «        }t          ¦   «         }t          |d|¬¦  «        ƒ d {V —† |  	                    ||¦  «         d S rº  )
rØ   r9  rC  r|   rL   r½  r¾  r:  r	   rm   r¿  s       r   Útest_load_config_helperz,TestKubeConfigLoader.test_load_config_helperY  s¬   è è € Ý¥9Ý$7Õ:JÑ$JðLñ Lô Lˆà×,Ò,­T¬^¸DÔ<QÑ-RÔ-RÑSÔSˆÝ‘”ˆÝ kØ"0Ø/5ð7ñ 7ô 7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r!   N);r[   r\   r]   r9  r‡  rˆ  ÚTEST_CERTIFICATE_AUTH_BASE64r�  r¡  r|   ÚTEST_USERNAMEÚTEST_PASSWORDÚTEST_OIDC_LOGINÚTEST_OIDC_EXPIRED_LOGINÚTEST_OIDC_CAr…  r†  ÚTEST_CLIENT_CERT_BASE64ÚTEST_CLIENT_KEY_BASE64r:  r?  rD  rI  rQ  rV  r^  ra  re  r   rp  rr  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ð  rò  r2   r!   r   rô   rô   N  s;  € € € € € à$ð "à˜yððð ð 'à(Ø*ðð ðð ð à(Ø!ðð ðð ð &à(Ø)ðð ðð ð à(Ø"ðð ðð ð 'à(Ø*ðð ðð ð 8à(Ø;ðð ðð ð $à(Ø'ðð ðð ð à$Ø!ðð ðð ð .à4Ø!ðð ðð ð +à1Ø!ðð ðð ð 0à.Ø*ðð ðð ð &à,Ø)ðð ðð ð )à/Ø,ðð ðð ð ,à(Ø/ðð ðð ð )à(Ø,ðð ðð ð 5à$Ø8ðð ðð ð *à0Ø!ðð ðð ðo~
ðB "à˜iððð ð &à+Ø-Bðð ðð ð )à+Ø-8ðð ðð ð à+à4Ø05ð	ð ðð ð .à+Ø04ðð ðð ð +à+Ø05ðð ðð ð *à+à4Ø05Ø';ðð ð	ð 	ð (à'Ø!/ðð ðð ðm=
ð@ 'à-Ø -Ø -ðð ðð ð ð !&à*Ð,<ð#ð&ð &ð .Ø -Ø -ð
ð 
ðð ð &ð !&à,<Ø&<ð#ð #ð&ð &ð .Ø -Ø -ðð ðð ð  à#Ø &à&¨ð#ð&ð &ðð
ð 
ð 'à#Ø &à);Ø-:Ø(?Ø>JØ.RØ-Oð#ð #ð
&ð 
&ððð ð" 8à#Ø &à);Ø-:Ø(?Ø.RØ-Oð#ð #ð	&ð 	&ððð ð  $à -Ø -ðð ðð ð &à-Ø*:Ø"1ðð ðð ð )à!-Ø*7Ø".ðð ðð ð à-Ø/FØ'=ðð ðð ð )àØ&LØ#:Ø @Ð @Ð @ðð ðð	ð 	ð 5àØ&LØ#EØ "ðð ðð	ð 	ðsC
ðCð CÐðJ
+ð +ð +ð+ð +ð +ðOð Oð Oð
+ð 
+ð 
+ð	'ð 	'ð 	'ð'ð 'ð 'ð 'ð 'ð 'ð"8ð 8ð 8ð €UÐLÑMÔMð8ð 8ñ NÔMð8ð €UÐLÑMÔMð8ð 8ñ NÔMð8ð+ð +ð +ð"7ð 7ð 7ð €UÐ?Ñ@Ô@ð+ð +ñ AÔ@ð+ð €UÐ?Ñ@Ô@ð+ð +ñ AÔ@ð+ð"+ð +ð +ð9ð 9ð 9ðð ð ð+ð +ð +ð+ð +ð +ð+ð +ð +ð+ð +ð +ð 
+ð 
+ð 
+ð5ð 5ð 5ð1ð 1ð 1ð1ð 1ð 1ð$ð $ð $ð6+ð +ð +ð+ð +ð +ð7ð 7ð 7ð,,ð ,ð ,ðFð Fð FðEð Eð EðFð Fð Fð+ð +ð +ð+ð +ð +ð'ð 'ð 'ð$Wð Wð Wð*+ð +ð +ð +ð +r!   rô   c                   ó4  — e Zd Zddddidœgddeidœgg dœdd	d	d	d
œdœdddd
œdœgd	eedœdœgd	eeedœdœgdœddddd
œdœd	ddd
œdœgg ddddde	e
dddœdœidœdeeedœdœgdœgZdddeidœgiddddd
œdœgdœddeeedœdœgigZd„ Zd„ Zd „ Zd!„ Zd"„ Zd#S )$ÚTestKubeConfigMergerrõ   rö   r÷   rø   r  r  r-  r#   r  rú   rù   )r  r  r)  r  rÿ   z"skipped-part2-defined-this-contextÚskippedr  rþ   r  r  zhttps://example.org/identityr  r  r  r  r0  )r.  r/  r1  c                 ó¬   — g }|D ]<}|                      |                      t          j        |¦  «        ¦  «        ¦  «         Œ=t	          j        |¦  «        S r   )rE   rL   r½  r¾  r   r³  )r:   ÚpartsÚfilesÚparts       r   Ú_create_multi_configz)TestKubeConfigMerger._create_multi_configñ  sV   € ØˆØð 	Gð 	GˆDØ�LŠL˜×/Ò/µ´¸tÑ0DÔ0DÑEÔEÑFÔFÐFÐFÝ,Ô1°%Ñ8Ô8Ð8r!   c                 óþ   — |                       | j        ¦  «        }ddiddœdddœddœdddœddœdddœddœg}t          |¬	¦  «        \  }}|                      ||¦  «         |                      ||d
         ¦  «         d S )Nrö   r÷   rõ   ©rW   rK   r  rú   rù   rÿ   rÊ  r¬   )r  ÚTEST_KUBE_CONFIG_SET1r   rm   )r:   Úkubeconfigsr¦  r/  r7  s        r   rÎ  z3TestKubeConfigMerger.test_list_kube_config_contexts÷  sÉ   € Ø×/Ò/°Ô0JÑKÔKˆà" IÐ.¸	ÐBÐBØ$)°5Ð9Ð9À5ÐIÐIØ$-°~ÐFÐFØ#ð%ð %à$-°~ÐFÐFÐP^Ð_Ð_ðaÐõ $=Ø#ð$%ñ $%ô $%Ñ ˆ�.ð 	×Ò˜Ð#4Ñ5Ô5Ð5Ø×Ò˜Ð):¸1Ô)=Ñ>Ô>Ð>Ð>Ð>r!   c              ƒ   ó  K  — |                       | j        ¦  «        }t          |d¬¦  «        ƒ d {V —†}|                      t          |j        j        ¦  «         |                      t          t          z  |j        j	        d         ¦  «         d S rÐ  )
r  r  r   rm   r9  rÒ  r4  rC  r|   rÞ   )r:   r  rÔ  s      r   rÕ  z0TestKubeConfigMerger.test_new_client_from_config  s­   è è € Ø×/Ò/°Ô0JÑKÔKˆÝ-Ø#¨^ð=ñ =ô =ð =ð =ð =ð =ð =ð =ˆà×Ò� FÔ$8Ô$=Ñ>Ô>Ð>Ø×ÒÕ,Õ/?Ñ?ØÔ-Ô5°mÔDñ	Fô 	Fð 	Fð 	Fð 	Fr!   c              ƒ   ó¶  K  — |                       | j        ¦  «        }t          |¬¦  «        ƒ d {V —†}dddœddœg}t          |¬¦  «        \  }}|                      ||¦  «         |                      ||d         ¦  «         |                      t
          |j        j        ¦  «         |                      t          t          z  |j        j
        d         ¦  «         d S )NrÊ  r÷   rù   rú   r  r   rÝ   )r  ÚTEST_KUBE_CONFIG_SET2r   r   rm   r9  rÒ  r4  rC  r|   rÞ   )r:   r  rÔ  r¦  r/  r7  s         r   Ú)test_merge_with_context_in_different_filez>TestKubeConfigMerger.test_merge_with_context_in_different_file  s  è è € Ø×/Ò/°Ô0JÑKÔKˆÝ-¸+ÐFÑFÔFÐFÐFÐFÐFÐFÐFˆð %.°~ÐFÐFØ#ð%ð %ð
Ðõ $=Ø#ð$%ñ $%ô $%Ñ ˆ�.à×Ò˜Ð#4Ñ5Ô5Ð5Ø×Ò˜Ð):¸1Ô)=Ñ>Ô>Ð>Ø×Ò� FÔ$8Ô$=Ñ>Ô>Ð>Ø×ÒÕ,Õ/?Ñ?ØÔ-Ô5°mÔDñ	Fô 	Fð 	Fð 	Fð 	Fr!   c                 óÄ  — |                       | j        ¦  «        }t          |¦  «        }|j        d                              d¦  «        d         }|d         d         }d|j        d<   |                     ¦   «          t          |¦  «        }|j        d                              d¦  «        d         }|d         d         }|                      |j        d         d¦  «         d S )Nr1  rÿ   rû   r  r  ztoken-changedr  )r  r  r   r  r»   r§   Úsave_changesrm   )r:   r  Úkconfrû   Úproviders        r   Útest_save_changesz&TestKubeConfigMerger.test_save_changes  sÕ   € Ø×/Ò/°Ô0JÑKÔKˆõ ! Ñ-Ô-ˆØŒ|˜GÔ$×2Ò2°>ÑBÔBÀ6ÔJˆØ˜Ô(¨Ô2ˆØ%4ˆŒ�zÑ"Ø×ÒÑÔÐõ ! Ñ-Ô-ˆØŒ|˜GÔ$×2Ò2°>ÑBÔBÀ6ÔJˆØ˜Ô(¨Ô2ˆð 	×Ò˜œ¨
Ô3°_ÑEÔEÐEÐEÐEr!   N)r[   r\   r]   r9  r‡  ró  r|   rù  rú  r÷  rø  rô  rõ  r  r	  r  rÎ  rÕ  r
  r  r2   r!   r   rü  rü  d  s°  € € € € € à$ð "à˜yððð ð
ð "à˜iððð ð
ð ð%ð ð( ð à$Ø!ðð ðð ð 'à(Ø*ðð ðð ð
ð$ à+à4ðð ðð ð	
ð à-Ø/FØ'=ðð ðð ð	
ð9&ð &ðN *ð 'à(Ø*ðð ðð ð àCØ%ðð ðð ð
ð 
ð 'à#Ø &à);Ø-:Ø(?Ø>JØ.Là Bð#ð #ð&ð &ððð ð$ 'à-Ø -Ø -ðð ðð ð%
ð)/ð /ðshÐðX 	à!à˜iððð ð
ð	ð *ð 'à(Ø*ðð ðð ð
ðð ð 	à&à-Ø -Ø -ðð ðð ð	
ðð)ÐðB9ð 9ð 9ð?ð ?ð ?ðFð Fð FðFð Fð Fð Fð Fð Fð Fð Fr!   rü  )Gr   r\  r=   r´  rC   Útypesr   Úunittestr   Úunittest.mockr   r   r½  Úsixr   r#   r	   Úconfig_exceptionr
   Úkube_configr   r   r   r   r   r   r   r   r   r   r   rC  rt   r    r&   r*   rk   r{   ÚTEST_FILENAMErl   r|   r‹   r[  r9  rô  rõ  r‹  r‡  rˆ  ró  r†  rú  r…  rù  r�  r¡  rd  ÚTEST_OIDC_INFOÚTEST_OIDC_BASErö  ÚTEST_OIDC_EXPÚTEST_OIDC_EXP_BASEr÷  rø  r4   r6   r_   r�   rØ   rô   rü  r2   r!   r   ú<module>r     s   ðð €€€Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø !Ð !Ð !Ð !Ð !Ð !Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à €€€Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð "Ð à4Ð ð?ð ?ð ?ðAð Að Aðð ð ð €Ø€Ø€à€	Ø�7˜9Ñ%Ô%Ð à'Ð Ø"˜7Ð#4Ñ5Ô5Ð à€	Ø€Ø€à'Ð à#€Ø#Ð Ø&˜wÐ'<Ñ=Ô=Ð Ø€Ø ˜ Ñ1Ô1Ð Ø Ð Ø!˜'Ð"2Ñ3Ô3Ð Ø&Ð Ø0€à#€Ø'€Ø!Ð! /Ñ2Ô2°SÑ8Ð;KÐ;KÈNÑ;[Ô;[Ñ[€Ø  3Ñ&Ð)@Ñ@€Ø Ñ/€Ø9€Ø%Ð% oÑ6Ô6¸Ñ<Ð?OÐ?OÐP]Ñ?^Ô?^Ñ^Ð Ø,¨sÑ2Ð5LÑLÐ ØˆwÐ,Ñ-Ô-€ðð ð ð<ð <ð <ð <ð <Ð*ñ <ô <ð <ð8WHð WHð WHð WHð WH�\ñ WHô WHð WHðtE\ð E\ð E\ð E\ð E\�\ñ E\ô E\ð E\ðP/$ð /$ð /$ð /$ð /$ñ /$ô /$ð /$ðdS+ð S+ð S+ð S+ð S+˜<ñ S+ô S+ð S+ðlJFð JFð JFð JFð JF˜<ñ JFô JFð JFð JFð JFr!   