
                             S r SSKJr  SSKJr  SSKJr  SSKJr	  SSK
Jr  SSKJr  SSKJr  SS	KJr  SS
KJr   " S S\R&                  \R(                  \R*                  5      r " S S\5      r " S S\5      rg)z!Base class for MCP command tests.    )encoding)
exceptions)mock)apis)base)
properties)cli_test_base)parameterized)sdk_test_basec                   T    \ rS rSrSrS rSS jrSS jr SS jrSS jr	 SS	 jr
S
rg) McpTestBaseForEnableDisableTests   z4Base class for MCP enable and disable command tests.c           	         SU l         [        R                  R                  R                   R	                  U R                   5        [
        R                  " SS5      U l        [        R                  " [
        R                  " SS5      [
        R                  " SSSS9S9U l        U R                  R                  5         U R                  U R                  R                  5        g )Nztest-gcp-project-12345serviceusagev2betaT)no_http)real_client)projectr   VALUEScoreSet	core_apisGetMessagesModulesu_messagesr   ClientGetClientClassGetClientInstancemocked_su_clientMock
addCleanupUnmockselfs    :lib/googlecloudsdk/api_lib/api_registry/mcp/mcptestbase.pySetUp&McpTestBaseForEnableDisableTests.SetUp$   s    +DL""&&t||4 22>8LD KK  ://Hd45D 	 OOD))001    c                 6    [         R                  " SU0US5      $ )Nstatus )apitools_exceptions	HttpError)r#   r)   messages      r$   _MakeHttpError/McpTestBaseForEnableDisableTests._MakeHttpError/   s    (((F);WbIIr'   Nc                     SU S3nU R                   R                  US9nU R                  R                  R                  R                  UU(       d  UOS US9  g )N	projects/z/mcpPolicies/defaultnamerequestresponse	exception)r   !ServiceusageMcpPoliciesGetRequestr   mcpPoliciesGetExpect)r#   r   
policy_oldr7   expected_nameexpected_requests         r$   _expectGetMcpPolicyCall8McpTestBaseForEnableDisableTests._expectGetMcpPolicyCall2   se    y(<=M''II J  	%%))00 #,$ 1 r'   c                     U R                   R                  USSSS9nU R                   R                  USS9nU R                  R                  R
                  R                  UU(       d  UOS US9  g )NFz3projects/test-gcp-project-12345/mcpPolicies/default)	mcpPolicyforcer3   validateOnly)r3   doner4   )r   #ServiceusageMcpPoliciesPatchRequest	Operationr   r9   Patchr;   )r#   
policy_newoperation_namer7   r>   mock_operations         r$   _expectUpdateMcpPolicyCall;McpTestBaseForEnableDisableTests._expectUpdateMcpPolicyCall=   s    ''KKB	 L  %%// 0 N 	%%++22 '0d 3 r'   c                 n   U R                   R                  US9n[        R                  " U R                   R                  R
                  [        R                  " U5      5      nS nU(       d  U R                   R	                  USUS9nU R                  R                  R                  R                  UUUS9  g )Nr2   T)r3   rE   r6   r4   )r    ServiceusageOperationsGetRequestr   PyValueToMessagerG   ResponseValueMessageToPyValuer   
operationsr:   r;   )r#   rJ   rI   r7   r>   response_valueresponse_ops          r$   _expectGetOperationCall8McpTestBaseForEnableDisableTests._expectGetOperationCallO   s    ''HH I  ..""00!!*-N K$$..! / k
 	$$((//  0 r'   c                    SU SU 3nU R                   R                  UU R                   R                  R                  R                  S9nU R                  R
                  R                  R                  UU(       d  UOS US9  g )Nr1   z
/services/)r3   viewr4   )r   ServiceusageServicesGetRequestViewValueValuesEnumSERVICE_STATE_VIEW_FULLr   servicesr:   r;   )r#   r   service_nameservice_stater7   r=   r>   s          r$   _expectGetServiceCall6McpTestBaseForEnableDisableTests._expectGetServiceCalld   s    y
<.AM''FF<<PPhh G  	""&&-- &/T . r'   )r   r   r   )errorN)__name__
__module____qualname____firstlineno____doc__r%   r.   r?   rL   rV   r`   __static_attributes__ r'   r$   r   r      s0    
 =	2J	 37$, '+r'   r   c                       \ rS rSrSrS rSrg)McpAlphaForEnableDisableTestsr   zCBase class for MCP enable and disable command tests in alpha track.c                 B    [         R                  R                  U l        g rc   )calliope_baseReleaseTrackALPHAtrackr"   s    r$   PreSetUp&McpAlphaForEnableDisableTests.PreSetUpu   s    ++11DJr'   rr   Nrd   re   rf   rg   rh   rs   ri   rj   r'   r$   rl   rl   r   s
    K2r'   rl   c                       \ rS rSrSrS rSrg)McpBetaForEnableDisableTestsy   zBBase class for MCP enable and disable command tests in beta track.c                 B    [         R                  R                  U l        g rc   )ro   rp   BETArr   r"   s    r$   rs   %McpBetaForEnableDisableTests.PreSetUp|   s    ++00DJr'   ru   Nrv   rj   r'   r$   rx   rx   y   s
    J1r'   rx   N)rh   apitools.base.pyr   r   r+   apitools.base.py.testingr   googlecloudsdk.api_lib.utilr   r   googlecloudsdk.callioper   ro   googlecloudsdk.corer   	tests.libr	   r
   r   WithFakeAuthTestCaseCliTestBaser   rl   rx   rj   r'   r$   <module>r      sg     ( % > ) 9 9 * # # #RRj2$D 21#C 1r'   