
                            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Zd dl	Zd dlmZ ej                  j                  ej                  j!                  e      d      Zej                  j                  ed      Zd Zd	 Zd
 Zd Zej0                  d        Z ej4                  d      d        Z G d de      Zd Zd Zej0                  d        Z d Z!d Z"y# e
$ r  ej                  dd       Y w xY w)    Nz@Skipping oauth2client tests since oauth2client is not installed.T)allow_module_level)_oauth2clientdatazservice_account.jsonc            
         t         j                  j                  ddddt        j                  j                  ddd      } t        j                  |       }|j                  | j                  k(  sJ |j                  | j                  k(  sJ |j                  | j                  k(  sJ |j                  | j                  k(  sJ |j                  | j                   k(  sJ |j"                  | j"                  k(  sJ y )	Naccess_token	client_idclient_secretrefresh_token	token_uri
user_agentone two)scopes)oauth2clientclientOAuth2Credentialsdatetimeminr   _convert_oauth2_credentialstokenr   _refresh_tokenr
   
_client_idr   _client_secretr	   
_token_urir   r   old_credentialsnew_credentialss     Rplatform/gsutil/third_party/google-auth-library-python/tests/test__oauth2client.py test__convert_oauth2_credentialsr   (   s    "));; < 	O $??PO  O$@$@@@@))_-J-JJJJ%%)B)BBBB))_-J-JJJJ%%)B)BBBB!!_%;%;;;;    c                  B   t         j                  j                  } | j                  t              }t        j                  |      }|j                  |j                  k(  sJ |j                  j                  |j                  k(  sJ |j                  |j                  k(  sJ y N)r   service_accountServiceAccountCredentialsfrom_json_keyfile_nameSERVICE_ACCOUNT_JSON_FILEr   $_convert_service_account_credentialsservice_account_email_signerkey_id_private_key_idr   r   	old_classr   r   s      r   )test__convert_service_account_credentialsr-   >   s    ,,FFI667PQO#HHO
 	--1V1VVV""))_-L-LLLL%%)B)BBBBr   c                  B   t         j                  j                  } | j                  t              }t        j                  |      }|j                  |j                  k(  sJ |j                  j                  |j                  k(  sJ |j                  |j                  k(  sJ y r!   )r   r"   _JWTAccessCredentialsr$   r%   r   r&   r'   r(   r)   r*   r   r   r+   s      r   2test__convert_service_account_credentials_with_jwtr0   M   s    ,,BBI667PQO#HHO
 	--1V1VVV""))_-L-LLLL%%)B)BBBBr   c                      t         j                  j                  j                  d      } t	        j
                  |       }|j                  | j                  k(  sJ y )N
some_email)email)r   contribgceAppAssertionCredentialsr   &_convert_gce_app_assertion_credentialsr'   r   s     r   +test__convert_gce_app_assertion_credentialsr8   \   sZ    "**..FF G O $JJO
 	--1V1VVVr   c                 D     | d        | d        | d        | d       y )Nz!google.appengine.api.app_identityzgoogle.appengine.ext.ndbz google.appengine.ext.webapp.utilwebapp2 )mock_non_existent_modules    r   mock_oauth2client_gae_importsr=   j   s%    @A78?@Y'r   z#google.auth.app_engine.app_identityc                 4   t         j                  dk\  rt        j                  d       dd l}d}|j
                  j                  j                  d|      }t        j                  |      }|j                  ddgk(  sJ |j                  |j                  k(  sJ y )	N      CSkipping test for Python 3.13+ due to oauth2client incompatibility.r   service_account_idr   )scoperC   onetwo)sysversion_infopytestskipoauth2client.contrib.appenginer4   	appenginer6   r   ,_convert_appengine_app_assertion_credentialsr   _service_account_idrC   )app_identityr=   r   rC   r   r   s         r   1test__convert_appengine_app_assertion_credentialsrP   r   s     7"Q	
 *-"**44LL,> M O $PPO !!eU^333../2T2TTTTr   c                       e Zd Zy)FakeCredentialsN)__name__
__module____qualname__r;   r   r   rR   rR      s    r   rR   c                  8   t        j                  dg      } t         j                  j                  t        dt
        | i      }t               }|5  t	        j                  |      }d d d        | j                  |       | j                  k(  sJ y # 1 sw Y   ,xY w)N__call__)spec_CLASS_CONVERSION_MAP)	mockMockpatchobjectr   rR   convertassert_called_once_withreturn_value)convert_functionconversion_map_patchcredentialsresults       r   test_convert_successre      s    yyzl3::,,.BR0S "#K	&&{3 
 ,,[9%22222	 
	s   BBc                      t        j                  t              5 } t        j                  d       d d d         j                  d      sJ y # 1 sw Y   xY w)Nz(a string is not a real credentials classzUnable to convert)rI   raises
ValueErrorr   r^   match)excinfos    r   test_convert_not_foundrk      sB    	z	"gHI 
# ==,--- 
#	"s   AAc                  6    t        j                  t               y)z.Reloads the _oauth2client module after a test.N)	importlibreloadr   r;   r   r   reset__oauth2client_modulero      s     ]#r   c                     t         j                  dk\  rt        j                  d       t	        j
                  t               t        j                  sJ y )Nr?   rB   )rG   rH   rI   rJ   rm   rn   r   _HAS_APPENGINE)r=   ro   s     r   test_import_has_app_enginerr      s@     7"Q	
 ]#''''r   c                     | j                  t        j                  dd        t        j                  t
              5 }t        j                  t               d d d        j                  d      sJ y # 1 sw Y   xY w)Nr   )
setitemrG   modulesrI   rg   ImportErrorrm   rn   r   ri   )monkeypatchro   rj   s      r    test_import_without_oauth2clientrx      sV    ^T:	{	#w' 
$ ==((( 
$	#s   A11A:)#r   rm   osrG   rZ   rI   oauth2client.clientr   oauth2client.contrib.gceoauth2client.service_accountrv   rJ   google.authr   pathjoindirname__file__DATA_DIRr%   r   r-   r0   r8   fixturer=   r\   rP   r]   rR   re   rk   ro   rr   rx   r;   r   r   <module>r      s     	 
  #' & 77<<16:GGLL3IJ <,CC ( ( 12U 3U6	f 	3. $ $
()C  FKKJs   C C98C9