
    "                     |   S 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  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  S r\" \S\	R,                  5        S r\" \SS5        \\R0                  " SSSS.5      4r " S S\R4                  5      r " S S\R8                  5      rg)zTests for the reauth module.    N)patch)http_client)urllib)client)reauth)errors)reauth_creds)_reauth_client)Oauth2WithReauthCredentialsc                      g N r       Kplatform/gsutil/third_party/google-reauth-python/tests/test_reauth_creds.py<lambda>r   '   s    tr   statusc                      g r   r   r   r   r   r   r   *   s    $r   new_access_tokennew_refresh_tokeni  )access_tokenrefresh_token
expires_inc                   &    \ rS rSrS rS rS rSrg)	MockStore4   c                     S U l         g r   credentialsselfs    r   __init__MockStore.__init__5   s
    r   c                     Xl         g r   r   )r    r   s     r   
locked_putMockStore.locked_put8   s    &r   c                     U R                   $ r   r   r   s    r   
locked_getMockStore.locked_get;   s    r   r   N)__name__
__module____qualname____firstlineno__r!   r$   r'   __static_attributes__r   r   r   r   r   4   s     ' r   r   c                       \ rS rSrSrS r\" S5      S 5       rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rSrg)ReauthCredsTest?   z;This class contains tests for Oauth2WithReauthCredentials. c                     [         R                  " U0 UD6nU R                  UR                  5        UR	                  5       $ r   )mockr   
addCleanupstopstart)r    argskwargspatchers       r   
StartPatchReauthCredsTest.StartPatchB   s1    **d-f-%}}r   #google_reauth.reauth.get_rapt_tokenc                     g)N
rapt_tokenr   r    r6   r7   s      r   get_rapt_tokenReauthCredsTest.get_rapt_tokenG   s    r   c                 b    U R                  S5      nXl        U R                  S5      nX#l        U$ )Nzhttplib2.Http.requestzhttplib2.Http)r9   side_effectrequest)r    request_side_effectrequest_mock	http_mocks       r   
_http_mockReauthCredsTest._http_mockK   s1    '>?#6 OOO4	(r   c                     U R                  5       n[        5       nUR                  U5        UR                  U5        U R	                  XgX#XE5        g r   )
_get_credsr   	set_store_do_refresh_request_check_credentials)r    rF   r   r   token_expiryinvalidcredsstores           r   _run_refresh_test!ReauthCredsTest._run_refresh_testR   sD    !!!),l ,	7r   c                 R    [        SSSS[        R                  " SSSSS	S
5      SSS9$ )N	old_tokenidsecretold_refresh_token                 	token_uri
user_agentr   	client_idclient_secretr   rN   r_   r`   )r   datetimer   s    r   rJ   ReauthCredsTest._get_creds\   s7    *$H-!**4Ar2rB!#% 	%r   c                    U(       a  UR                  5       OUnU R                  X1R                  5        U R                  X7R                  5        U R                  XAR                  5        U R                  XGR                  5        U R                  XQR                  5        U R                  XWR                  5        U R                  XaR
                  5        U R                  XgR
                  5        g r   )r'   assertEqualr   r   rN   rO   )r    rP   rQ   r   r   rN   rO   stored_credss           r   rM   "ReauthCredsTest._check_credentialsd   s    -2u'')'9'9:'@'@A(;(;<(B(BC'9'9:'@'@A--0"6"67r   c                     U R                  S5      nSUl        U R                  S5      n[        R                  " SSSSSS	5      Ul        g )
Nr;   r=   zoauth2client.client._UTCNOWrY   rZ   r[   r\   r]   r^   )r9   return_valuerd   )r    get_raptcurrent_datetimes      r   setUpReauthCredsTest.setUpy   sG    ??#HI*??+HI(0(9(9$1b"b(Q%r   c           
          [         R                  " SSSSSSSS9n[        R                  " U5      nU R	                  S	UR
                  R                  5        U R	                  SUR                  5        U R	                  SUR                  5        g )
Natcicsrttetuuara   r   )	r   OAuth2Credentialsr   from_OAuth2Credentialsrg   	__class__r)   rb   rc   )r    origcreds      r   testFromOAuth2Credentials)ReauthCredsTest.testFromOAuth2Credentials   sz    ''TTT +AA$G68O8OPt~~.t112r   c                 r   [         R                  " [        R                  " SSSSSSSSS	.5      5      nU R	                  S UR
                  5        [         R                  " [        R                  " SSSSS
SSSS	.5      5      nU R	                  [        R                  " SSSSSS5      UR
                  5        g )Nr   rb   rc   r   foor_   r`   F)r   rb   rc   r   rN   r_   r`   rO   z2018-03-02T21:26:13ZrY   rZ   r[   r\   r]   r^   )r   	from_jsonjsondumpsrg   rN   rd   )r    r|   s     r   testTokenExpiryFromJson'ReauthCredsTest.testTokenExpiryFromJson   s    *44TZZ*$,,!$&A 6   	t001*44TZZ*$,,2$&A 6   	**4Ar2rB**	,r   c                     S nU R                  U R                  U5      SS[        R                  " SSSSSS	5      S
5        g )Nc                     [         $ r   _token_responser>   s      r   rD   HReauthCredsTest.testRefreshNoReauthRequired.<locals>.request_side_effect       ""r   r   r   rY   rZ   r[      r]   r^   F)rR   rG   rd   r    rD   s     r   testRefreshNoReauthRequired+ReauthCredsTest.testRefreshNoReauthRequired   sE    	# 	OO/0dAq"b"5	r   c                    ^ [         [        [        R                  " SSS.5      4/mU4S jnU R	                  U R                  U5      SS[        R                  " SSS	S
SS5      S5        g )Ninvalid_grantrapt_requirederrorerror_subtypec                 $   > TR                  5       $ r   popr    r6   r7   	responsess      r   rD   FReauthCredsTest.testRefreshReauthRequired.<locals>.request_side_effect       ==?"r   r   r   rY   rZ   r[   r   r]   r^   F)r   _error_responser   r   rR   rG   rd   )r    rD   r   s     @r   testRefreshReauthRequired)ReauthCredsTest.testRefreshReauthRequired   sn    djj(!0*2 3 45	
	# 	OO/0dAq"b"5	r   c                   ^ [         [        R                  " SSS.5      4[         [        R                  " SSS.5      4/mU4S jnU R                  5       n[	        5       nUR                  U5        U R                  [        R                  5         UR                  U R                  U5      5        S S S 5        U R                  X#SS[        R                  " SSS	S
SS5      S5        g ! , (       d  f       N== f)Nr   r   r   c                 $   > TR                  5       $ r   r   r   s      r   rD   <ReauthCredsTest.testInvalidRapt.<locals>.request_side_effect   r   r   rU   rX   rY   rZ   r[   r\   r]   r^   T)r   r   r   rJ   r   rK   assertRaisesr   HttpAccessTokenRefreshErrorrL   rG   rM   rd   )r    rD   rP   rQ   r   s       @r   testInvalidRaptReauthCredsTest.testInvalidRapt   s    djj(!0*2 3 4 djj(!0*2 3 4	5		# !vAAB%%doo6I&JK C 	dAq"b"5	 CBs   !C((
C6c                     S nU R                  5       n[        5       nUR                  U5        UR                  U R	                  U5      5        U R                  X#SS[        R                  " SSSSSS	5      S
5        g )Nc                     [         $ r   r   r>   s      r   rD   AReauthCredsTest.testRefreshWithStore.<locals>.request_side_effect   r   r   r   r   rY   rZ   r[   r   r]   r^   F)rJ   r   rK   rL   rG   rM   rd   )r    rD   rP   rQ   s       r   testRefreshWithStore$ReauthCredsTest.testRefreshWithStore   sr    	# !!!$//2E"FG





D!QB
3
	r   c                     S nU R                  5       nUR                  U R                  U5      5        U R                  US SS[        R                  " SSSSSS	5      S
5        g )Nc                     [         $ r   r   r>   s      r   rD   ?ReauthCredsTest.testRefreshNoStore.<locals>.request_side_effect   r   r   r   r   rY   rZ   r[   r   r]   r^   F)rJ   rL   rG   rM   rd   )r    rD   rP   s      r   testRefreshNoStore"ReauthCredsTest.testRefreshNoStore   sa    	# !!!$//2E"FG4dAq"b"5	r   c                 R    S nU R                  U R                  U5      SSS S5        g )Nc                 @    [         [        R                  " SSS.5      4$ )Nr   r   )r   r   )_ok_responser   r   r>   s      r   rD   @ReauthCredsTest.testRefreshNoExpiry.<locals>.request_side_effect   s&    

%7&9;<= =r   r   r   F)rR   rG   r   s     r   testRefreshNoExpiry#ReauthCredsTest.testRefreshNoExpiry   s0    	= 	OO/0	r   r   N)r)   r*   r+   r,   __doc__r9   r   r?   rG   rR   rJ   rM   rn   r}   r   r   r   r   r   r   r   r-   r   r   r   r/   r/   ?   sf    E
 01 27%8*R3,.	 2"r   r/   )r   base64rd   r   osunittestr2   r   	six.movesr   r   oauth2clientr   google_reauthr   r   r	   r
   google_reauth.reauth_credsr   r   setattrOKr   r   r   Storager   TestCaser/   r   r   r   <module>r      s    #    	    !        & ( B  h / 4 ( JJ+>Q	 !"   Ah'' Ar   