
                             S SK r S SKrS SKrS SKJr   " S S\5      r\R                  S 5       rS r	\R                  R                  \SSS9S	 5       r " S
 S\5      r " S S\5      rg)    N)
app_enginec                   <    \ rS rSrSrS rS	S jrS	S jrS	S jrSr	g)
_AppIdentityModule   zThe interface of the App Idenity app engine module.
See https://cloud.google.com/appengine/docs/standard/python/refdocs
/google.appengine.api.app_identity.app_identity
c                     [        5       eNNotImplementedError)selfs    Oplatform/gsutil/third_party/google-auth-library-python/tests/test_app_engine.pyget_application_id%_AppIdentityModule.get_application_id       !##    Nc                     [        5       er   r	   )r   bytes_to_signdeadlines      r   	sign_blob_AppIdentityModule.sign_blob    r   r   c                     [        5       er   r	   )r   r   s     r   get_service_account_name+_AppIdentityModule.get_service_account_name#   r   r   c                     [        5       er   r	   )r   scopesservice_account_ids      r   get_access_token#_AppIdentityModule.get_access_token&   r   r    r   )
__name__
__module____qualname____firstlineno____doc__r   r   r   r   __static_attributes__r   r   r   r   r      s    
$$$$r   r   c              #   t   #    [         R                  " [        SS9nU R                  [        SU5        Uv   g7f)z9Mocks the app_identity module for google.auth.app_engine.T)instanceapp_identityN)mockcreate_autospecr   setattrr   )monkeypatchapp_identity_modules     r   r'   r'   *   s4      ../ADQ
N4GH
s   68c                     [         R                  R                  U R                  l        [
        R                  " 5       [         R                  R                  :X  d   eg r   )r(   sentinelprojectr   return_valuer   get_project_id)r'   s    r   test_get_project_idr2   2   s;    37==3H3HL##0$$&$--*?*????r   r'   newc                      [         R                  " [        5       n [        R                  " 5       (       d   e S S S 5        W R                  S5      (       d   eg ! , (       d  f       N'= fNz!App Engine APIs are not available)pytestraisesEnvironmentErrorr   r1   match)excinfos    r    test_get_project_id_missing_apisr<   7   sL    	'	(G((**** 
) ===>>>> 
)	(s   A
A(c                        \ rS rSrS rS rSrg)
TestSigner?   c                     [         R                  R                  [         R                  R                  4UR                  l        [        R                  " 5       nUR                  b   eg r   )r(   r.   key_id	signaturer   r0   r   Signer)r   r'   signers      r   test_key_idTestSigner.test_key_id@   sL    MM  MM##/
+
 ""$}}$$$r   c                 P   [         R                  R                  [         R                  R                  4UR                  l        [        R                  " 5       nSnUR                  U5      nU[         R                  R                  :X  d   eUR                  R                  U5        g Ns   123)
r(   r.   rA   rB   r   r0   r   rC   signassert_called_with)r   r'   rD   to_signrB   s        r   	test_signTestSigner.test_signJ   s{    MM  MM##/
+
 ""$KK(	DMM3333311':r   r   N)r   r    r!   r"   rE   rL   r$   r   r   r   r>   r>   ?   s    %;r   r>   c                   8   \ rS rSr\R
                  R                  \SSS9S 5       rS r	S r
S rS	 rS
 rS r\R
                  " S\R                  R                   S9S 5       r\R
                  " S\R                  R                   S9S 5       rS rS rS rSrg)TestCredentialsY   r'   Nr3   c                     [         R                  " [        5       n[        R                  " 5         S S S 5        WR                  S5      (       d   eg ! , (       d  f       N'= fr6   )r7   r8   r9   r   Credentialsr:   )r   r;   s     r   test_missing_apis!TestCredentials.test_missing_apisZ   sC    ]]+,""$ - }}ABBBB -,s   A
A c                    [         R                  " 5       nUR                  (       a   eUR                  (       a   eUR                  (       a   eUR
                  (       a   eUR                  (       d   eUR                  (       a   eg r   )r   rR   validexpiredr   default_scopesrequires_scopesquota_project_idr   r'   credentialss      r   test_default_state"TestCredentials.test_default_statea   so     ,,. $$$$&&&&%%%%----****/////r   c                     [         R                  " 5       nUR                  (       a   eUR                  (       d   eUR	                  S/5      nUR                  S/5      (       d   eUR                  (       a   eg )Nemail)r   rR   r   rY   with_scopes
has_scopesr   r'   r\   scoped_credentialss       r   test_with_scopes TestCredentials.test_with_scopesn   sl     ,,.%%%%****(44gY?!,,gY7777%55555r   c                    [         R                  " 5       nUR                  (       a   eUR                  (       a   eUR                  (       d   eUR                  S S/S9nUR                  S/5      (       d   eUR                  (       a   eg )Nr`   r   rX   )r   rR   r   rX   rY   ra   rb   rc   s       r   test_with_default_scopes(TestCredentials.test_with_default_scopesy   s     ,,.%%%%----****(44	 5 
 ",,gY7777%55555r   c                     [         R                  " 5       nUR                  (       a   eUR                  (       a   eUR	                  S5      nUR                  S:X  d   eg )Nzproject-foo)r   rR   r   rZ   with_quota_project)r   r'   r\   quota_project_credss       r   test_with_quota_project'TestCredentials.test_with_quota_project   sS     ,,.%%%%////)<<]K"33}DDDr   c                    [         R                  R                  UR                  l        [
        R                  " 5       nUR                  [         R                  R                  :X  d   eUR                  R                  (       d   eg r   )r(   r.   service_account_emailr   r0   r   rR   calledr[   s      r   #test_service_account_email_implicit3TestCredentials.test_service_account_email_implicit   s`    MM// 	--: !,,.00DMM4W4WWWW44;;;;r   c                     [         R                  " [        R                  R                  S9nUR                  [        R                  R                  :X  d   eUR
                  R                  (       a   eg )N)r   )r   rR   r(   r.   rq   r   rr   r[   s      r   #test_service_account_email_explicit3TestCredentials.test_service_account_email_explicit   sW     ,,#}}BB
 00DMM4W4WWWW88?????r   zgoogle.auth._helpers.utcnow)r0   c           	         SnSnX44UR                   l        [        R                  " S/S/S9nUR	                  S 5        UR                   R                  UR                  UR                  5        UR                  U:X  d   eUR                  [        R                  " SSSS	S
S5      :X  d   eUR                  (       d   eUR                  (       a   eg )Ntokena&r`   profilerh                    )r   r0   r   rR   refreshrJ   r   _service_account_idry   expirydatetimerV   rW   r   utcnowr'   ry   ttlr\   s         r   test_refreshTestCredentials.test_refresh   s    5:Z%%2 ,,9i[
 	D!%%88 ? ?	
   E)))!!X%6%6tQAq!%LLLL    &&&&&r   c           	         SnSnX44UR                   l        [        R                  " S/S9nUR	                  S 5        UR                   R                  UR                  UR                  5        UR                  U:X  d   eUR                  [        R                  " SSSSS	S
5      :X  d   eUR                  (       d   eUR                  (       a   eg )Nry   rz   r`   )rX   r|   r}   r~   r   r   r   )r   r0   r   rR   r   rJ   rX   r   ry   r   r   rV   rW   r   s         r    test_refresh_with_default_scopes0TestCredentials.test_refresh_with_default_scopes   s    5:Z%%2 ,,WIFD!%%88&&(G(G	
   E)))!!X%6%6tQAq!%LLLL    &&&&&r   c                 P   [         R                  R                  [         R                  R                  4UR                  l        [        R                  " 5       nSnUR                  U5      nU[         R                  R                  :X  d   eUR                  R                  U5        g rH   )
r(   r.   rA   rB   r   r0   r   rR   
sign_bytesrJ   )r   r'   r\   rK   rB   s        r   test_sign_bytesTestCredentials.test_sign_bytes   s}    MM  MM##/
+ !,,.**73	DMM3333311':r   c                     [         R                  " 5       n[        UR                  [         R                  5      (       d   eg r   )r   rR   
isinstancerD   rC   r[   s      r   test_signerTestCredentials.test_signer   s/     ,,.+,,j.?.?@@@@r   c                 f    [         R                  " 5       nUR                  UR                  :X  d   eg r   )r   rR   signer_emailrq   r[   s      r   test_signer_email!TestCredentials.test_signer_email   s*     ,,.'';+L+LLLLr   r   )r   r    r!   r"   r(   patchobjectr   rS   r]   re   ri   rn   rs   rv   r   minr   r   r   r   r   r$   r   r   r   rO   rO   Y   s    	ZZz>t<C =C0	66E<@ 
ZZ-H<M<M<Q<QR' S'$ 
ZZ-H<M<M<Q<QR' S' ;AMr   rO   )r   r(   r7   google.authr   r   r   fixturer'   r2   r   r<   r>   rO   r   r   r   <module>r      s       "$ $&  @
 :~48? 9?; ;4@Mf @Mr   