
                            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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c mZ 	 ddlmZ dZ G d dej0                        Z G d dej4                        Zy# e$ r dZY 4w xY w)/Integration tests for top-level gsutil command.    )absolute_import)division)print_function)unicode_literalsN)mock)
exceptions)CommandRunner)system_util)_fix_google_moduleTFc                   "    e Zd ZdZd Zd Zd Zy)
TestGsUtilr   c                 r    | j                  dgd      }| j                  dt        j                  z  |       y )Nz	--versionTreturn_stdoutgsutil version: %s
	RunGsUtilassertEqualgslibVERSIONselfstdouts     *platform/gsutil/gslib/tests/test_gsutil.pytest_long_version_argz TestGsUtil.test_long_version_arg*   s0    ^^[M^>F+emm;VD    c                 r    | j                  dgd      }| j                  dt        j                  z  |       y )NversionTr   r   r   r   s     r   test_version_commandzTestGsUtil.test_version_command.   s0    ^^YKt^<F+emm;VDr   c                    | j                  ddgd      }| j                  dt        j                  z  |       | j                  d|       | j                  d|       | j                  d|       | j                  d	|       y )
Nr   z-lTr   r   zboto versionchecksumzconfig pathzgsutil path)r   assertInr   r   r   s     r   test_version_longzTestGsUtil.test_version_long2   si    ^^Y-T^BFMM(5==8&AMM.&)MM*f%MM-(MM-(r   N)__name__
__module____qualname____doc__r   r    r$    r   r   r   r   '   s    7EE)r   r   c                   4   e Zd ZdZ ej
                  ed      ej                  j                  e
dd      d               Z ej
                  ed      ej                  j                  e
dd      d               Zej                  j                  edd      ej                  j                  ej                  d	d      d
               Zej                  j                  edd      ej                  j                  ej                  d	d      d               Zy)TestGsUtilUnitz(Unit tests for top-level gsutil command.zGThe gsutil.py file is not available for certain installations like pip.reloadT)autospecc                     t         j                  j                  dddi      5  t                |j	                  d       d d d        y # 1 sw Y   y xY w)Nsys.modulesgoogle)r   patchdictr   assert_called_once_withr   mock_reloads     r   test_fix_google_modulez%TestGsUtilUnit.test_fix_google_module>   s;    
 
8(<	=))(3 
>	=	=s   AAc                     t         j                  j                  di d      5  t                | j	                  |j
                         d d d        y # 1 sw Y   y xY w)Nr/   T)clear)r   r1   r2   r   assertFalsecalledr4   s     r   8test_fix_google_module_does_not_reload_if_module_missingzGTestGsUtilUnit.test_fix_google_module_does_not_reload_if_module_missingG   s@     
$	7
{))* 
8	7	7s   &AAInvokedViaCloudSdk_OutputAndExitc                 .   d|_         t               }t        j                  j	                  |d      5 }t        j                  d      }||_        t        j                  j                  |d       |j                  d|       d d d        y # 1 sw Y   y xY w)NTRunNamedCommandfake error messagefakecommand_namez<Your credentials are invalid. Please run
$ gcloud auth loginreturn_valuer
   r   r1   objectgoogle_auth_exceptions
OAuthErrorside_effectr   __main__#_RunNamedCommandAndHandleExceptionsr3   r   mock_output_and_exitmock_invoke_via_cloud_sdkcommand_runnermock_run
fake_errors         r   $test_translates_oauth_error_cloudsdkz3TestGsUtilUnit.test_translates_oauth_error_cloudsdkQ   s     .2*"_N			>+<	=)445IJj'hnn88FL 9 N22
I
 
>	=	=   ABBc                 .   d|_         t               }t        j                  j	                  |d      5 }t        j                  d      }||_        t        j                  j                  |d       |j                  d|       d d d        y # 1 sw Y   y xY w)NFr?   r@   rA   rB   zYour credentials are invalid. For more help, see "gsutil help creds", or re-run the gsutil config command (see "gsutil help config").rD   rL   s         r   &test_translates_oauth_error_standalonez5TestGsUtilUnit.test_translates_oauth_error_standalone`   s     .3*"_N			>+<	=)445IJj'hnn88FL 9 N22#$.0 
>	=	=rS   N)r%   r&   r'   r(   unittest
skipUnless$FIX_GOOGLE_MODULE_FUNCTION_AVAILABLEr   r1   rF   	importlibr6   r;   r   r   rJ   rR   rU   r)   r   r   r+   r+   ;   s5   08*OQ ::Y484 9Q4
 8*OQ ::Y48+ 9Q+ ::["6F::U^^%5E F G ::["6F::U^^%5E0 F G0r   r+   )r(   
__future__r   r   r   r   rY   rV   r   google.authr	   rG   gslib.command_runnerr
   gslib.utilsr   r   gslib.tests.testcaseteststestcasegsutilr   rX   ImportErrorGsUtilIntegrationTestCaser   GsUtilUnitTestCaser+   r)   r   r   <module>re      sz    6 &  % '    < . #  ' '/')-&
)33 )(30X00 301  /).&/s   	A< <BB