
    җ                        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
  S SKJr  S SKJr  \R                  R!                  \R                  R#                  \5      SS5      r\R                  R!                  \S	5      r\" \S
5       r\R.                  " \5      rSSS5         " S S\5      r " S S\5      rg! , (       d  f       N%= f)    N)_helpers)
exceptions)	transport)
TokenState)credentialsz..datazauthorized_user.jsonrc                      \ rS rSrSrSrSrSrSr\	S 5       r
S rS	 rS
 rS rS rS rS rS r\R(                  " SSS9\R(                  " S\R*                  R,                  \R0                  -   S9S 5       5       rS r\R(                  " SSS9\R(                  " S\R*                  R,                  \R0                  -   S9S 5       5       r\R(                  " S\R*                  R,                  S9S 5       r\R(                  " S\R*                  R,                  S9S 5       r\R(                  " S\R*                  R,                  S9S 5       rS r\R(                  " S\R*                  R,                  S9S 5       r \R(                  " SSS9\R(                  " S\R*                  R,                  \R0                  -   S9S 5       5       r!\R(                  " SSS9\R(                  " S\R*                  R,                  \R0                  -   S9S 5       5       r"\R(                  " SSS9\R(                  " S\R*                  R,                  \R0                  -   S9S 5       5       r#\R(                  " SSS9\R(                  " S\R*                  R,                  \R0                  -   S9S  5       5       r$\R(                  " SSS9\R(                  " S\R*                  R,                  \R0                  -   S9S! 5       5       r%S" r&S# r'S$ r(S% r)S& r*S' r+S( r,S) r-S* r.S+ r/S, r0S- r1S. r2S/ r3\4Rj                  Rm                  \7Rp                  S0:  S1S29S3 5       r9S4r:g5)6TestCredentials'   z https://example.com/oauth2/tokenrefresh_token
rapt_token	client_idclient_secretc           
          [         R                  " S U R                  U R                  U R                  U R
                  U R                  SS9$ )NT)tokenr   	token_urir   r   r   enable_reauth_refresh)r   CredentialsREFRESH_TOKEN	TOKEN_URI	CLIENT_IDCLIENT_SECRET
RAPT_TOKEN)clss    Wplatform/gsutil/third_party/google-auth-library-python/tests/oauth2/test_credentials.pymake_credentials TestCredentials.make_credentials.   sB    &&++mmmm++~~"&
 	
    c                    U R                  5       nUR                  (       a   eUR                  (       a   eUR                  (       a   eUR                  [
        R                  :X  d   eUR                  U R                  :X  d   eUR                  U R                  :X  d   eUR                  U R                  :X  d   eUR                  U R                  :X  d   eUR                  U R                   :X  d   eUR"                  b   eg )N)r   validexpiredrequires_scopestoken_stater   INVALIDr   r   r   r   r   r   r   r   r   r   refresh_handlerselfr   s     r   test_default_state"TestCredentials.test_default_state:   s    ++-$$$$&&&&....&&**<*<<<<((D,>,>>>>$$666$$666((D,>,>>>>%%888**222r   c                     U R                  5       nSUl        UR                  " 5       (       a   eSUl        UR                  " 5       SSSS.:X  d   eg )Nzfake-account/path/to/fileuser credentials)credential_sourcecredential_type	principal)r   _accountget_cred_info_cred_file_pathr'   s     r   test_get_cred_info"TestCredentials.test_get_cred_infoJ   s^    ++--,,....&5#((*!01'/
 
 	
 
r   c                     U R                  5       nUR                  " 5       (       a   eSUl        UR                  " 5       SSS.:X  d   eg )Nr,   r-   )r.   r/   )r   r2   r3   r'   s     r   test_get_cred_info_no_account-TestCredentials.test_get_cred_info_no_accountV   sS    ++-,,....&5#((*!01/
 
 	
 
r   c                 x    U R                  5       nSUl        UR                  " 5       nUR                  S:X  d   eg )Nr,   )r   r3   
_make_copy)r(   r   	cred_copys      r   test__make_copy_get_cred_info-TestCredentials.test__make_copy_get_cred_info`   s:    ++-&5#**,	((O;;;r   c                     U R                  5       nSUl        S Ul        0 nUR                  " [        R
                  " 5       S S U5        US   S:X  d   eUS   S:X  d   eg )Nr   authorizationzBearer tokenzx-goog-api-clientzcred-type/u)r   r   expirybefore_requestmockMock)r(   r   headerss      r   test_token_usage_metrics(TestCredentials.test_token_usage_metricsf   sf    ++-#!""499;dGD'>999*+}<<<r   c                    SS/n[         R                  " SS9n[         R                  " SS9n[        R                  " S S S S S S US US9	nUR                  UL d   eX4l        UR                  UL d   eS Ul        UR                  b   eg )Nemailprofile)ACCESS_TOKEN_1Nreturn_value)ACCESS_TOKEN_2N	r   r   r   r   r   r   scopesdefault_scopesr&   )rB   rC   r   r   r&   )r(   rO   original_refresh_handlerupdated_refresh_handlercredss        r   &test_refresh_handler_setter_and_getter6TestCredentials.test_refresh_handler_setter_and_getterp   s    9%#'99:R#S "&))9Q"R''4

 $$(@@@@ 7$$(???? $$$,,,r   c                     SS/n[         R                  " [        5       n[        R                  " S S S S S S US [        5       S9	  S S S 5        WR                  S5      (       d   eg ! , (       d  f       N'= f)NrH   rI   rN   z7The provided refresh_handler is not a callable or None.)pytestraises	TypeErrorr   r   objectmatch)r(   rO   excinfos      r   test_invalid_refresh_handler,TestCredentials.test_invalid_refresh_handler   sk    9%]]9%##""# &
 & }}VWWWW &%s   %A%%
A3c                 "   [         R                  " SSS9n[        R                  " [        R
                  5       nUR                  [        R                  " 5       5        S S S 5        WR                  S5      (       d   eg ! , (       d  f       N'= f)Nr   dummy_universe.com)r   universe_domainzGrefresh is only supported in the default googleapis.com universe domain)
r   r   rW   rX   r   RefreshErrorrefreshrB   rC   r[   )r(   rS   r\   s      r   -test_refresh_with_non_default_universe_domain=TestCredentials.test_refresh_with_non_default_universe_domain   sn    ''+?
 ]]:223wMM$))+& 4 }}U
 
 	
 
 43s   %B  
Bz"google.oauth2.reauth.refresh_grantTautospeczgoogle.auth._helpers.utcnowrK   c           
         SnSn[         R                  " 5       [        R                  " SS9-   nS[        R
                  R                  0nUS UUU4Ul        [        R                  " [        R                  5      nU R                  5       nUR                  " U5        UR                  UU R                  U R                  U R                   U R"                  S U R$                  S5        UR&                  U:X  d   eUR(                  U:X  d   eUR                  [        R
                  R                  :X  d   eUR*                  U:X  d   eUR,                  (       d   eg )Nr   new_rapt_token  secondsid_tokenT)r   utcnowdatetime	timedeltarB   sentinelrm   rL   create_autospecr   Requestr   rc   assert_called_withr   r   r   r   r   r   r@   r   r!   )	r(   unused_utcnowrefresh_grantr   ri   r@   grant_responserequestr   s	            r   test_refresh_success$TestCredentials.test_refresh_success   s<    )"X%7%7%DD$dmm&<&<= &
" &&y'8'89++- 	G$ 	((NNNNOO		
   E)))!!V+++##t}}'='====%%777     r   c                 2   [         R                  " [        R                  5      n[        R
                  " S S S9n[        R                  " [        R                  SS9   UR                  U5        S S S 5        UR                  5         g ! , (       d  f       N= f)N)r   r   znecessary fieldsr[   )rB   rr   r   rs   r   r   rW   rX   r   rb   rc   assert_not_called)r(   rx   credentials_s      r   test_refresh_no_refresh_token-TestCredentials.test_refresh_no_refresh_token   sk    &&y'8'89"..TN]]:22:LM  ) N 	!!# NMs   B
Bc           
      v   SnSn[         R                  " 5       [        R                  " SS9-   nS[        R
                  R                  0nUS UUU4Ul        [        R                  " 5       n[        R                  " [        R                  5      n[        R                  " S U R                  U R                  U R                   U R"                  U R$                  US9n	U	R'                  U5        UR)                  UU R                  U R                  U R                   U R"                  S U R$                  S5        U	R*                  U:X  d   eU	R,                  U:X  d   eU	R                  [        R
                  R                  :X  d   eU	R.                  U:X  d   eU	R0                  (       d   eUR3                  5         g )Nr   ri   rj   rk   rm   r   r   r   r   r   r   r&   F)r   rn   ro   rp   rB   rq   rm   rL   rC   rr   r   rs   r   r   r   r   r   r   r   rc   rt   r   r@   r   r!   r}   )
r(   ru   rv   r   ri   r@   rw   r&   rx   rS   s
             r   3test_refresh_with_refresh_token_and_refresh_handlerCTestCredentials.test_refresh_with_refresh_token_and_refresh_handler   sy    )"X%7%7%DD$dmm&<&<= &
" ))+&&y'8'89'',,nnnn,,+
 	g 	((NNNNOO		
 {{e###||v%%%~~!7!7777>111 {{{ 	))+r   c                    [         R                   R                  [         R                  " SS9-   n[        R                  " SU4S9nSS/nS/n[        R
                  " [        R                  5      n[        R                  " S S S S S S UUUS9	nUR                  U5        UR                  S:X  d   eUR                  U:X  d   eUR                  (       d   eUR                  (       a   eUR                  XdS	9  g )
N
  rk   ACCESS_TOKENrK   rH   rI   .https://www.googleapis.com/auth/cloud-platformrN   rO   )ro   minrp   rB   rC   rr   r   rs   r   r   rc   r   r@   r!   r"   rt   r(   ru   expected_expiryr&   rO   rP   rx   rS   s           r   0test_refresh_with_refresh_handler_success_scopes@TestCredentials.test_refresh_with_refresh_handler_success_scopes$  s    "++//(2D2DT2RR))./1RS9%JK&&y'8'89'')+

 	g{{n,,,||...{{{==  **7*Br   c                     [         R                   R                  [         R                  " SS9-   n[        R                  " SU4S9n[        R                  " SU4S9nS/n[        R
                  " [        R                  5      n[        R                  " S S S S S S S UUS9	nXGl
        UR                  U5        UR                  S:X  d   eUR                  U:X  d   eUR                  (       d   eUR                  (       a   eUR!                  XeS9  g )	Nr   rk   UNUSED_TOKENrK   r   r   rN   r   )ro   r   rp   rB   rC   rr   r   rs   r   r   r&   rc   r   r@   r!   r"   rt   )r(   ru   r   rQ   r&   rP   rx   rS   s           r   8test_refresh_with_refresh_handler_success_default_scopesHTestCredentials.test_refresh_with_refresh_handler_success_default_scopes@  s    "++//(2D2DT2RR#'99(/:$
  ))./1RSJK&&y'8'89'')4

 !0g{{n,,,||...{{{==   	**7*Jr   c                 8   [         R                   R                  [         R                  " SS9-   n[        R                  " S U4S9nSS/nS/n[        R
                  " [        R                  5      n[        R                  " S S S S S S UUUS9	n[        R                  " [        R                  SS	9   UR                  U5        S S S 5        UR                  b   eUR                   b   eUR"                  (       a   eUR%                  XdS
9  g ! , (       d  f       NO= f)Nr   rk   rK   rH   rI   r   rN   zreturned token is not a stringr|   r   )ro   r   rp   rB   rC   rr   r   rs   r   r   rW   rX   r   rb   rc   r   r@   r!   rt   r   s           r   /test_refresh_with_refresh_handler_invalid_token?TestCredentials.test_refresh_with_refresh_handler_invalid_tokena  s    "++//(2D2DT2RR))$1HI9%JK&&y'8'89'')+

 ]]##+K
 MM'"

 {{"""||###;;**7*B
 
s   0D
Dc                    [         R                  " SS9nSS/nS/n[         R                  " [        R                  5      n[
        R                  " S S S S S S UUUS9	n[        R                  " [        R                  SS9   UR                  U5        S S S 5        UR                  b   eUR                  b   eUR                  (       a   eUR                  XBS	9  g ! , (       d  f       NO= f)
N)TOKENr   rK   rH   rI   r   rN   z(returned expiry is not a datetime objectr|   r   )rB   rC   rr   r   rs   r   r   rW   rX   r   rb   rc   r   r@   r!   rt   )r(   r&   rO   rP   rx   rS   s         r   0test_refresh_with_refresh_handler_invalid_expiry@TestCredentials.test_refresh_with_refresh_handler_invalid_expiry  s    ))A9%JK&&y'8'89'')+

 ]]##+U
 MM'"

 {{"""||###;;**7*B
 
s   ?C
C(c                 0   [         R                   R                  [        R                  -   n[        R
                  " SU4S9nSS/nS/n[        R                  " [        R                  5      n[        R                  " S S S S S S UUUS9	n[        R                  " [        R                  SS9   UR                  U5        S S S 5        UR                   b   eUR"                  b   eUR$                  (       a   eUR'                  XdS	9  g ! , (       d  f       NO= f)
Nr   rK   rH   rI   r   rN   zalready expiredr|   r   )ro   r   r   REFRESH_THRESHOLDrB   rC   rr   r   rs   r   r   rW   rX   r   rb   rc   r   r@   r!   rt   r   s           r   /test_refresh_with_refresh_handler_expired_token?TestCredentials.test_refresh_with_refresh_handler_expired_token  s    "++//(2L2LL))'?1KL9%JK&&y'8'89'')+

 ]]:22:KLMM'" M {{"""||###;;**7*B MLs   ,D
Dc                    SS/nS/nSnSn[         R                  " 5       [        R                  " SS9-   n[        R
                  R                  SS	.nUS UUU4Ul        [        R                  " [        R                  5      n	[        R                  " S U R                  U R                  U R                  U R                   UUU R"                  S
S9	n
U
R%                  U	5        UR'                  U	U R                  U R                  U R                  U R                   UU R"                  S
5        U
R(                  U:X  d   eU
R*                  U:X  d   eU
R                  [        R
                  R                  :X  d   eU
R-                  U5      (       d   eU
R.                  U:X  d   eU
R0                  U:X  d   eU
R2                  (       d   eg )NrH   rI   r   r   ri   rj   rk   email profilerm   scopeT)	r   r   r   r   r   rO   rP   r   r   r   rn   ro   rp   rB   rq   rm   rL   rr   r   rs   r   r   r   r   r   r   r   rc   rt   r   r@   
has_scopesr   granted_scopesr!   )r(   ru   rv   rO   rP   r   ri   r@   rw   rx   rS   s              r   6test_credentials_with_scopes_requested_refresh_successFTestCredentials.test_credentials_with_scopes_requested_refresh_success  s    9%JK)"X%7%7%DD&*mm&<&<W &
" &&y'8'89'',,nnnn,,)"&

 	g 	((NNNNOO		
 {{e###||v%%%~~!7!7777''''>111##v--- {{{r   c                    SS/nSnSn[         R                  " 5       [        R                  " SS9-   n[        R
                  R                  SS.nUS UUU4Ul        [        R                  " [        R                  5      n[        R                  " S U R                  U R                  U R                  U R                   UU R"                  S	S
9n	U	R%                  U5        UR'                  UU R                  U R                  U R                  U R                   UU R"                  S	5        U	R(                  U:X  d   eU	R*                  U:X  d   eU	R                  [        R
                  R                  :X  d   eU	R-                  U5      (       d   eU	R.                  U:X  d   eU	R0                  U:X  d   eU	R2                  (       d   eg )NrH   rI   r   ri   rj   rk   r   r   Tr   r   r   r   r   rP   r   r   r   
r(   ru   rv   rP   r   ri   r@   rw   rx   rS   s
             r   3test_credentials_with_only_default_scopes_requestedCTestCredentials.test_credentials_with_only_default_scopes_requested  s    "9-)"X%7%7%DD&*mm&<&<W &
" &&y'8'89'',,nnnn,,)"&	
 	g 	((NNNNOO		
 {{e###||v%%%~~!7!7777////>111##~555 {{{r   c                    SS/nSnSn[         R                  " 5       [        R                  " SS9-   n[        R
                  R                  SR                  U5      S.nUS UUU4Ul        [        R                  " [        R                  5      n[        R                  " S U R                  U R                  U R                   U R"                  UU R$                  S	S
9n	U	R'                  U5        UR)                  UU R                  U R                  U R                   U R"                  UU R$                  S	5        U	R*                  U:X  d   eU	R,                  U:X  d   eU	R                  [        R
                  R                  :X  d   eU	R/                  U5      (       d   eU	R0                  U:X  d   eU	R2                  U:X  d   eU	R4                  (       d   eg NrH   rI   r   ri   rj   rk    r   T)r   r   r   r   r   rO   r   r   r   rn   ro   rp   rB   rq   rm   joinrL   rr   r   rs   r   r   r   r   r   r   r   rc   rt   r   r@   r   r   r   r!   )
r(   ru   rv   rO   r   ri   r@   rw   rx   rS   s
             r   5test_credentials_with_scopes_returned_refresh_successETestCredentials.test_credentials_with_scopes_returned_refresh_success>  s    9%)"X%7%7%DD&*mm&<&<sxxPVGWX &
" &&y'8'89'',,nnnn,,"&	
 	g 	((NNNNOO		
 {{e###||v%%%~~!7!7777''''>111##v--- {{{r   c                    SS/nSnSn[         R                  " 5       [        R                  " SS9-   n[        R
                  R                  SS.nUS UUU4Ul        [        R                  " [        R                  5      n[        R                  " S U R                  U R                  U R                  U R                   UU R"                  SS	9n	U	R%                  U5        UR'                  UU R                  U R                  U R                  U R                   UU R"                  S5        U	R(                  U:X  d   eU	R*                  U:X  d   eU	R                  [        R
                  R                  :X  d   eU	R-                  U5      (       d   eU	R.                  U:X  d   eU	R0                  S/:X  d   eU	R2                  (       d   eg )
NrH   rI   r   ri   rj   rk   r   Tr   r   r   s
             r   Ltest_credentials_with_only_default_scopes_requested_different_granted_scopes\TestCredentials.test_credentials_with_only_default_scopes_requested_different_granted_scopes  s    "9-)"X%7%7%DD&*mm&<&<wO &
" &&y'8'89'',,nnnn,,)"&	
 	g 	((NNNNOO		
 {{e###||v%%%~~!7!7777////>111##y000 {{{r   c                    SS/nS/nSnSn[         R                  " 5       [        R                  " SS9-   n[        R
                  R                  SR                  U5      S.nUS UUU4Ul        [        R                  " [        R                  5      n	[        R                  " S U R                  U R                  U R                   U R"                  UU R$                  S	S
9n
U
R'                  U	5        UR)                  U	U R                  U R                  U R                   U R"                  UU R$                  S	5        U
R*                  U:X  d   eU
R,                  U:X  d   eU
R                  [        R
                  R                  :X  d   eU
R/                  U5      (       d   eU
R0                  U:X  d   eU
R2                  U:X  d   eU
R4                  (       d   eg r   r   )r(   ru   rv   rO   scopes_returnedr   ri   r@   rw   rx   rS   s              r   =test_credentials_with_scopes_refresh_different_granted_scopesMTestCredentials.test_credentials_with_scopes_refresh_different_granted_scopes  s    9%"))"X%7%7%DD..XXo.
 &
" &&y'8'89'',,nnnn,,"&	
 	g 	((NNNNOO		
 {{e###||v%%%~~!7!7777''''>111##666 {{{r   c           	          [         R                  " SU R                  U R                  U R                  U R
                  SS9n0 nUR                  U5        US   S:X  d   eSUS   ;   d   eg )Nr   quota-project-123r   r   r   r   r   quota_project_idx-goog-user-projectr?   r   r   r   r   r   r   applyr(   rS   rD   s      r    test_apply_with_quota_project_id0TestCredentials.test_apply_with_quota_project_id  ss    '',,nnnn,,0
 G,-1DDDD'/2222r   c                     [         R                  " SU R                  U R                  U R                  U R
                  S9n0 nUR                  U5        SU;  d   eSUS   ;   d   eg )Nr   )r   r   r   r   r   r   r?   r   r   s      r   #test_apply_with_no_quota_project_id3TestCredentials.test_apply_with_no_quota_project_id  si    '',,nnnn,,
 G$G333'/2222r   c           	         [         R                  " SU R                  U R                  U R                  U R
                  SS9nUR                  S5      nUR                  S:X  d   e0 nUR                  U5        SU;   d   eg )Nr   r   r   znew-project-456r   )	r   r   r   r   r   r   with_quota_projectr   r   )r(   rS   	new_credsrD   s       r   test_with_quota_project'TestCredentials.test_with_quota_project"  s    '',,nnnn,,0
 ,,->?	))->>>>G$///r   c                     [         R                  " SS9nUR                  S:X  d   eUR                  S5      nUR                  S:X  d   eg )Nr   r   googleapis.comr`   )r   r   ra   with_universe_domainr(   rS   r   s      r   test_with_universe_domain)TestCredentials.test_with_universe_domain2  sM    ''g6$$(8888../CD	((,@@@@r   c                     [         R                  " SS9nUR                  S:X  d   eUR                  S5      nUR                  S:X  d   eg )Nr   r    zmock@example.com)r   r   accountwith_accountr   s      r   test_with_account!TestCredentials.test_with_account8  sJ    ''g6}}"""&&'9:	  $6666r   c                     [         R                  5       n[        R                  R	                  U5      nSnUR
                  [        R                  :X  d   eUR                  U5      nUR
                  U:X  d   eg )Nz&https://oauth2-eu.googleapis.com/token)AUTH_USER_INFOcopyr   r   from_authorized_user_info
_token_uri_GOOGLE_OAUTH2_TOKEN_ENDPOINTwith_token_uri)r(   inforS   new_token_uricreds_with_new_token_uris        r   test_with_token_uri#TestCredentials.test_with_token_uri>  sj    ""$''AA$G@;#L#LLLL#(#7#7#F '22mCCCr   c                 B   [         R                  5       n[        R                  R	                  U5      nUR
                  US   :X  d   eUR                  US   :X  d   eUR                  US   :X  d   eUR                  [        R                  :X  d   eUR                  b   eSS/n[        R                  R	                  X5      nUR
                  US   :X  d   eUR                  US   :X  d   eUR                  US   :X  d   eUR                  [        R                  :X  d   eUR                  U:X  d   eSUS'   [        R                  R	                  U5      nUR                  US   /:X  d   eSS/US'   [        R                  R	                  U5      nUR                  US   :X  d   e[        R                  " SSS	S
SS5      nUR                  5       S-   US'   [        R                  R	                  U5      nUR                  U:X  d   eUR                  (       d   eg )Nr   r   r   rH   rI   rO              6      Zr@   )r   r   r   r   r   r   r   r   r   r   rO   ro   	isoformatr@   r"   )r(   r   rS   rO   r@   s        r   test_from_authorized_user_info.TestCredentials.test_from_authorized_user_infoJ  s   ""$''AA$G""d?&;;;;${"3333""d?&;;;;+"K"KKKK||###9%''AA$O""d?&;;;;${"3333""d?&;;;;+"K"KKKK||v%%% X''AA$G||X////!9-X''AA$G||tH~---""4BB:))+c1X''AA$G||v%%%}}}r   c                    [         R                  5       n[        R                  R	                  [
        5      nUR                  US   :X  d   eUR                  US   :X  d   eUR                  US   :X  d   eUR                  [        R                  :X  d   eUR                  b   eUR                  b   eSS/n[        R                  R	                  [
        U5      nUR                  US   :X  d   eUR                  US   :X  d   eUR                  US   :X  d   eUR                  [        R                  :X  d   eUR                  U:X  d   eg )Nr   r   r   rH   rI   )r   r   r   r   from_authorized_user_fileAUTH_USER_JSON_FILEr   r   r   r   r   rO   r   )r(   r   rS   rO   s       r   test_from_authorized_user_file.TestCredentials.test_from_authorized_user_filej  sD   ""$''AABUV""d?&;;;;${"3333""d?&;;;;+"K"KKKK||###'''9%''AA
 ""d?&;;;;${"3333""d?&;;;;+"K"KKKK||v%%%r   c                    [         R                  5       n[        R                  R	                  [
        S5      n[        R                  R                  U5      nUR                  US   :X  d   eUR                  US   :X  d   eUR                  US   :X  d   eUR                  [        R                  :X  d   eUR                  b   eUR                  S:X  d   eg )Nz$authorized_user_with_rapt_token.jsonr   r   r   rapt)r   r   ospathr   DATA_DIRr   r   r   r   r   r   r   r   rO   r   )r(   r   	file_pathrS   s       r   .test_from_authorized_user_file_with_rapt_token>TestCredentials.test_from_authorized_user_file_with_rapt_token  s    ""$GGLL+QR	''AA)L""d?&;;;;${"3333""d?&;;;;+"K"KKKK||###6)))r   c                    [         R                  5       n[        R                  " SSSSSS5      nUR                  5       S-   US'   [        R
                  R                  U5      nUR                  U:X  d   eUR                  5       n[        R                  " U5      nUR                  S	5      UR                  :X  d   eUR                  S
5      UR                  :X  d   eUR                  S5      UR                  :X  d   eUR                  S5      UR                  :X  d   eUR                  S5      UR                   :X  d   eUR                  S5      UR"                  :X  d   eUR                  S5      US   :X  d   eUR                  S5      UR$                  :X  d   eUR                  S5      UR&                  :X  d   eUR                  S/S9n[        R                  " U5      nUR                  S	5      UR                  :X  d   eUR                  S
5      UR                  :X  d   eUR                  S5      UR                  :X  d   eUR                  S5      UR                  :X  d   eUR                  S5      UR                   :X  d   eUR                  S5      b   eS Ul        UR                  5       n[        R                  " U5      nUR                  S5      b   eg )Nr   r   r   r   r   r   r   r@   r   r   r   r   rO   r   ra   r   )strip)r   r   ro   r   r   r   r   r@   to_jsonjsonloadsgetr   r   r   r   rO   r   ra   r   )r(   r   r@   rS   json_outputjson_asdicts         r   test_to_jsonTestCredentials.test_to_json  sv   ""$""4BB:))+c1X''AA$G||v%%% mmojj-w'5;;666/53F3FFFF{+u>>>{+u>>>x(ELL888/53F3FFFFx(DN:::01U5J5JJJJy)U]]::: mm?*;m<jj-w'5;;666/53F3FFFF{+u>>>{+u>>>x(ELL888/777 mmojj-x(000r   c                    U R                  5       n[        R                  " [        R                  " U5      5      n[	        UR
                  5      R                  5       [	        UR
                  5      R                  5       :X  d   e[	        UR
                  5       H3  nUS:X  a  [        X#5      b   eM  [        X5      [        X#5      :X  a  M3   e   g )N_refresh_worker)r   pickler  dumpslist__dict__sortgetattr)r(   rS   	unpickledattrs       r   test_pickle_and_unpickle(TestCredentials.test_pickle_and_unpickle  s    %%'LLe!45	 ENN#((*d93E3E.F.K.K.MMMM(D((y/777u+wy/GGGG )r   c                     U R                  5       nU?[        R                  " [        R                  " U5      5      nUR
                  S:X  d   eg )Nr   )r   _universe_domainr	  r  r
  ra   r(   rS   r  s      r   (test_pickle_and_unpickle_universe_domain8TestCredentials.test_pickle_and_unpickle_universe_domain  sF     %%'"LLe!45	 ((,<<<<r   c           
      D   [         R                  " 5       [        R                  " SS9-   n[        R
                  " SU4S9n[        R                  " S S S S S S US9n[        R                  " [        R                  " U5      5      n[        UR                  5      R                  5       [        UR                  5      R                  5       :X  d   e[        UR                  5       H9  nUS:X  d  US:X  a  [        XE5      b   eM  [        X55      [        XE5      :X  a  M9   e   g )Nr   rk   r   rK   r   _refresh_handlerr  )r   rn   ro   rp   rB   rC   r   r   r	  r  r
  r  r  r  r  )r(   r   r&   rS   r  r  s         r   -test_pickle_and_unpickle_with_refresh_handler=TestCredentials.test_pickle_and_unpickle_with_refresh_handler  s    "//+h.@.@.NN))'?1KL''+
 LLe!45	 ENN#((*d93E3E.F.K.K.MMMM(D ))T5F-Fy/777u+wy/GGGG )r   c                     U R                  5       nUR                  S	 UR                  S	 UR                  S	 [        R                  " [        R                  " U5      5      nUR
                  b   eg )N_quota_project_idr  r  )r   r  r	  r  r
  r   r  s      r   "test_pickle_with_missing_attribute2TestCredentials.test_pickle_with_missing_attribute  sd    %%'
 NN./NN-.NN,-LLe!45	 ))111r   )      z1pickle file can only be loaded with Python >= 3.5)reasonc                     [        [        R                  R                  [        S5      S5       n[
        R                  " U5      nUR                  b   e S S S 5        g ! , (       d  f       g = f)Nz old_oauth_credentials_py3.picklerb)openr   r   r   r   r	  loadr   )r(   fr   s      r   $test_unpickle_old_credentials_pickle4TestCredentials.test_unpickle_old_credentials_pickle  sS     GGLL#EF
 ++a.K//777	
 
 
s   &A
A- N);__name__
__module____qualname____firstlineno__r   r   r   r   r   classmethodr   r)   r4   r7   r<   rE   rT   r]   rd   rB   patchro   r   r   r   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  rW   markskipifsysversion_infor(  __static_attributes__r*  r   r   r   r   '   s   2I#MJI#M	
 	
3 


<=-4X"	
 
ZZ4tD	ZZ%&&**X-G-GG,!	 E
,!\$ 
ZZ4tD	ZZ%&&**X-G-GG;,	 E
;,z 
ZZ-H<M<M<Q<QRC SC6 
ZZ-H<M<M<Q<QRK SK@ 
ZZ-H<M<M<Q<QRC SC<C: 
ZZ-H<M<M<Q<QRC SC8 
ZZ4tD	ZZ%&&**X-G-GG<	 E
<| 
ZZ4tD	ZZ%&&**X-G-GG:	 E
:x 
ZZ4tD	ZZ%&&**X-G-GG:	 E
:x 
ZZ4tD	ZZ%&&**X-G-GG:	 E
:x 
ZZ4tD	ZZ%&&**X-G-GG>	 E
>@330 A7
D@&*
*"1HH	=H42  [[6!B  8	8r   r   c                       \ rS rSrS r\R                  " SSS9S 5       rS r\R                  " SSS9\R                  " S	SS9S
 5       5       r	Sr
g)TestUserAccessTokenCredentialsi   c                     [         R                  " [        SS9   [        R                  " 5       nUR
                  b   eUR                  S5      nUR
                  S:X  d   e S S S 5        g ! , (       d  f       g = f)N(UserAccessTokenCredentials is deprecatedr|   r   )rW   warnsUserWarningr   UserAccessTokenCredentialsr1   r   )r(   creds     r   test_instance,TestUserAccessTokenCredentials.test_instance  sf    \\I
 99;D==((($$Y/D==I---
 
 
s   AA,,
A:z,google.auth._cloud_sdk.get_auth_access_tokenTrf   c                     [         R                  " [        SS9   SUl        [        R
                  " 5       nUR                  S 5        UR                  S:X  d   e S S S 5        g ! , (       d  f       g = f)Nr9  r|   access_token)rW   r:  r;  rL   r   r<  rc   r   )r(   get_auth_access_tokenr=  s      r   test_refresh+TestUserAccessTokenCredentials.test_refresh  s\    \\I
 2@!.99;DLL::///
 
 
s   A A$$
A2c                    [         R                  " [        SS9   [        R                  " 5       nUR                  S5      nUR                  S:X  d   eUR                  UR                  :X  d   e S S S 5        g ! , (       d  f       g = f)Nr9  r|   zproject-foo)rW   r:  r;  r   r<  r   r  r1   )r(   r=  quota_project_creds      r   r   6TestUserAccessTokenCredentials.test_with_quota_project  sq    \\I
 99;D!%!8!8!G%77=HHH%..$--???
 
 
s   AA99
Bz:google.oauth2.credentials.UserAccessTokenCredentials.applyz<google.oauth2.credentials.UserAccessTokenCredentials.refreshc                 "   [         R                  " [        SS9   [        R                  " 5       nUR                  [        R                  " 5       SS0 5        UR                  5         UR                  5         S S S 5        g ! , (       d  f       g = f)Nr9  r|   GETzhttps://example.com)	rW   r:  r;  r   r<  rA   rB   rC   assert_called)r(   rc   r   r=  s       r   test_before_request2TestUserAccessTokenCredentials.test_before_request  si     \\I
 99;D		U4I2N!!#!
 
 
s   AB  
Br*  N)r+  r,  r-  r.  r>  rB   r0  rC  r   rK  r5  r*  r   r   r7  r7     si    . 
ZZ>N0 O0@ 
ZZDt 
ZZFQU""r   r7  )ro   r   r   r	  r3  rB   rW   google.authr   r   r   google.auth.credentialsr   google.oauth2r   r   r   dirname__file__r   r   r%  fhr&  r   rZ   r   r7  r*  r   r   <module>rS     s      	  
     " ! . % 77<<14@ggll8-CD 	
s#rYYr]N $V8f V8r,"V ,"{ $#s   C
C