
                            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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  SSKrSSKJs  Jr   SSKJr  Sr " S S\R0                  5      r " S S\R4                  5      rg! \ a    Sr N5f = f)/Integration tests for top-level gsutil command.    )absolute_import)division)print_function)unicode_literalsN)mock)
exceptions)CommandRunner)system_util)_fix_google_moduleTFc                   *    \ rS rSrSrS rS rS rSrg)
TestGsUtil'   r   c                 l    U R                  S/SS9nU R                  S[        R                  -  U5        g )Nz	--versionTreturn_stdoutgsutil version: %s
	RunGsUtilassertEqualgslibVERSIONselfstdouts     *platform/gsutil/gslib/tests/test_gsutil.pytest_long_version_arg TestGsUtil.test_long_version_arg*   s0    ^^[M^>F+emm;VD    c                 l    U R                  S/SS9nU R                  S[        R                  -  U5        g )NversionTr   r   r   r   s     r   test_version_commandTestGsUtil.test_version_command.   s0    ^^YKt^<F+emm;VDr   c                     U R                  SS/SS9nU R                  S[        R                  -  U5        U R                  SU5        U R                  SU5        U R                  SU5        U R                  S	U5        g )
Nr!   z-lTr   r   zboto versionchecksumzconfig pathzgsutil path)r   assertInr   r   r   s     r   test_version_longTestGsUtil.test_version_long2   si    ^^Y-T^BFMM(5==8&AMM.&)MM*f%MM-(MM-(r    N)	__name__
__module____qualname____firstlineno____doc__r   r"   r'   __static_attributes__r)   r   r   r   r   '   s    7EE)r   r   c                      \ rS rSrSr\R                  " \S5      \R                  R                  \SSS9S 5       5       r\R                  " \S5      \R                  R                  \SSS9S 5       5       r\R                  R                  \S	SS9\R                  R                  \R                   S
SS9S 5       5       r\R                  R                  \S	SS9\R                  R                  \R                   S
SS9S 5       5       rSrg)TestGsUtilUnit;   z(Unit tests for top-level gsutil command.zGThe gsutil.py file is not available for certain installations like pip.reloadT)autospecc                     [         R                  R                  SSS05         [        5         UR	                  S5        S S S 5        g ! , (       d  f       g = f)Nsys.modulesgoogle)r   patchdictr   assert_called_once_withr   mock_reloads     r   test_fix_google_module%TestGsUtilUnit.test_fix_google_module>   s;    
 
8(<	=))(3 
>	=	=s   A
Ac                     [         R                  R                  S0 SS9   [        5         U R	                  UR
                  5        S S S 5        g ! , (       d  f       g = f)Nr6   T)clear)r   r8   r9   r   assertFalsecalledr;   s     r   8test_fix_google_module_does_not_reload_if_module_missingGTestGsUtilUnit.test_fix_google_module_does_not_reload_if_module_missingG   s@     
$	7
{))* 
8	7	7s   &A
AInvokedViaCloudSdk_OutputAndExitc                 2   SUl         [        5       n[        R                  R	                  US5       n[
        R                  " S5      nXTl        [        R                  R                  USS9  UR                  SU5        S S S 5        g ! , (       d  f       g = f)NTRunNamedCommandfake error messagefakecommand_namez<Your credentials are invalid. Please run
$ gcloud auth loginreturn_valuer
   r   r8   objectgoogle_auth_exceptions
OAuthErrorside_effectr   __main__#_RunNamedCommandAndHandleExceptionsr:   r   mock_output_and_exitmock_invoke_via_cloud_sdkcommand_runnermock_run
fake_errors         r   $test_translates_oauth_error_cloudsdk3TestGsUtilUnit.test_translates_oauth_error_cloudsdkQ   s     .2*"_N			>+<	=)445IJj'nn88FL 9 N22
I
 
>	=	=   AB
Bc                 2   SUl         [        5       n[        R                  R	                  US5       n[
        R                  " S5      nXTl        [        R                  R                  USS9  UR                  SU5        S S S 5        g ! , (       d  f       g = f)NFrH   rI   rJ   rK   zYour credentials are invalid. For more help, see "gsutil help creds", or re-run the gsutil config command (see "gsutil help config").rM   rU   s         r   &test_translates_oauth_error_standalone5TestGsUtilUnit.test_translates_oauth_error_standalone`   s     .3*"_N			>+<	=)445IJj'nn88FL 9 N22#$.0 
>	=	=r]   r)   N)r*   r+   r,   r-   r.   unittest
skipUnless$FIX_GOOGLE_MODULE_FUNCTION_AVAILABLEr   r8   rO   	importlibr=   rC   r   r   rS   r[   r_   r/   r)   r   r   r1   r1   ;   s1   0*OQ ::Y484 9Q4
 *OQ ::Y48+ 9Q+ ::["6F::U^^%5E F G ::["6F::U^^%5E0 F G0r   r1   )r.   
__future__r   r   r   r   rd   ra   r   google.authr	   rP   gslib.command_runnerr
   gslib.utilsr   r   gslib.tests.testcaseteststestcasegsutilr   rc   ImportErrorGsUtilIntegrationTestCaser   GsUtilUnitTestCaser1   r)   r   r   <module>rp      sz    6 &  % '    < . #  ' '/')-&
)33 )(30X00 301  /).&/s   	A< <BB