
                            d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 d dlm
Z
 ej                  j                  ej                  j                  e      d      Zej                  j                  ed      Z e j"                  ed      5 Z ej&                  e      Zddd       ej                  j                  ed      Z e j"                  ed      5 Z ej&                  e      Zddd       ej.                  j1                  d	d
dg      d        Z ej4                  dd ej6                  dd            d        Zd Z ej4                  dd      d        Z ej4                  dd      d        Zd Z  ej4                  d      d        Z! ej4                  dd      d        Z" ej4                  dd      d        Z# ej4                  dd       ej4                  dd      d                Z$ ej4                  dd      d!        Z% ej4                  dd      d"        Z&y# 1 sw Y   xY w# 1 sw Y   SxY w)#    N)
_cloud_sdk)environment_vars)
exceptionsdatazauthorized_user.jsonrbzservice_account.jsonzdata, expected_project_id)   example-project
example-project)    Nc                     t        j                  dd|       }|5 }t        j                         }d d d        |k(  sJ j                  sJ y # 1 sw Y   xY w)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                 P    t        j                         }|J | j                  sJ y N)r   r   r   )r   r   s     r   test_get_project_id_call_errorr   9   s-     **,Jr
   c                      t         j                  ddg} t        j                  |       }|dk(  sJ t	        j
                  | t        j                        }|dk(  s|dk(  sJ y y )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                      t        j                  ddd      } | 5 }t        j                         }d d d        dk(  sJ j                  sJ |j
                  d   }|d   }|d   }|dk(  sJ y # 1 sw Y   ?xY w)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   A..A7z&google.auth._cloud_sdk.get_config_path)r   c                     d}|| _         t        j                         }|t        j                  j                  |t        j                        k(  sJ y 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   sJ    K"-N!JJLrww||Z55    r
   c                 ~    d}| j                  t        j                  |       t        j                         }||k(  sJ y 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                     d | _         t        j                         }t        j                  j                  |      dt        j                  fk(  sJ y )Nc                     | S r    )r7   s    r   <lambda>z+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_unixrK   z   s>    .J,,.K77==%+z7S7S)TTTTr
   c                     d}| j                  t        j                  |       t        j                         }t        j
                  j                  |      |t        j                  fk(  sJ y )Nappdata)r>   r   _WINDOWS_CONFIG_ROOT_ENV_VARr@   r6   r7   rH   rI   )rA   rM   r4   s      r   test_get_config_path_windowsrO      sQ    Gz>>H,,.K77==%':3O3O)PPPPr
   c                     | j                  t        j                  d       | j                  dd       t        j                         }t
        j                  j                  |      dt        j                  fk(  sJ y )NF)raisingSystemDrivezG:zG:/\)	delenvr   rN   r>   r@   r6   r7   rH   rI   )rA   r4   s     r   test_get_config_path_no_appdatarT      s_    z>>N}d+,,.K77==%':3O3O)PPPPr
   c                     d| _         t        j                         }|dk(  sJ | j                  dt        j
                         y )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                     d| _         t        j                  d      }|dk(  sJ | j                  dt        j
                         y )NrV   accountra   rW   )gcloudrX   rY   z--account=accountr!   rZ   r]   s     r   'test_get_auth_access_token_with_accountrd      sG     1L,,Y?EN"""##E   $ r
   c                     t               | _        t        j                  t        j
                        5  t        j                  d       d d d        y # 1 sw Y   y xY w)Nra   rb   )OSErrorr   pytestraisesr   UserAccessTokenErrorr   r[   )r   s    r   )test_get_auth_access_token_with_exceptionrj      s8    &yL	z66	7((; 
8	7	7s   AA)'iojsonr6   r&   r#   r   rg   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   rK   rO   rT   r_   rd   rj   rF   r
   r   <module>r{      sp   
  	  
   " ( " 77<<16:ww||H.DE RWW!4(B )		" ) ww||H.DE RWW!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   H4I4H>I