Ë
    eQêjÎ  ã                   ó¤   — 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 ddlm	Z	  G d„ dej                  «      Zed	k(  r ej                  «        yy)
é    N)Úmocké   )ÚConfigException)ÚExecProvider)Ú
ConfigNodec                   óÈ  — e Zd Zd„ Zd„ Z ej                  d«      d„ «       Z ej                  d«      d„ «       Z ej                  d«      d„ «       Z	 ej                  d«      d„ «       Z
 ej                  d«      d„ «       Z ej                  d«      d	„ «       Z ej                  d«      d
„ «       Z ej                  d«      d„ «       Z ej                  d«      d„ «       Zy)ÚExecProviderTestc           	      ót   — t        ddg d¢dd dœ«      | _        t        ddg d¢ddd dœ«      | _        d| _        y )	NÚtestzaws-iam-authenticator)Útokenz-iÚdummyz$client.authentication.k8s.io/v1beta1)ÚcommandÚargsÚ
apiVersionÚenvT)r   r   r   ÚprovideClusterInfor   zÌ
        {
            "apiVersion": "client.authentication.k8s.io/v1beta1",
            "kind": "ExecCredential",
            "status": {
                "token": "dummy"
            }
        }
        )r   Úinput_okÚinput_with_clusterÚ	output_ok)Úselfs    úi/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/kubernetes/config/exec_provider_test.pyÚsetUpzExecProviderTest.setUp   sO   € Ü" 6Ø.Ú,Ø@Øñ	,
ó ˆŒô #-¨VØ.Ú,Ø@Ø"&Øñ6
ó #ˆÔðˆ�ó    c                 ó  — t        di «      t        dddi«      t        dddi«      g}|D ]U  }| j                  t        «      5 }t        |d «       d d d «       | j	                  dj
                  j                  d   «       ŒW y # 1 sw Y   Œ5xY w)	NÚtest1Útest2r   Ú Útest3r   z$exec: malformed request. missing keyr   )r   ÚassertRaisesr   r   ÚassertInÚ	exceptionr   )r   Úexec_configsÚexec_configÚcontexts       r   Útest_missing_input_keysz(ExecProviderTest.test_missing_input_keys4   s”   € Ü" 7¨BÓ/Ü" 7¨Y¸¨OÓ<Ü" 7¨\¸2Ð,>Ó?ðAˆð (ò 	5ˆKØ×"Ñ"¤?Ó3ð 0°wÜ˜[¨$Ô/÷0à�M‰MÐ@Ø!×+Ñ+×0Ñ0°Ñ3õ5ñ	5÷0ð 0ús   ÁBÂB	zsubprocess.Popenc                 ó€  — |j                   }d|j                  _         d|j                  _         | j                  t        «      5 }t        | j                  d «      }|j                  «        d d d «       | j                  d|j                  j                   z  j                  j                  d   «       y # 1 sw Y   ŒJxY w)Nr   ©r   r   zexec: process returned %dr   ©Úreturn_valueÚwaitÚcommunicater   r   r   r   Úrunr    r!   r   ©r   r   Úinstancer$   Úeps        r   Útest_error_code_returnedz)ExecProviderTest.test_error_code_returned>   s�   € à×$Ñ$ˆØ%&ˆ�‰Ô"Ø,4ˆ×ÑÔ)Ø×ÑœÓ/ð 	°7Ü˜dŸm™m¨TÓ2ˆBØ�F‰FŒH÷	ð 	�‰Ð1Ø—m‘m×0Ñ0ñ1Ø29×2CÑ2C×2HÑ2HÈÑ2Kõ	M÷	ð 	ús   Á'B4Â4B=c                 óR  — |j                   }d|j                  _         d|j                  _         | j                  t        «      5 }t        | j                  d «      }|j                  «        d d d «       | j                  dj                  j                  d   «       y # 1 sw Y   Œ3xY w)Nr   r'   z%exec: failed to decode process outputr(   r-   s        r   Útest_nonjson_output_returnedz-ExecProviderTest.test_nonjson_output_returnedI   sŠ   € à×$Ñ$ˆØ%&ˆ�‰Ô"Ø,4ˆ×ÑÔ)Ø×ÑœÓ/ð 	°7Ü˜dŸm™m¨TÓ2ˆBØ�F‰FŒH÷	ð 	�‰Ð=Ø×'Ñ'×,Ñ,¨QÑ/õ	1÷	ð 	ús   Á'BÂB&c                 ól  — |j                   }d|j                  _         g d¢}|D ]‚  }|df|j                  _         | j                  t        «      5 }t        | j                  d «      }|j                  «        d d d «       | j                  dj                  j                  d   «       Œ„ y # 1 sw Y   Œ5xY w)Nr   )z¦
            {
                "kind": "ExecCredential",
                "status": {
                    "token": "dummy"
                }
            }
            zÂ
            {
                "apiVersion": "client.authentication.k8s.io/v1beta1",
                "status": {
                    "token": "dummy"
                }
            }
            z˜
            {
                "apiVersion": "client.authentication.k8s.io/v1beta1",
                "kind": "ExecCredential"
            }
            r   z%exec: malformed response. missing keyr(   )r   r   r.   ÚoutputsÚoutputr$   r/   s          r   Útest_missing_output_keysz)ExecProviderTest.test_missing_output_keysT   s¦   € à×$Ñ$ˆØ%&ˆ�‰Ô"ò
ˆð, ò 	5ˆFØ17¸°ˆH× Ñ Ô-Ø×"Ñ"¤?Ó3ð °wÜ! $§-¡-°Ó6�Ø—‘”÷ð �M‰MÐAØ!×+Ñ+×0Ñ0°Ñ3õ5ñ	5÷ð ús   Á'B*Â*B3	c                 ój  — |j                   }d|j                  _         d}d|z  }|df|j                  _         | j                  t        «      5 }t        | j                  d «      }|j                  «        d d d «       | j                  d|z  j                  j                  d   «       y # 1 sw Y   Œ6xY w)Nr   zclient.authentication.k8s.io/v1zª
        {
            "apiVersion": "%s",
            "kind": "ExecCredential",
            "status": {
                "token": "dummy"
            }
        }
        r   z*exec: plugin api version %s does not matchr(   )r   r   r.   Úwrong_api_versionr5   r$   r/   s          r   Útest_mismatched_api_versionz,ExecProviderTest.test_mismatched_api_versionv   s¯   € à×$Ñ$ˆØ%&ˆ�‰Ô"Ø=Ððð  ñ ˆð .4°R¨Lˆ×ÑÔ)Ø×ÑœÓ/ð 	°7Ü˜dŸm™m¨TÓ2ˆBØ�F‰FŒH÷	ð 	�‰Ø8Øñà×Ñ×"Ñ" 1Ñ%õ	'÷	ð 	ús   Á'B)Â)B2c                 ó(  — |j                   }d|j                  _         | j                  df|j                  _         t	        | j
                  d «      }|j                  «       }| j                  t        |t        «      «       | j                  d|v «       y )Nr   r   r   )
r)   r*   r   r+   r   r   r,   Ú
assertTrueÚ
isinstanceÚdict)r   r   r.   r/   Úresults        r   Ú
test_ok_01zExecProviderTest.test_ok_01�   so   € à×$Ñ$ˆØ%&ˆ�‰Ô"Ø-1¯^©^¸RÐ,@ˆ×ÑÔ)Ü˜$Ÿ-™-¨Ó.ˆØ—‘“ˆØ�‰œ
 6¬4Ó0Ô1Ø�‰˜ 6Ð)Õ*r   c                 ó  — |j                   }d|j                  _         | j                  df|j                  _         t	        | j
                  d«      }|j                  «        | j                  |j                  d   d   d«       y )Nr   r   z/some/directoryr   Úcwd)	r)   r*   r   r+   r   r   r,   ÚassertEqualÚ	call_args)r   r   r.   r/   s       r   Útest_run_in_dirz ExecProviderTest.test_run_in_dir—   si   € à×$Ñ$ˆØ%&ˆ�‰Ô"Ø-1¯^©^¸RÐ,@ˆ×ÑÔ)Ü˜$Ÿ-™-Ð):Ó;ˆØ
�‰ŒØ×Ñ˜Ÿ™¨Ñ*¨5Ñ1Ð3DÕEr   c                 ó˜  — |j                   }d|j                  _         | j                  df|j                  _         t        j
                  j                  dd ¬«      }|5  t        | j                  d «      }|j                  «       }| j                  t        |t        «      «       | j                  d|v «       d d d «       y # 1 sw Y   y xY w)Nr   r   z
sys.stdout)Únewr   )r)   r*   r   r+   Úunittestr   Úpatchr   r   r,   r;   r<   r=   )r   r   r.   Úmock_stdoutr/   r>   s         r   Útest_ok_no_console_attachedz,ExecProviderTest.test_ok_no_console_attached    s¥   € à×$Ñ$ˆØ%&ˆ�‰Ô"Ø-1¯^©^¸RÐ,@ˆ×ÑÔ)Ü—m‘m×)Ñ)Ø˜dð *ó $ˆàñ 	/Ü˜dŸm™m¨TÓ2ˆBØ—V‘V“XˆFØ�O‰OœJ v¬tÓ4Ô5Ø�O‰O˜G vÐ-Ô.÷		/÷ 	/ñ 	/ús   ÁAC Ã C	c           	      óÖ  — |j                   }d|j                  _         | j                  df|j                  _         t	        | j
                  d t        dddi«      «      }|j                  «       }| j                  t        |t        «      «       | j                  d|v «       t        j                  |j                  j                  d   d   «      }| j                  |d	   d   d   d«       y )
Nr   r   ÚclusterÚserverúname.company.comr   r   ÚKUBERNETES_EXEC_INFOÚspec©r)   r*   r   r+   r   r   r   r,   r;   r<   r=   ÚjsonÚloadsrC   ÚkwargsrB   ©r   r   r.   r/   r>   Úobjs         r   Útest_with_cluster_infoz'ExecProviderTest.test_with_cluster_info­   sÃ   € à×$Ñ$ˆØ%&ˆ�‰Ô"Ø-1¯^©^¸RÐ,@ˆ×ÑÔ)Ü˜$×1Ñ1°4¼ÀIÐPXÐZlÐOmÓ9nÓoˆØ—‘“ˆØ�‰œ
 6¬4Ó0Ô1Ø�‰˜ 6Ð)Ô*ä�j‰j˜Ÿ™×.Ñ.¨uÑ5Ð6LÑMÓNˆØ×Ñ˜˜V™ YÑ/°Ñ9Ð;MÕNr   c                 ó^  — |j                   }d|j                  _         | j                  df|j                  _         t	        | j
                  d t        ddddddœd	œgd
œ«      «      }|j                  «       }| j                  t        |t        «      «       | j                  d|v «       t        j                  |j                  j                  d   d   «      }| j                  |d   d   d   d«       | j                  |d   d   d   d   d«       | j                  |d   d   d   d   d«       y )Nr   r   rL   rN   z!client.authentication.k8s.io/execÚ	myprojectÚ	mycluster)Ú	namespaceÚname)r\   Ú	extension)rM   Ú
extensionsr   r   rO   rP   rM   Úconfigr[   r\   rQ   rU   s         r   Ú*test_with_cluster_info_from_exec_extensionz;ExecProviderTest.test_with_cluster_info_from_exec_extensionº   s-  € à×$Ñ$ˆØ%&ˆ�‰Ô"Ø-1¯^©^¸RÐ,@ˆ×ÑÔ)ÜØ×#Ñ#ØÜØà0ð %Hà-8Ø(3ñ*ñð#ñóó
ˆð& —‘“ˆØ�‰œ
 6¬4Ó0Ô1Ø�‰˜ 6Ð)Ô*ä�j‰j˜Ÿ™×.Ñ.¨uÑ5Ð6LÑMÓNˆØ×Ñ˜˜V™ YÑ/°Ñ9Ð;MÔNØ×Ñ˜˜V™ YÑ/°Ñ9¸+ÑFÈÔTØ×Ñ˜˜V™ YÑ/°Ñ9¸&ÑAÀ;ÕOr   N)Ú__name__Ú
__module__Ú__qualname__r   r%   r   rH   r0   r2   r6   r9   r?   rD   rJ   rW   r`   © r   r   r	   r	      s5  „ òò05ð €T‡Z�ZÐ"Ó#ñMó $ðMð €T‡Z�ZÐ"Ó#ñ1ó $ð1ð €T‡Z�ZÐ"Ó#ñ5ó $ð5ðB €T‡Z�ZÐ"Ó#ñ'ó $ð'ð, €T‡Z�ZÐ"Ó#ñ+ó $ð+ð €T‡Z�ZÐ"Ó#ñFó $ðFð €T‡Z�ZÐ"Ó#ñ
/ó $ð
/ð €T‡Z�ZÐ"Ó#ñ
Oó $ð
Oð €T‡Z�ZÐ"Ó#ñPó $ñPr   r	   Ú__main__)rR   ÚosrG   r   Úconfig_exceptionr   Úexec_providerr   Úkube_configr   ÚTestCaser	   ra   Úmainrd   r   r   ú<module>rl      sM   ðó Û 	Û å å -Ý 'Ý #ôP�x×(Ñ(ô PðB ˆzÒØ€H‡M�M…Oð r   