
    =Ki                         S SK r S SKrS SKrS SKJr  SSKJr  SSKJr  SSKJ	r	   " S S\R                  5      r\S	:X  a  \R                  " 5         gg)
    N)mock   )ConfigException)ExecProvider)
ConfigNodec                      \ rS rSrS rS r\R                  " S5      S 5       r\R                  " S5      S 5       r	\R                  " S5      S 5       r
\R                  " S5      S 5       r\R                  " S5      S	 5       r\R                  " S5      S
 5       r\R                  " S5      S 5       r\R                  " S5      S 5       r\R                  " S5      S 5       rSrg)ExecProviderTest   c           	      t    [        SS/ SQSS S.5      U l        [        SS/ SQSSS S.5      U l        SU l        g )	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    f/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/kubernetes/config/exec_provider_test.pysetUpExecProviderTest.setUp   sO    "6.,@	,
  #-V.,@"&6
 #    c                 ,   [        S0 5      [        SSS05      [        SSS05      /nU HV  nU R                  [        5       n[        US 5        S S S 5        U R	                  SWR
                  R                  S   5        MX     g ! , (       d  f       N<= f)	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_keys(ExecProviderTest.test_missing_input_keys4   s    "7B/"7YO<"7\2,>?A (K""?3w[$/ 4MM@!++0035 (33s   B
B	zsubprocess.Popenc                    UR                   nSUR                  l         SUR                  l         U R                  [        5       n[        U R                  S 5      nUR                  5         S S S 5        U R                  SUR                  R                   -  WR                  R                  S   5        g ! , (       d  f       NO= f)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_returned)ExecProviderTest.test_error_code_returned>   s    $$%&",4)/7dmmT2BFFH 0 	1mm001292C2C2H2H2K	M 0/s   'B44
Cc                 \   UR                   nSUR                  l         SUR                  l         U R                  [        5       n[        U R                  S 5      nUR                  5         S S S 5        U R                  SWR                  R                  S   5        g ! , (       d  f       N8= f)Nr   r*   z%exec: failed to decode process outputr+   r0   s        r   test_nonjson_output_returned-ExecProviderTest.test_nonjson_output_returnedI   s    $$%&",4)/7dmmT2BFFH 0 	='',,Q/	1 0/s   'B
B+c                 z   UR                   nSUR                  l         / SQnU H  nUS4UR                  l         U R                  [        5       n[        U R                  S 5      nUR                  5         S S S 5        U R                  SWR                  R                  S   5        M     g ! , (       d  f       N<= f)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   r1   outputsoutputr&   r2   s          r   test_missing_output_keys)ExecProviderTest.test_missing_output_keysT   s    $$%&"
, F17H  -""?3w!$--6 4 MMA!++0035 33s   'B,,
B:	c                 t   UR                   nSUR                  l         SnSU-  nUS4UR                  l         U R                  [        5       n[        U R                  S 5      nUR                  5         S S S 5        U R                  SU-  WR                  R                  S   5        g ! , (       d  f       N;= f)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   r1   wrong_api_versionr:   r&   r2   s          r   test_mismatched_api_version,ExecProviderTest.test_mismatched_api_versionv   s    $$%&"=    .4RL)/7dmmT2BFFH 0 	8""1%	' 0/s   'B))
B7c                 *   UR                   nSUR                  l         U R                  S4UR                  l         [	        U R
                  S 5      nUR                  5       nU R                  [        U[        5      5        U R                  SU;   5        g )Nr   r   r   )
r,   r-   r   r.   r   r   r/   
assertTrue
isinstancedict)r   r   r1   r2   results        r   
test_ok_01ExecProviderTest.test_ok_01   so    $$%&"-1^^R,@)$--.
64016)*r   c                    UR                   nSUR                  l         U R                  S4UR                  l         [	        U R
                  S5      nUR                  5         U R                  UR                  S   S   S5        g )Nr   r   z/some/directoryr   cwd)	r,   r-   r   r.   r   r   r/   assertEqual	call_args)r   r   r1   r2   s       r   test_run_in_dir ExecProviderTest.test_run_in_dir   si    $$%&"-1^^R,@)$--):;
*513DEr   c                    UR                   nSUR                  l         U R                  S4UR                  l         [        R
                  R                  SS S9nU   [        U R                  S 5      nUR                  5       nU R                  [        U[        5      5        U R                  SU;   5        S S S 5        g ! , (       d  f       g = f)Nr   r   z
sys.stdout)newr   )r,   r-   r   r.   unittestr   patchr   r   r/   rB   rC   rD   )r   r   r1   mock_stdoutr2   rE   s         r   test_ok_no_console_attached,ExecProviderTest.test_ok_no_console_attached   s    $$%&"-1^^R,@)mm))d * $dmmT2BVVXFOOJvt45OOGv-.	 [[s   AB>>
Cc           	         UR                   nSUR                  l         U R                  S4UR                  l         [	        U R
                  S [        SSS05      5      nUR                  5       nU R                  [        U[        5      5        U R                  SU;   5        [        R                  " UR                  R                  S   S   5      nU R                  US	   S   S   S5        g )
Nr   r   clusterservername.company.comr   r   KUBERNETES_EXEC_INFOspecr,   r-   r   r.   r   r   r   r/   rB   rC   rD   jsonloadsrK   kwargsrJ   r   r   r1   r2   rE   objs         r   test_with_cluster_info'ExecProviderTest.test_with_cluster_info   s    $$%&"-1^^R,@)$114IPXZlOm9no
64016)*jj..u56LMNVY/9;MNr   c                 b   UR                   nSUR                  l         U R                  S4UR                  l         [	        U R
                  S [        SSSSSS.S	./S
.5      5      nUR                  5       nU R                  [        U[        5      5        U R                  SU;   5        [        R                  " UR                  R                  S   S   5      nU R                  US   S   S   S5        U R                  US   S   S   S   S5        U R                  US   S   S   S   S5        g )Nr   r   rV   rX   z!client.authentication.k8s.io/exec	myproject	mycluster)	namespacename)rg   	extension)rW   
extensionsr   r   rY   rZ   rW   configrf   rg   r[   r_   s         r   *test_with_cluster_info_from_exec_extension;ExecProviderTest.test_with_cluster_info_from_exec_extension   s-   $$%&"-1^^R,@)##0 %H-8(3*#
& 
64016)*jj..u56LMNVY/9;MNVY/9+FTVY/9&A;Or   )r   r   r   N)__name__
__module____qualname____firstlineno__r   r'   r   rQ   r3   r6   r;   r?   rF   rL   rS   ra   rk   __static_attributes__ r   r   r	   r	      s#   05 
ZZ"#M $M 
ZZ"#1 $1 
ZZ"#5 $5B 
ZZ"#' $', 
ZZ"#+ $+ 
ZZ"#F $F 
ZZ"#
/ $
/ 
ZZ"#
O $
O 
ZZ"#P $Pr   r	   __main__)r\   osrP   r   config_exceptionr   exec_providerr   kube_configr   TestCaser	   rm   mainrr   r   r   <module>rz      sK     	   - ' #Px(( PB zMMO r   