§
    Štj¾  ã                   óv   — d dl Z d dlZd dlmZ d dlmZmZmZ ddlm	Z	 ddl
mZ ddlmZ  G d„ d	e¦  «        ZdS )
é    N)ÚIsolatedAsyncioTestCase)ÚANYÚ	AsyncMockÚpatché   )ÚConfigException)ÚExecProvider)Ú
ConfigNodec                   óJ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ ZdS )ÚExecProviderTestc                 óx  — t          ddg d¢dd dœ¦  «        | _        d| _        t          d¦  «        }|                     ¦   «         | _        | j        j        | _        t          | j        ¬¦  «        | j        j	        _
        t          d	¬¦  «        | j        j        _
        t          d
¬¦  «        | j        _        d S )NÚtestúaws-iam-authenticator©Útokenú-iÚdummyú$client.authentication.k8s.io/v1beta1)ÚcommandÚargsÚ
apiVersionÚenvzÌ
        {
            "apiVersion": "client.authentication.k8s.io/v1beta1",
            "kind": "ExecCredential",
            "status": {
                "token": "dummy"
            }
        }
        zBkubernetes.aio.config.exec_provider.asyncio.create_subprocess_exec)Úreturn_valueÚ r   )r
   Úinput_okÚ	output_okr   ÚstartÚ	exec_mockr   Úprocess_mockr   ÚstdoutÚreadÚstderrÚwait)ÚselfÚprocess_patchs     úf/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/kubernetes/aio/config/exec_provider_test.pyÚsetUpzExecProviderTest.setUp   sº   € Ý" 6Ø.Ø,Ð,Ð,Ø@Øð	,
ð ,
ñ ô ˆŒðˆŒõ ÐbÑcÔcˆØ&×,Ò,Ñ.Ô.ˆŒØ œNÔ7ˆÔÝ(1¸t¼~Ð(NÑ(NÔ(NˆÔÔ Ô%Ý(1¸rÐ(BÑ(BÔ(BˆÔÔ Ô%Ý!*¸Ð!:Ñ!:Ô!:ˆÔÔÐÐó    c                 ó,   — t          j        ¦   «          d S )N)r   Ústopall)r$   s    r&   ÚtearDownzExecProviderTest.tearDown3   s   € ÝŒ‰Œˆˆˆr(   c                 óð   — i ddiddig}|D ]i}|                       t          ¦  «        5 }t          |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      d|j        j        d         ¦  «         Œjd S )Nr   r   r   z$exec: malformed request. missing keyr   )ÚassertRaisesr   r	   ÚassertInÚ	exceptionr   )r$   Úexec_configsÚexec_configÚcontexts       r&   Útest_missing_input_keysz(ExecProviderTest.test_missing_input_keys6   sÐ   € Ø˜Y¨˜O¨l¸BÐ-?Ð@ˆØ'ð 	5ð 	5ˆKØ×"Ò"¥?Ñ3Ô3ð *°wÝ˜[Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *à�MŠMÐ@Ø!Ô+Ô0°Ô3ñ5ô 5ð 5ð 5ð	5ð 	5s   ¨AÁA	ÁA	c              ƒ   ó  K  — d| j         j        j        _        d| j         j        _        |                      t          d¦  «        5  t          | j        ¦  «        }| 	                    ¦   «         ƒ d {V —† d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   zexec: process returned 1)
r   r    r!   r   r#   ÚassertRaisesRegexr   r	   r   Úrun©r$   Úeps     r&   Útest_error_code_returnedz)ExecProviderTest.test_error_code_returned>   sÈ   è è € Ø57ˆÔÔ Ô%Ô2Ø./ˆÔÔÔ+Ø×#Ò#¥OÐ5OÑPÔPð 	ð 	Ý˜dœmÑ,Ô,ˆBØ—&’&‘(”(ˆNˆNˆNˆNˆNˆNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Á/BÂBÂBc              ƒ   óú   K  — d| j         j        j        _        |                      t
          d¦  «        5  t          | j        ¦  «        }|                     ¦   «         ƒ d {V —† d d d ¦  «         d S # 1 swxY w Y   d S )Nr   z%exec: failed to decode process output©	r   r    r!   r   r5   r   r	   r   r6   r7   s     r&   Útest_nonjson_output_returnedz-ExecProviderTest.test_nonjson_output_returnedE   sº   è è € Ø57ˆÔÔ Ô%Ô2Ø×#Ò#¥OÐ5\Ñ]Ô]ð 	ð 	Ý˜dœmÑ,Ô,ˆBØ—&’&‘(”(ˆNˆNˆNˆNˆNˆNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ´/A0Á0A4Á7A4c              ƒ   ó
  K  — g d¢}|D ]y}|| j         j        j        _        |                      t
          d¦  «        5  t          | j        ¦  «        }|                     ¦   «         ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   Œzd S )N)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"
            }
            z%exec: malformed response. missing keyr;   )r$   ÚoutputsÚoutputr8   s       r&   Útest_missing_output_keysz)ExecProviderTest.test_missing_output_keysK   sØ   è è € ð
ð 
ð 
ˆð, ð 	ð 	ˆFØ9?ˆDÔÔ$Ô)Ô6Ø×'Ò'­Ð9`ÑaÔað ð Ý! $¤-Ñ0Ô0�Ø—f’f‘h”h�������ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð øð	ð 	s   ¼/A7Á7A;	Á>A;	c              ƒ   ó.  K  — d}d|z  }|| j         j        j        _        |                      t
          d                     |¦  «        ¦  «        5  t          | j        ¦  «        }| 	                    ¦   «         ƒ d {V —† d d d ¦  «         d S # 1 swxY w Y   d S )Nzclient.authentication.k8s.io/v1zª
        {
            "apiVersion": "%s",
            "kind": "ExecCredential",
            "status": {
                "token": "dummy"
            }
        }
        z*exec: plugin api version {} does not match)
r   r    r!   r   r5   r   Úformatr	   r   r6   )r$   Úwrong_api_versionr?   r8   s       r&   Útest_mismatched_api_versionz,ExecProviderTest.test_mismatched_api_versionh   së   è è € Ø=Ððð  ñ ˆð 6<ˆÔÔ Ô%Ô2Ø×#Ò#ÝØ<×CÒCÐDUÑVÔVñXô Xð 	ð 	õ ˜dœmÑ,Ô,ˆBØ—&’&‘(”(ˆNˆNˆNˆNˆNˆNˆNð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Á/B
Â
BÂBc           
   ƒ   óú  K  — t          | j        ¦  «        }|                     ¦   «         ƒ d {V —†}|                      t	          |t
          ¦  «        ¦  «         |                      d|v ¦  «         | j                             ddddt          dd d¬¦  «         | j	        j
        j                             ¦   «          | j	        j        j                             ¦   «          | j	        j                             ¦   «          d S )Nr   r   r   r   éÿÿÿÿ©r   r"   Ústdinr    )r	   r   r6   Ú
assertTrueÚ
isinstanceÚdictr   Úassert_called_once_withr   r   r    r!   Úassert_awaited_oncer"   r#   )r$   r8   Úresults      r&   Ú
test_ok_01zExecProviderTest.test_ok_01z   sì   è è € Ý˜$œ-Ñ(Ô(ˆØ—v’v‘x”x������ˆØ�Š�
 6­4Ñ0Ô0Ñ1Ô1Ð1Ø�Š˜ 6Ð)Ñ*Ô*Ð*ØŒ×.Ò.Ð/FÈÐQUÐW^Ý36¸rÈÐVXð 	/ñ 	Zô 	Zð 	ZàÔÔ Ô%×9Ò9Ñ;Ô;Ð;ØÔÔ Ô%×9Ò9Ñ;Ô;Ð;ØÔÔ×2Ò2Ñ4Ô4Ð4Ð4Ð4r(   c              ƒ   ó   K  — t          dddg d¢dœ¦  «        }t          |¦  «        }|                     ¦   «         ƒ d {V —†}|                      t	          |t
          ¦  «        ¦  «         |                      d|v ¦  «         | j                             ddddd	d
t          dd d¬¦
  «
         | j	        j
        j                             ¦   «          | j	        j        j                             ¦   «          | j	        j                             ¦   «          d S )Nr   r   r   )r   r   r   ú--mockÚ90)r   r   r   r   r   r   rQ   rR   rF   rG   )r
   r	   r6   rI   rJ   rK   r   rL   r   r   r    r!   rM   r"   r#   )r$   r   r8   rN   s       r&   Útest_ok_with_argsz"ExecProviderTest.test_ok_with_args…   s  è è € Ý˜fØ.Ø@Ø<Ð<Ð<ð'
ð '
ñ ô ˆõ
 ˜(Ñ#Ô#ˆØ—v’v‘x”x������ˆØ�Š�
 6­4Ñ0Ô0Ñ1Ô1Ð1Ø�Š˜ 6Ð)Ñ*Ô*Ð*ØŒ×.Ò.Ð/FÈÐQUÐW^Ð`hÐjnÝ36¸rÈÐVXð 	/ñ 	Zô 	Zð 	ZàÔÔ Ô%×9Ò9Ñ;Ô;Ð;ØÔÔ Ô%×9Ò9Ñ;Ô;Ð;ØÔÔ×2Ò2Ñ4Ô4Ð4Ð4Ð4r(   c           
   ƒ   ó:  K  — t          dddg d¢dddœgdœ¦  «        }t          |¦  «        }|                     ¦   «         ƒ d {V —†}|                      t	          |t
          ¦  «        ¦  «         |                      d	|v ¦  «         | j        j        d
         d         d         }|                      |d         d¦  «         |                      t          j
        |d         ¦  «        dddt          j                             ¦   «         idœ¦  «         | j                             dd	ddt          dd d¬¦  «         | j        j        j                             ¦   «          | j        j        j                             ¦   «          | j        j                             ¦   «          d S )Nr   r   r   r   ÚEXEC_PROVIDER_ENV_NAMEÚEXEC_PROVIDER_ENV_VALUE)ÚnameÚvalue)r   r   r   r   r   r   r   r   ÚKUBERNETES_EXEC_INFOÚExecCredentialÚinteractive)r   ÚkindÚspecr   r   rF   rG   )r
   r	   r6   rI   rJ   rK   r   Úawait_args_listÚassertEqualÚjsonÚloadsÚsysr    ÚisattyrL   r   r   r!   rM   r"   r#   )r$   r   r8   rN   Úenv_useds        r&   Útest_ok_with_envz!ExecProviderTest.test_ok_with_env•   s¼  è è € å˜fØ.Ø@Ø,Ð,Ð,Ø5Ø7ð9ð 9ð :ð	';ð ';ñ <ô <ˆõ ˜(Ñ#Ô#ˆØ—v’v‘x”x������ˆØ�Š�
 6­4Ñ0Ô0Ñ1Ô1Ð1Ø�Š˜ 6Ð)Ñ*Ô*Ð*à”>Ô1°!Ô4°QÔ7¸Ô>ˆØ×Ò˜Ð":Ô;Ð=VÑWÔWÐWØ×Ò�œ HÐ-CÔ$DÑEÔEØHnØP`ØQ^Õ`cÔ`j×`qÒ`qÑ`sÔ`sÐPtðHvð Hvñ 	wô 	wð 	wð 	Œ×.Ò.Ð/FÈÐQUÐW^Ý36¸rÈÐVXð 	/ñ 	Zô 	Zð 	ZàÔÔ Ô%×9Ò9Ñ;Ô;Ð;ØÔÔ Ô%×9Ò9Ñ;Ô;Ð;ØÔÔ×2Ò2Ñ4Ô4Ð4Ð4Ð4r(   N)Ú__name__Ú
__module__Ú__qualname__r'   r+   r3   r9   r<   r@   rD   rO   rS   re   © r(   r&   r   r      sª   € € € € € ð;ð ;ð ;ð0ð ð ð5ð 5ð 5ðð ð ðð ð ðð ð ð:ð ð ð$	5ð 	5ð 	5ð5ð 5ð 5ð 5ð 5ð 5ð 5ð 5r(   r   )r`   rb   Úunittestr   Úunittest.mockr   r   r   Úconfig_exceptionr   Úexec_providerr	   Úkube_configr
   r   ri   r(   r&   ú<module>ro      s¾   ðð €€€Ø 
€
€
€
Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /à -Ð -Ð -Ð -Ð -Ð -Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø #Ð #Ð #Ð #Ð #Ð #ðT5ð T5ð T5ð T5ð T5Ð.ñ T5ô T5ð T5ð T5ð T5r(   