
    =KiN                         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
Jr  SSKJr  S r " S	 S
\R                  5      r " S S\R                  5      rg)    N)base)
api_client   )DynamicClient)ResourceInstanceResourceField)ResourceNotFoundErrorc                  H    [        [        R                  " 5       5      n U SS  $ )Ni)struuiduuid4)ids    `/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/kubernetes/dynamic/test_client.py
short_uuidr      s    	TZZ\	Bcd8O    c                   Z    \ rS rSr\S 5       rS rS rS rS r	S r
S rS	 rS
 rS rSrg)TestDynamicClient    c                 8    [         R                  " 5       U l        g N)r   get_e2e_configurationconfig)clss    r   
setUpClassTestDynamicClient.setUpClass"   s    //1
r   c           	         [        [        R                  " U R                  S95      nU R	                  [
        5         UR                  R                  SSS9nS S S 5        UR                  R                  SSS9nSnSSSU0S	SS
SSS.SSS0 0S.S.nUR                  U5      nU R                  XFR                  R                  5        U R                  UR                  5        UR                  US9nU R                  XFR                  R                  5        U R                  UR                  5         UR                  R                  SSS9nUR                  R                  SSS9nUR                  5       nU R                  UR                   / 5        S[#        5       -   nSSSU00 S.nUR                  US9nU R                  UR                  R                  U5        UR                  US9nU R                  UR                  R                  U5        SUS   S'   UR%                  USS9nU R                  UR&                  R(                  S5        UR                  US9nU R                  UR&                  R(                  S5        UR                  5       nU R                  [+        UR                   5      S5        UR-                  US9nUR                  5       nU R                  [+        UR                   5      S5        UR-                  US9n[        R                  " S5        UR                  R/                  5         U R	                  [
        5         UR                  R                  SSS9nS S S 5        g ! , (       d  f       GN&= f! [
         a    [        R                  " S5         GN_f = f! , (       d  f       g = f)Nconfigurationapps.example.com/v1ClusterChangeMeapi_versionkindapiextensions.k8s.io/v1beta1CustomResourceDefinitionz!clusterchangemes.apps.example.comnameapps.example.comClusterChangeMeListclusterchangemesclusterchangemer#   listKindpluralsingularClusterv1statusgroupnamesscopeversionsubresources
apiVersionr#   metadataspecr&      custom-resource)body   r;   sizeapplication/merge-patch+json)r?   content_typer   r   r   r   	ApiClientr   assertRaisesr	   	resourcesgetcreateassertEqualr:   r&   
assertTruer1   timesleepitemsr   patchr;   rA   lendeleteinvalidate_cache	selfclientchangeme_apicrd_apir&   crd_manifestrespchangeme_namechangeme_manifests	            r   test_cluster_custom_resources/TestDynamicClient.test_cluster_custom_resources&   s   z33$++NO45!++//18I 0 KL 6 ""&&6+ ' - 38. ,- 50 1	 #b!
* ~~l+}}112${{  
 	}}112$	!++//18I 0 KL
 ''++-4E , G!R()JL8/% 
 ""(9":++];]3++];,-&!&)!!"7 " 
 	+]3+!TZZ!,"" # 
 !TZZ!,~~  
 	

1))+45!++//18I 0 KL 65y 65V % 	JJqM	b 65s)   M73N	 N07
N	 N-,N-0
N>c           	      f   [        [        R                  " U R                  S95      nU R	                  [
        5         UR                  R                  SSS9nS S S 5        UR                  R                  SSS9nSnSSSU0S	SS
SSS.SSS0 0S.S.nUR                  USS9nU R                  XFR                  R                  5        U R                  UR                  5        UR                  USS9nU R                  XFR                  R                  5        U R                  UR                  5         UR                  R                  SSS9nUR                  SS9nU R                  UR                   / 5        S[#        5       -   nSSSU00 S.nUR                  USSS9nU R                  UR                  R                  U5        UR                  USSS9nU R                  UR                  R                  U5        SUS   S'   UR%                  USSSS9nU R                  UR&                  R(                  S5        UR                  USSS9nU R                  UR&                  R(                  S5        UR                  SSS 9nU R                  [+        UR                   5      S!5        UR                  SS9nU R                  [+        UR                   5      S!5        UR-                  USSS9nUR                  SSS 9nU R                  [+        UR                   5      S"5        UR                  SS9nU R                  [+        UR                   5      S"5        UR-                  USS9n[        R                  " S5        UR                  R/                  5         U R	                  [
        5         UR                  R                  SSS9nS S S 5        g ! , (       d  f       GN~= f! [
         a4    [        R                  " S5        UR                  R                  SSS9n GNf = f! , (       d  f       g = f)#Nr   r   ChangeMer!   r$   r%   changemes.apps.example.comr&   r'   ChangeMeList	changemeschangemer+   
Namespacedr0   r1   r2   r8   T)	async_req)r&   re   r=   r>   default)r?   	namespacere   )r&   rg   re   r@   r;   rA   rB   )r?   rg   rC   re   )rg   re   r   r   rD   )	rT   rU   rV   rW   r&   rX   
async_resprZ   r[   s	            r   &test_async_namespaced_custom_resources8TestDynamicClient.test_async_namespaced_custom_resources   sK   z33$++NO45!++//1
 0 DL 6 ""&&6+ ' - , 9. ,& .) *	 &b!
* ^^LD^A
22778
))*[[ ! 

 	22778
))*	D!++//1
 0 DL "%%%5
))2.)JL8/ 
 "((.?9`d(e
,,11=A!%%=IY]%^
,,11=A,-&!&)!''"7	 ( 

 	--q1!%%=IY]%^
--q1!%%	T%J
Z--.2!%%%5
Z--.2!(( ) 

 "%%	T%J
Z--.2!%%%5
Z--.2^^ $ 


 	

1))+45!++//1
 0 DL 65Y 65\ % 	DJJqM!++//1
 0 DL	D| 65s)   O3O! +P"
O!:PP"
P0c           	      \   [        [        R                  " U R                  S95      nU R	                  [
        5         UR                  R                  SSS9nS S S 5        UR                  R                  SSS9nSnSSSU0S	SS
SSS.SSS0 0S.S.nUR                  U5      nU R                  XFR                  R                  5        U R                  UR                  5        UR                  US9nU R                  XFR                  R                  5        U R                  UR                  5         UR                  R                  SSS9nUR                  R                  SSS9nUR                  5       nU R                  UR                   / 5        S[#        5       -   nSSSU00 S.nUR                  USS9nU R                  UR                  R                  U5        UR                  USS9nU R                  UR                  R                  U5        SUS   S'   UR%                  USSS9nU R                  UR&                  R(                  S5        UR                  USS9nU R                  UR&                  R(                  S5        UR                  SS9nU R                  [+        UR                   5      S5        UR                  5       nU R                  [+        UR                   5      S5        UR-                  USS9nUR                  SS9nU R                  [+        UR                   5      S 5        UR                  5       nU R                  [+        UR                   5      S 5        UR-                  US9n[        R                  " S5        UR                  R/                  5         U R	                  [
        5         UR                  R                  SSS9nS S S 5        g ! , (       d  f       GN= f! [
         a    [        R                  " S5         GNf = f! , (       d  f       g = f)!Nr   r   r_   r!   r$   r%   r`   r&   r'   ra   rb   rc   r+   rd   r0   r1   r2   r8   r<   r=   r>   rf   r?   rg   r&   rg   r@   r;   rA   rB   )r?   rg   rC   )rg   r   r   rD   rS   s	            r    test_namespaced_custom_resources2TestDynamicClient.test_namespaced_custom_resources   s   z33$++NO45!++//1
 0 DL 6 ""&&6+ ' - ,8. ,& .) *	 &b!
* ~~l+}}112${{  
 	}}112$	!++//1
 0 DL
 ''++-J , @!R()JL8/ 
 ""(9Y"O++];]iH++];,-&!&)!!"7 " 

 	+]iH+)4TZZ!,!TZZ!,"" # 

 )4TZZ!,!TZZ!,~~  
 	

1))+45!++//1
 0 DL 65I 65V % 	JJqM	r 65s)   O$3O6  P$
O36 PP
P+c                    [        [        R                  " U R                  S95      nUR                  R                  SSS9nS[        5       -   nSSSU0USS.SS	S
S	S./SU0S.S.nUR                  USS9nU R                  X5R                  R                  5        U R                  UR                  5        UR                  USS9nU R                  X5R                  R                  5        U R                  UR                  5        SSS
SS./US   S'   UR                  UUSS9nU R                  S[        UR                  R                   5      5        U R                  UR                  5        UR#                  U0 SS9ng )Nr   r0   Servicer!   	frontend-r&   )labelsr&   resourceversionportP   TCP)r&   ru   protocol
targetPort)portsselectorr8   rf   rl   rm   newi  r;   rz   )r?   r&   rg   r=   r&   r?   rg   )r   r   rE   r   rG   rH   r   rI   rJ   r:   r&   rK   r1   rO   rP   r;   rz   rQ   )rT   rU   apir&   service_manifestrY   s         r   test_service_apis#TestDynamicClient.test_service_apisg  s   z33$++NO""t)"DZ\)*.$-4:D>15<@)B 9?8:<A>@0B /C 39$	%A	B zz!  
 	}}112$ww  
 	}}112$6;6::?<@.B -C ) yy!  

 	C		01$zzB  
r   c                 v   [        [        R                  " U R                  S95      nUR                  R                  SSS9nS[        5       -   nSSSU0US.SSU0S	SU00S
SSSSS./S./0S.S.S.nUR                  USS9nU R                  X5R                  R                  5        U R                  SUR                  R                  5        UR                  USS9nU R                  X5R                  R                  5        U R                  SUR                  R                  5        UR                  USSS9  g )Nr   r0   ReplicationControllerr!   rr   r&   rs   r&   r=   rs   
containersnginxrv   rw   containerPortrx   imager&   rz   )r:   r;   )replicasr{   templater8   rf   rl   rm   
Background)r&   rg   propagation_policy)r   r   rE   r   rG   rH   r   rI   rJ   r:   r&   r;   r   rQ   )rT   rU   r~   r&   rc_manifestrY   s         r    test_replication_controller_apis2TestDynamicClient.test_replication_controller_apis  sc   z33$++NO""#: # < Z\)+$*D>!%'!""($!FD>/3".&-%,9;49(; '<2= 1> "?"@AB zz	  3}}112DII../ww  ,}}112DII../

+ 	 	-r   c                    [        [        R                  " U R                  S95      nUR                  R                  SSS9nS[        5       -   nSSUSS0S.S	S
S.S.nUR                  USS9nU R                  X5R                  R                  5        UR                  USSS9nU R                  X5R                  R                  5        SnUR                  USSUS9 H  nUS-  nM
     U R                  US:  SS9  SUS   S'   UR                  USUS9nUR                  U0 SS9nUR                  SSSS9nU R                  / UR                  5        g )Nr   r0   	ConfigMapr!   ztest-configmap-ze2e-testtrue)r&   rs   z"{"command":"/usr/bin/mysqld_safe"}z![mysqld]
bind-address = 10.0.0.3
)config.jsonzfrontend.cnf)r#   r9   r:   datarf   rl   ze2e-test=true)r&   rg   label_selectorr   
   )timeoutrg   r&   r   zno events received for watch)msgz{}r   r   )r&   rg   r?   r}   T)rg   prettyr   )r   r   rE   r   rG   rH   r   rI   rJ   r:   r&   watchrK   rO   rQ   rN   )rT   rU   r~   r&   test_configmaprY   count_s           r   test_configmap_apis%TestDynamicClient.test_configmap_apis  s   z33$++NO""t+"F :</  H E
 zz9  
 	}}112ww?  L}}112c2NAQJE O	'EF04v}-yy  A zzB)  5 ww*  , 	TZZ(r   c                    [        [        R                  " U R                  S95      nUR                  R                  SSS9nUR                  5       R                   H`  nUR                  UR                  R                  S9nU R                  [        [        UR                  R                  5      5      S:  5        Mb     g )Nr   r0   Noder!   r<   r   )r   r   rE   r   rG   rH   rN   r:   r&   rK   rP   dictrs   )rT   rU   r~   itemnodes        r   test_node_apis TestDynamicClient.test_node_apis  s    z33$++NO""t&"AGGIOOD77 2 273DOOCT]]%9%9 :;a?@ $r   c                    [        [        R                  " U R                  S95      nUR                  R                  SSS9nSSS00nUR
                  " S0 UD6nU R                  SUR                  5        U R                  S	UR                  5        SS
S00nUR
                  " S0 UD6nU R                  SUR                  5        U R                  S	UR                  5        g )Nr   r0   r   r!   header_paramsAcceptz@application/json;as=PartialObjectMetadataList;v=v1;g=meta.k8s.ioPartialObjectMetadataListzmeta.k8s.io/v1aCcePt )	r   r   rE   r   rG   rH   rJ   r#   r9   )rT   rU   r~   paramsrY   s        r   &test_node_apis_partial_object_metadata8TestDynamicClient.test_node_apis_partial_object_metadata  s    z33$++NO""t&"A \^_ ww  4dii@)4??; \^_ ww  4dii@)4??;r   c           	      X   [        [        R                  " U R                  S95      nUR                  R                  SSS9nS[        5       -   nSSSU0US.SS	S	S
SS./S./0S.nUR                  SUSSS9nU R                  SUR                  R                  S   R                  5        g )Nr   r0   Podr!   zpod-r&   r   r   r   rv   rw   r   r   r8   rf   zkubernetes-unittestsAll)rg   r?   field_managerdry_runr   )r   r   rE   r   rG   rH   r   server_side_applyrJ   r:   managedFieldsmanager)rT   rU   r~   r&   pod_manifestrY   s         r   test_server_side_apply_api,TestDynamicClient.test_server_side_apply_api  s    z33$++NO""5 # * 
$"(.~$(*%%,$+8:8='? &@)A (B C	D $$l0% % A 	/1L1LQ1O1W1WXr   r   N)__name__
__module____qualname____firstlineno__classmethodr   r\   ri   rn   r   r   r   r   r   r   __static_attributes__r   r   r   r   r       sO    2 2aKFqDfiDV-
^"-H-)^A<$Yr   r   c                   6    \ rS rSr\S 5       rS rS rS rSr	g)TestDynamicClientSerializationi  c                     [         R                  " 5       n[        [        R                  " US95      U l        SSSS0SSSS	./0S
.U l        g )Nr   r0   r   r&   zfoo-podr   mainbusybox)r&   r   r8   )r   r   r   r   rE   rU   r   )r   r   s     r   r   )TestDynamicClientSerialization.setUpClass  sO    ++-":#7#7f#MN
+!Vi$H#IJ	
r   c                     U R                  U R                  R                  U R                  5      U R                  5        g r   )rJ   rU   serialize_bodyr   )rT   s    r   test_dict_type-TestDynamicClientSerialization.test_dict_type)  s-    33D4E4EFHYHYZr   c                     [        U R                  U R                  5      nU R                  U R                  R	                  U5      U R                  5        g r   )r   rU   r   rJ   r   )rT   insts     r   test_resource_instance_type:TestDynamicClientSerialization.test_resource_instance_type,  s=    T->->?33D94;L;LMr   c                     SSS.n[        US9nU R                  US   US   5        U R                  US   US   5        U R                  U R                  R                  U5      U5        g)z`ResourceField` is a special type which overwrites `__getattr__` method to return `None`
when a non-existent attribute was accessed. which means it can pass any `hasattr(...)` tests.
barT)foorT   )r   r   rT   N)r   rJ   rU   r   )rT   r   ress      r   test_resource_field2TestDynamicClientSerialization.test_resource_field0  sl    
 
 6*UVE]3VfVn533C8&Ar   r   N)
r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     s&    
 
[NBr   r   )rL   unittestr   kubernetes.e2e_testr   kubernetes.clientr    r   resourcer   r   
exceptionsr	   r   TestCaser   r   r   r   r   <module>r      sO       $ (  5 -
yY)) yYxBX%6%6 Br   