
                         z   S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKJr  S SKJ	r	  S SKJ
r
  \R                  R                  \R                  R                  \5      S5      r\R                  R                  \S5      r\ R"                  " \S5       r\R&                  " \5      rSSS5        \R                  R                  \S5      r\ R"                  " \S5       r\R&                  " \5      rSSS5        \R.                  R1                  S	S
S/5      S 5       r\R4                  " SS\R6                  " SS5      S9S 5       rS r\R4                  " SSS9S 5       r\R4                  " SSS9S 5       rS r \R4                  " S5      S 5       r!\R4                  " SSS9S 5       r"\R4                  " SSS9S 5       r#\R4                  " SSS9\R4                  " SSS9S  5       5       r$\R4                  " SSS9S! 5       r%\R4                  " SSS9S" 5       r&g! , (       d  f       GNz= f! , (       d  f       GNB= f)#    N)
_cloud_sdk)environment_vars)
exceptionsdatazauthorized_user.jsonrbzservice_account.jsonzdata, expected_project_id)   example-project
example-project)    Nc                     [         R                  " SSU S9nU n[        R                  " 5       nS S S 5        WU:X  d   eWR                  (       d   eg ! , (       d  f       N*= f)Nsubprocess.check_outputTautospecreturn_value)mockpatchr   get_project_idcalled)r   expected_project_idcheck_output_patchcheck_output
project_ids        Oplatform/gsutil/third_party/google-auth-library-python/tests/test__cloud_sdk.pytest_get_project_idr   )   s]    
 !Dt 
|..0
 
 ,,,,	 
	s   A
A!r   Ttesting)r   side_effectc                 ^    [         R                  " 5       nUb   eU R                  (       d   eg N)r   r   r   )r   r   s     r   test_get_project_id_call_errorr   9   s-     **,Jr
   c                      [         R                  SS/n [        R                  " U 5      nUS:X  d   e[        R
                  " U [        R                  S9nUS:X  d	  US:X  d   eg g )Nz-czqfrom __future__ import print_function;import sys;print('error', file=sys.stderr);print('output', file=sys.stdout)s   output
stderrs   output
error
s   error
output
)sys
executabler   _run_subprocess_ignore_stderr
subprocessr   STDOUT)commandoutputs     r   "test__run_subprocess_ignore_stderrr*   D   so    	-G 55g>F[    $$WZ5F5FGF''65G+GGG+G'r
   zos.nament)newc                  
   [         R                  " SSSS9n U  n[        R                  " 5       nS S S 5        WS:X  d   eWR                  (       d   eUR
                  S   nUS   nUS   nUS:X  d   eg ! , (       d  f       NK= f)Nr   Tr   r   r	   r   
gcloud.cmd)r   r   r   r   r   	call_args)r   r   r   argsr(   r$   s         r   test_get_project_id_windowsr1   W   s    !D?S 
|..0
 
 ****!!!$D1gGJ%%% 
	s   A44
Bz&google.auth._cloud_sdk.get_config_path)r   c                     SnXl         [        R                  " 5       nU[        R                  R                  U[        R                  5      :X  d   eg Nconfig_path)r   r   (get_application_default_credentials_pathospathjoin_CREDENTIALS_FILENAME)get_config_dirr4   credentials_paths      r   -test_get_application_default_credentials_pathr<   i   sH    K"-!JJLrww||Z55    r
   c                     SnU R                  [        R                  U5        [        R                  " 5       nX!:X  d   eg r3   )setenvr   CLOUD_SDK_CONFIG_DIRr   get_config_path)monkeypatchconfig_path_sentinelr4   s      r   test_get_config_path_env_varrC   s   s:    ('<<>RS,,.K...r
   zos.path.expanduserc                     S U l         [        R                  " 5       n[        R                  R                  U5      S[        R                  4:X  d   eg )Nc                     U $ r    )r7   s    r   <lambda>+test_get_config_path_unix.<locals>.<lambda>|   s    $r
   z	~/.config)r   r   r@   r6   r7   split_CONFIG_DIRECTORY)
expanduserr4   s     r   test_get_config_path_unixrL   z   s>    .J,,.K77==%+z7S7S)TTTTr
   c                     SnU R                  [        R                  U5        [        R                  " 5       n[        R
                  R                  U5      U[        R                  4:X  d   eg )Nappdata)r>   r   _WINDOWS_CONFIG_ROOT_ENV_VARr@   r6   r7   rI   rJ   )rA   rN   r4   s      r   test_get_config_path_windowsrP      sQ    Gz>>H,,.K77==%':3O3O)PPPPr
   c                     U R                  [        R                  SS9  U R                  SS5        [        R                  " 5       n[
        R                  R                  U5      S[        R                  4:X  d   eg )NF)raisingSystemDrivezG:zG:/\)	delenvr   rO   r>   r@   r6   r7   rI   rJ   )rA   r4   s     r   test_get_config_path_no_appdatarU      s_    z>>N}d+,,.K77==%':3O3O)PPPPr
   c                     SU l         [        R                  " 5       nUS:X  d   eU R                  S[        R
                  S9  g )N   access_token
access_token)r.   authprint-access-tokenr!   r   r   get_auth_access_tokenassert_called_withr&   r'   r   tokens     r   "test_get_auth_access_token_windowsr`      sF     !2L,,.EN"""##4Z=N=N $ r
   c                     SU l         [        R                  " SS9nUS:X  d   eU R                  S[        R
                  S9  g )NrW   accountrb   rX   )gcloudrY   rZ   z--account=accountr!   r[   r^   s     r   'test_get_auth_access_token_with_accountre      sG     1L,,Y?EN"""##E   $ r
   c                     [        5       U l        [        R                  " [        R
                  5         [        R                  " SS9  S S S 5        g ! , (       d  f       g = f)Nrb   rc   )OSErrorr   pytestraisesr   UserAccessTokenErrorr   r\   )r   s    r   )test_get_auth_access_token_with_exceptionrk      s8    &yL	z66	7((; 
8	7	7s   A
A )'iojsonr6   r&   r#   r   rh   google.authr   r   r   r7   r8   dirname__file__DATA_DIRAUTHORIZED_USER_FILEopenfhloadAUTHORIZED_USER_FILE_DATASERVICE_ACCOUNT_FILESERVICE_ACCOUNT_FILE_DATAmarkparametrizer   r   CalledProcessErrorr   r*   r1   r<   rC   rL   rP   rU   r`   re   rk   rF   r
   r   <module>r|      sR   
  	  
   " ( " 77<<16:ww||H.DE WW!4(B $		" ) ww||H.DE WW!4(B $		" ) .<			 --b)<

H& I4 & !&" 4tD E/  !U "U I4 Q !Q I4 Q !Q I4 %5 6 ! %5 6 %5< 6<a )(
 )(s   HH+
H(+
H: