
                             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Jr  SSKJr  SSKJr   " S S\R&                  5      rg)zTests for stet_util.py.    )absolute_import)print_function)division)unicode_literalsN)storage_url)testcase)util)unittest)execution_util)	stet_util)mockc            	       r   \ rS rSrSr\R                  R                  \S5      S 5       r	\R                  R                  \S5      S 5       r
\R                  R                  \S5      S 5       r\R                  R                  \S5      \R                  R                  \S5      S 5       5       r\R                  R                  \S	\R                  " S
S9S9S 5       r\R                  R                  \R$                  SSS9\R                  R                  \S\R                  " SS9S9S 5       5       rSrg
)TestStetUtil#   zTest STET utils.ExecuteExternalCommandc                    U R                  5       nSUl        [        R                  " 5       n[        R
                  " S5      n[        R
                  " S5      n[        R                  " SSSU4/5         [        R                  " XEU5      nS S S 5        U R                  W[        R
                  " S5      5        UR                  SS	S
R                  U5      SSS/5        UR                  R                  S5        g ! , (       d  f       Nv= f)Nstdoutstderrings://bucket/objGSUtilstet_binary_pathfake_binary_pathr   stet_config_pathin_.stet_tmpr   encrypt--config-file={}--blob-id=gs://bucket/objr   )CreateTempFilereturn_valuer   Mockr   StorageUrlFromStringr	   SetBotoConfigForTestr   encrypt_uploadassertEqualassert_called_once_withformatdebug)selfmock_execute_external_commandfake_config_pathmock_logger
source_urldestination_urlout_file_urls          -platform/gsutil/gslib/tests/test_stet_util.py1test_stet_upload_uses_binary_and_config_from_boto>TestStetUtil.test_stet_upload_uses_binary_and_config_from_boto&   s     **,1E!.))+K11$7J!667HIO		"	":	%'78$ 
 --j.9;l	
 	\ 55nEG!99!!"23#;  --h7#
 
s   4C<<
D
c                    U R                  5       nU R                  5       nU R                  USS9n[        R                  " S5      n[        R                  S==   [        R
                  R                  U-   -  ss'   SUl        [        R                  " 5       n[        R                  " S5      n[        R                  " S5      n[        R                  " SSS	U4/5         [        R                  " XxU5      n	S S S 5        U R!                  W	[        R                  " S
5      5        UR#                  USSR%                  U5      SSS
/5        UR&                  R#                  S5        U[        R                  S'   g ! , (       d  f       N= f)Nstet)tmpdir	file_namePATHr   r   r   r   r   Nr   r   r   r   r   r    r   )r!   CreateTempDirosgetenvenvironpathpathsepr"   r   r#   r   r$   r	   r%   r   r&   r'   r(   r)   r*   )
r+   r,   r-   temporary_path_directoryfake_stet_binary_pathprevious_pathr.   r/   r0   r1   s
             r2   Atest_stet_upload_runs_with_binary_from_path_with_correct_settingsNTestStetUtil.test_stet_upload_runs_with_binary_from_path_with_correct_settingsB   sc    **,#113 //7O:@ 0 BIIf%MJJv"''//,DDD1E!.))+K11$7J!667HIO		"	",	%'78$ 
 --j.9;l	
 	\ 55nEG!99!!"23#;  --h7&BJJv'
 
s    E;;
F	c           	         SUl         [        R                  " 5       n[        R                  " S5      n[        R                  " S5      n[
        R                  " SS/5         [        R                  R                  [        R                  S[        R                  " SS9S	9   [        R                  " X4U5      nS S S 5        S S S 5        U R                  W[        R                  " S
5      5        UR                  / SQ5        UR                  R                  S5        g ! , (       d  f       Nk= f! , (       d  f       Nt= f)Nr   r   r   r   )r   r   NexistsTr"   newr   )r   r   r    r   r   r   )r"   r   r#   r   r$   r	   r%   patchobjectr<   r?   r   r&   r'   r(   r*   )r+   r,   r.   r/   r0   r1   s         r2   /test_stet_upload_uses_no_config_if_not_provided<TestStetUtil.test_stet_upload_uses_no_config_if_not_providedf   s    2F!.))+K11$7J!667HIO		"	":,$ 
 ::RWW%!%!=  ? !//
0;=?	
 	\ 55nEG!99 ;  --h7? ?	
 
s%   !A D/!D9D/
D,	(D//
D=movec                    U R                  5       nSUl        [        R                  " 5       n[        R
                  " S5      n[        R
                  " S5      nSn[        R                  " SSSU4/5         [        R                  " XVXt5        S S S 5        UR                  SS	S
R                  U5      SSS/5        UR                  R                  S5        UR                  SS5        g ! , (       d  f       Nb= f)Nr   r   outz
out_.gstmpr   r   r   r   decryptr   r    zout_.stet_tmpr   )r!   r"   r   r#   r   r$   r	   r%   r   decrypt_downloadr(   r)   r*   )r+   r,   	mock_mover-   r.   r/   r0   temporary_file_names           r2   5test_stet_download_runs_binary_and_replaces_temp_fileBTestStetUtil.test_stet_download_runs_binary_and_replaces_temp_file   s     **,1E!.))+K112CDJ!66u=O&		"	":	%'78$ 
   !4C	
 "99I!!"23#\?; 
 --h7%%o|D
 
s   6C**
C8_get_stet_binary_from_pathNrH   rI   c                 r   U R                  5       n[        R                  " S5      n[        R                  " S5      n[        R                  " SSSU4/5         U R                  [        5         [        R                  " X#S 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   r   r:   r   r   )	r!   r   r$   r	   r%   assertRaisesKeyErrorr   r&   )r+   r-   r/   r0   s       r2   "test_stet_util_errors_if_no_binary/TestStetUtil.test_stet_util_errors_if_no_binary   s     **,11$7J!667HIO		"	",	%'78$ 
 X&  dC '	
 
 '&	
 
s$   B(.BB(
B%	!B((
B6
expanduserT)autospecr   c                    U R                  5       n[        R                  " S5      n[        R                  " S5      n[        R                  " SSSU4/5         [
        R                  " X4[        R                  " 5       5        S S S 5        UR                  [        R                  " S5      [        R                  " U5      /5        g ! , (       d  f       NJ= f)Nr   r   r   r   r   r   )r!   r   r$   r	   r%   r   r&   r   r#   assert_has_callscall)r+   mock_expanduserr-   r/   r0   s        r2   ,test_stet_util_expands_home_directory_symbol9TestStetUtil.test_stet_util_expands_home_directory_symbol   s    
 **,11$7J!667HIO		"	":	%'78$ 
 zDIIKH	

 $$	%	&	#	$	&'
 
s   +C
C )__name__
__module____qualname____firstlineno____doc__r   rK   rL   r   r3   rD   rM   shutilrV   r   r#   r\   r<   r?   rd   __static_attributes__rf       r2   r   r   #   sP   ::^%=>8 ?86 ::^%=>!' ?!'F ::^%=>8 ?88 ::VV$::^%=>E ? %E0 ::Y15  7	D7	D ::RWWlT:::^-0DE  G'G ;'rn   r   )rk   
__future__r   r   r   r   r<   rl   gslibr   gslib.testsr   r	   gslib.tests.utilr
   gslib.utilsr   r   r   GsUtilUnitTestCaser   rf   rn   r2   <module>ru      sE     & %  ' 	      % & ! W'8.. W'rn   