
    &                         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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j2                        Zy)zTests for boto_util.py.    )absolute_import)print_function)division)unicode_literalsN)	cloud_api)	boto_util)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	j                  dd      d        Zej
                  j                  e	j                  dd      d        Zej
                  j                  e	j                  dd      d	        Zej
                  j                  e	j                  dd      d
        Zej
                  j                  e	j                  dd      d        Zej
                  j                  e	j                  dd      d        Zd Zd Zd Zd Zd Zd Zy)TestBotoUtilz0Test utils that make use of the Boto dependency.get_context_configc                    t        j                         }d|_        d|_        d|_        ||_        t        j                  t        j                               }t        j                  |      }|j                  j                  dddd       y )NTpathpasswordreturn_value )keycertdomainr   )
r   Mockuse_client_certificateclient_cert_pathclient_cert_passwordr   r   
GetNewHttpadd_certificateassert_called_once_with)selfmock_get_context_configmock_context_configmock_http_class	mock_https        -platform/gsutil/gslib/tests/test_boto_util.py0testSetsHostBaseToMtlsIfClientCertificateEnabledz=TestBotoUtil.testSetsHostBaseToMtlsIfClientCertificateEnabled(   s}     ))+15.+1(/9,+>(iiTYY[9O$$_5I55	 6     get_auth_handlerNr   c                     t        g d      5  | j                  t        j                                d d d        y # 1 sw Y   y xY w)N)	Credentialsgs_access_key_idNr/   gs_secret_access_keyNr/   aws_access_key_idNr/   aws_secret_access_keyNr/   gs_oauth2_refresh_tokenNr/   gs_external_account_fileNr/   (gs_external_account_authorized_user_fileNr/   gs_service_client_idNr/   gs_service_key_fileN)r   assertFalser   HasConfiguredCredentialsr$   _s     r)   #testHasConfiguredCredentialsNoCredsz0TestBotoUtil.testHasConfiguredCredentialsNoCreds:   s8    	 
 

 y99;<

 

 

	   $;Ac                     t        g d      5  | j                  t        j                                d d d        y # 1 sw Y   y xY w)N)	r/   r0   ?????r/   r2   rI   r3   r5   r7   r9   r;   r=   r?   r   
assertTruer   rB   rC   s     r)   %testHasConfiguredCredentialsGoogCredsz2TestBotoUtil.testHasConfiguredCredentialsGoogCredsI   6    	 
 

 ooi88:;

 

 

rF   c                     t        g d      5  | j                  t        j                                d d d        y # 1 sw Y   y xY w)N)	r.   r1   )r/   r4   rI   )r/   r6   rI   r7   r9   r;   r=   r?   rK   rC   s     r)   %testHasConfiguredCredentialsAmznCredsz2TestBotoUtil.testHasConfiguredCredentialsAmznCredsX   rN   rF   c                     t        g d      5  | j                  t        j                                d d d        y # 1 sw Y   y xY w)N)	r.   r1   r3   r5   r/   r8   rI   r9   r;   r=   r?   rK   rC   s     r)   &testHasConfiguredCredentialsOauthCredsz3TestBotoUtil.testHasConfiguredCredentialsOauthCredsg   rN   rF   c                     t        g d      5  | j                  t        j                                d d d        y # 1 sw Y   y xY w)N)	r.   r1   r3   r5   r7   r/   r:   rI   r;   r=   r?   rK   rC   s     r)   )testHasConfiguredCredentialsExternalCredsz6TestBotoUtil.testHasConfiguredCredentialsExternalCredsv   rN   rF   c                     t        g d      5  | j                  t        j                                d d d        y # 1 sw Y   y xY w)N)	r.   r1   r3   r5   r7   r9   r/   r<   rI   r=   r?   rK   rC   s     r)   7testHasConfiguredCredentialsExternalAuthorizedUserCredszDTestBotoUtil.testHasConfiguredCredentialsExternalAuthorizedUserCreds   rN   rF   c                     t        g d      5  | j                  t        j                                d d d        y # 1 sw Y   y xY w)N)rH   rJ   r9   r;   r7   )r/   r>   rI   )r/   r@   rI   r   rA   r   UsingGsHmacr$   s    r)   -testUsingGsHmacWithHmacAndServiceAccountCredsz:TestBotoUtil.testUsingGsHmacWithHmacAndServiceAccountCreds   8    	  
 y,,./
 
 
rF   c                     t        g d      5  | j                  t        j                                d d d        y # 1 sw Y   y xY w)N)rH   rJ   r9   r;   rR   r=   r?   r[   r]   s    r)   ,testUsingGsHmacWithHmacAndOauth2RefreshTokenz9TestBotoUtil.testUsingGsHmacWithHmacAndOauth2RefreshToken   r_   rF   c                     t        g d      5  | j                  t        j                                d d d        y # 1 sw Y   y xY w)N)rH   r1   r9   r;   r7   r=   r?   r[   r]   s    r)   %testUsingGsHmacWithIncompleteHmacOnlyz2TestBotoUtil.testUsingGsHmacWithIncompleteHmacOnly   r_   rF   c                     t        g d      5  | j                  t        j                                d d d        y # 1 sw Y   y xY w)N)rH   rJ   rU   r;   r7   r=   r?   r   rL   r   r\   r]   s    r)   -testUsingGsHmacWithHmacAndExternalAccountFilez:TestBotoUtil.testUsingGsHmacWithHmacAndExternalAccountFile   6    	  
 ooi++-.
 
 
rF   c                     t        g d      5  | j                  t        j                                d d d        y # 1 sw Y   y xY w)N)rH   rJ   r9   rX   r7   r=   r?   re   r]   s    r)   ;testUsingGsHmacWithHmacAndExternalAccountAuthorizedUserFilezHTestBotoUtil.testUsingGsHmacWithHmacAndExternalAccountAuthorizedUserFile   rg   rF   c                     t        g d      5  | j                  t        j                                d d d        y # 1 sw Y   y xY w)N)rH   rJ   r9   r;   r7   r=   r?   re   r]   s    r)   testUsingGsHmacWithHmacOnlyz(TestBotoUtil.testUsingGsHmacWithHmacOnly   rg   rF   )__name__
__module____qualname____doc__r   patchobjectr	   r*   botoauthrE   rM   rP   rS   rV   rY   r^   ra   rc   rf   ri   rk    r+   r)   r   r   %   sg   8::^%9: ;" ::TYY 2F= G= ::TYY 2F< G< ::TYY 2F< G< ::TYY 2F< G< ::TYY 2F< G< ::TYY 2F< G<
0
0
0
/
/
/r+   r   )ro   
__future__r   r   r   r   	boto.authrr   gslibr   gslib.utilsr   r	   gslib.testsr
   gslib.tests.testcaser   gslib.tests.utilr   r   sixr   r   	six.movesr   GsUtilUnitTestCaser   rt   r+   r)   <module>r      sY     & %  '   !     % 1 % % VV_	5 6 u/8.. u/r+   