
                             d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 dd	l
mZ dd
lmZ ddlmZ ddlmZ ddlmZmZ  e eddd             ddlmZ  G d dej,                        Zy)zTests for gcs_json_api.py.    )absolute_import)print_function)division)unicode_literals)	cloud_api)gcs_json_api)context_config)testcase)base)SetBotoConfigForTest)unittest)add_moveMovedModulemockzunittest.mock)r   c                       e Zd ZdZej
                  j                  ed      d        Zej
                  j                  ed      d        Z	d Z
d Zy)TestGcsJsonApiz-Test logic for interacting with GCS JSON API.get_context_configc                    t        j                         }d|_        ||_        t	        ddg      5  t        j                  d d d d       }| j                  |j                  t
        j                         d d d        y # 1 sw Y   y xY w)NTCredentialsgs_json_hostNr   gs_hostN)
r   Mockuse_client_certificatereturn_valuer   r   
GcsJsonApiassertEqual	host_base	MTLS_HOST)selfmock_get_context_configmock_context_configclients       0platform/gsutil/gslib/tests/test_gcs_json_api.py0testSetsHostBaseToMtlsIfClientCertificateEnabledz?TestGcsJsonApi.testSetsHostBaseToMtlsIfClientCertificateEnabled'   s|     ))+15.+>(	D?A 
B&&tT4>f
v'')?)?@
B 
B 
Bs   AA<<Bc                 "   t        j                         }d|_        ||_        t	        dg      5  | j                  t        j                        5  t        j                  d d d d        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)NTr   r   host)
r   r   r   r   r   assertRaisesr   ArgumentExceptionr   r   )r!   r"   r#   s      r%   +testRaisesErrorIfConflictingJsonAndMtlsHostz:TestGcsJsonApi.testRaisesErrorIfConflictingJsonAndMtlsHost3   su     ))+15.+>(	FG	HY889dD$7 : 
I	H99 
I	Hs#    BA9(B9B	>BBc                     t        dg      5  t        j                  d d d d       }| j                  |j                  d       d d d        y # 1 sw Y   y xY w)Nr(   r)   )r   r   r   r   r   r!   r$   s     r%   testSetsCustomJsonHostz%TestGcsJsonApi.testSetsCustomJsonHost>   sG    	FG	H&&tT4>f
v''0 
I	H	Hs   5AAc                     t        ddg      5  t        j                  d d d d       }| j                  |j                  t        j
                         d d d        y # 1 sw Y   y xY w)Nr   r   )r   r   r   r   r   DEFAULT_HOSTr.   s     r%   testSetsDefaultHostz"TestGcsJsonApi.testSetsDefaultHostC   s\    	D?A 
B&&tT4>f
v'')B)BC
B 
B 
Bs   AAA#N)__name__
__module____qualname____doc__r   patchobjectr	   r&   r,   r/   r2        r%   r   r   $   s\    5::^%9:	A ;	A ::^%9:8 ;81
Dr:   r   N)r6   
__future__r   r   r   r   gslibr   r   r	   gslib.testsr
   gslib.tests.testcaser   gslib.tests.utilr   r   sixr   r   	six.movesr   GsUtilUnitTestCaser   r9   r:   r%   <module>rC      sV    ! & %  '       % 1 % % VV_	5 6 #DX00 #Dr:   