
    v                         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g)!Base class for MCP command tests.    )encoding)
exceptions)mock)apis)base)
properties)cli_test_base)parameterized)sdk_test_basec                   Z    \ rS 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)McpTestBase   r   c                 B    [         R                  R                  U l        g N)calliope_baseReleaseTrackALPHAtrackselfs    :lib/googlecloudsdk/api_lib/api_registry/mcp/mcptestbase.pyPreSetUpMcpTestBase.PreSetUp$   s    ++11DJ    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Unmockr   s    r   SetUpMcpTestBase.SetUp'   s    +DL""&&t||4 22>8LD KK  ://Hd45D 	 OOD))001r   c                 6    [         R                  " SU0US5      $ )Nstatus )apitools_exceptions	HttpError)r   r2   messages      r   _MakeHttpErrorMcpTestBase._MakeHttpError2   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_oldr@   expected_nameexpected_requests         r   _expectGetMcpPolicyCall#McpTestBase._expectGetMcpPolicyCall5   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forcer<   validateOnly)r<   doner=   )r'   #ServiceusageMcpPoliciesPatchRequest	Operationr+   rB   PatchrD   )r   
policy_newoperation_namer@   rG   mock_operations         r   _expectUpdateMcpPolicyCall&McpTestBase._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 )Nr;   T)r<   rN   r?   r=   )r'    ServiceusageOperationsGetRequestr   PyValueToMessagerP   ResponseValueMessageToPyValuer+   
operationsrC   rD   )r   rS   rR   r@   rG   response_valueresponse_ops          r   _expectGetOperationCall#McpTestBase._expectGetOperationCallR   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 )Nr:   z
/services/)r<   viewr=   )r'   ServiceusageServicesGetRequestViewValueValuesEnumSERVICE_STATE_VIEW_FULLr+   servicesrC   rD   )r   r!   service_nameservice_stater@   rF   rG   s          r   _expectGetServiceCall!McpTestBase._expectGetServiceCallg   s    y
<.AM''FF<<PPhh G  	""&&-- &/T . r   )r+   r!   r'   r   )errorr   )__name__
__module____qualname____firstlineno____doc__r   r/   r7   rH   rU   r_   ri   __static_attributes__ r   r   r   r      s5    
 *2	2J	 37$, '+r   r   N)rp   apitools.base.pyr   r   r4   apitools.base.py.testingr   googlecloudsdk.api_lib.utilr   r%   googlecloudsdk.callioper   r   googlecloudsdk.corer	   	tests.libr
   r   r   WithFakeAuthTestCaseCliTestBaser   rr   r   r   <module>r|      sL     ( % > ) 9 9 * # # #UUr   