
έΔγWJ%  c               @   s7  d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l m Z d  d l m Z y d  d l	 m
 Z
 Wn" e k
 r d  d l m
 Z
 Yn Xd  d l m Z d  d l m Z m Z d  d l m Z d  d	 l m Z m Z d  d
 l m Z m Z d  d l m Z m Z e j   Z d d   Z Gd d   d e
  Z d S(   i    (   u   unicode_literalsN(   u	   b64encode(   u   deepcopy(   u   TestCase(   u	   urlencode(   u   TokenExpiredErroru   OAuth2Error(   u   MismatchingStateError(   u   WebApplicationClientu   MobileApplicationClient(   u   LegacyApplicationClientu   BackendApplicationClient(   u   OAuth2Sessionu   TokenUpdatedc                s     f d d   } | S(   Nc                s"   t  j   } t j    | _ | S(   N(   u   mocku	   MagicMocku   jsonu   dumpsu   text(   u   ru   kwargsu   resp(   u   token(    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu	   fake_send   s    u   fake_token.<locals>.fake_send(    (   u   tokenu	   fake_send(    (   u   tokenuX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu
   fake_token   s    u
   fake_tokenc             B   s  |  Ee  Z d  Z d d   Z d d   Z d d   Z e j d d d	 d
   d d    Z e j d d d d
   d d    Z	 e j d d d d
   d d    Z
 d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z e j d d d d
   d  d!    Z d" S(#   u   OAuth2SessionTestc                s³   t    d  s'   f d d     _ n  i d d 6d d 6d d	 6d
 d 6t d d 6  _ d   _ t   j d d t   j  t   j  g   _   j t	   j  g   _
 d  S(   Nu   assertInc                s     j  |  | k  S(   N(   u
   assertTrue(   u   au   b(   u   self(    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   <lambda>%   s    u)   OAuth2SessionTest.setUp.<locals>.<lambda>u   Beareru
   token_typeu   asdfoiw37850234lkjsdfsdfu   access_tokenu   sldvafkjw34509s8dfsdfu   refresh_tokenu   3600u
   expires_ini  u
   expires_atu   foou   codeu
   asdf345xdf(   u   hasattru   assertInu	   fake_timeu   tokenu	   client_idu   WebApplicationClientu   LegacyApplicationClientu   BackendApplicationClientu   clientsu   MobileApplicationClientu   all_clients(   u   self(    (   u   selfuX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   setUp"   s    	u   OAuth2SessionTest.setUpc                sl   d   j  d     f d d   } x?   j D]4 } t d | d   j   } | | _ | j d  q0 Wd  S(   Nu   Bearer u   access_tokenc                so   |  j  j d d   } d j d  |  j  k rF |  j  d j d  } n    j |   t j   } g  | _ | S(   Nu   Authorizationu   utf-8(   u   headersu   getu   Noneu   encodeu   assertEqualu   mocku	   MagicMocku   cookes(   u   ru   kwargsu   auth_headeru   resp(   u   selfu   token(    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   verifier9   s    	u2   OAuth2SessionTest.test_add_token.<locals>.verifieru   clientu   tokenu   https://i.b(   u   tokenu   all_clientsu   OAuth2Sessionu   sendu   get(   u   selfu   verifieru   clientu   auth(    (   u   selfu   tokenuX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   test_add_token6   s    		u    OAuth2SessionTest.test_add_tokenc             C   sΦ   d } t  |  j  } t d |  } | j |  \ } } |  j | |  |  j |  j |  |  j d |  t |  j  } t d |  } | j |  \ } } |  j | |  |  j |  j |  |  j d |  d  S(   Nu%   https://example.com/authorize?foo=baru   clientu   response_type=codeu   response_type=token(   u   WebApplicationClientu	   client_idu   OAuth2Sessionu   authorization_urlu   assertInu   MobileApplicationClient(   u   selfu   urlu   webu   su   auth_urlu   stateu   mobile(    (    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   test_authorization_urlG   s    u(   OAuth2SessionTest.test_authorization_urlu	   time.timeu   newc               C   s   t  S(   N(   u	   fake_time(    (    (    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   <lambda>X   s    u   OAuth2SessionTest.<lambda>c          
      s  t    j    _ d   j d <  j d =  f d d   } x?   j D]4 } t d | d   j  }   j t | j d  qE WxN   j D]C } t d | d   j d	 d
  } | | _   j t	 | j d  q W  f d d   } xK   j D]@ } t d | d   j d	 d
 d |  } | | _ | j d  qκ W  f d d   } xW   j D]L } t d | d   j d	 d
 d |  } | | _ | j d d d d d qJWd  S(   Nu   -1u
   expires_inu
   expires_atc                sJ   d |  j  k r%   j d |  j  n  t j   } t j   j  | _ | S(   Nu   /refreshu   Authorization(	   u   urlu   assertNotInu   headersu   mocku	   MagicMocku   jsonu   dumpsu   tokenu   text(   u   ru   kwargsu   resp(   u   self(    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   fake_refresh^   s
    uB   OAuth2SessionTest.test_refresh_token_request.<locals>.fake_refreshu   clientu   tokenu   https://i.bu   auto_refresh_urlu   https://i.b/refreshc                s     j  |    j  d  S(   N(   u   assertEqualu   token(   u   token(   u   self(    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   token_updaterr   s    uC   OAuth2SessionTest.test_refresh_token_request.<locals>.token_updateru   token_updaterc                s   d |  j  k r[   j d |  j  t d  } d | j d  }   j |  j d |  n  t j   } t j	   j
  | _ | S(   Nu   /refreshu   Authorizations   foo:bars   Basic u   latin1(   u   urlu   assertInu   headersu	   b64encodeu   decodeu   assertEqualu   mocku	   MagicMocku   jsonu   dumpsu   tokenu   text(   u   ru   kwargsu   encodedu   contentu   resp(   u   self(    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   fake_refresh_with_auth|   s    uL   OAuth2SessionTest.test_refresh_token_request.<locals>.fake_refresh_with_authu	   client_idu   foou   client_secretu   bar(
   u   dictu   tokenu   expired_tokenu   clientsu   OAuth2Sessionu   assertRaisesu   TokenExpiredErroru   getu   sendu   TokenUpdated(   u   selfu   fake_refreshu   clientu   authu   token_updateru   fake_refresh_with_auth(    (   u   selfuX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   test_refresh_token_requestX   s4    
				
		u,   OAuth2SessionTest.test_refresh_token_requestc               C   s   t  S(   N(   u	   fake_time(    (    (    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   <lambda>   s    c             C   sW   t  |  j  } d t |  j j    } t d |  } |  j | j |  |  j  d  S(   Nu   https://i.b/callback#u   client(   u   MobileApplicationClientu	   client_idu	   urlencodeu   tokenu   itemsu   OAuth2Sessionu   assertEqualu   token_from_fragment(   u   selfu   mobileu   response_urlu   auth(    (    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   test_token_from_fragment   s    u*   OAuth2SessionTest.test_token_from_fragmentc               C   s   t  S(   N(   u	   fake_time(    (    (    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   <lambda>   s    c             C   sΒ   d } xW |  j  D]L } t d | d |  j  } t |  j  | _ |  j | j |  |  j  q Wi d d 6} xN |  j  D]C } t d | d |  j  } t |  | _ |  j t | j |  qw Wd  S(   Nu   https://example.com/tokenu   clientu   tokenu   invalid_requestu   error(	   u   clientsu   OAuth2Sessionu   tokenu
   fake_tokenu   sendu   assertEqualu   fetch_tokenu   assertRaisesu   OAuth2Error(   u   selfu   urlu   clientu   authu   error(    (    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   test_fetch_token   s     u"   OAuth2SessionTest.test_fetch_tokenc                sΙ   t  |  j  } t j   d } t j     | |  j d <  d | d <d } t j d   f d d    Y xQ |  j D]F } t d | d	 |  j  } t |  | _ |  j	 | j
 |  |  qu WWd
 QXd
 S(   u   Makes sure the previous token is cleaned before fetching a new one.

        The reason behind it is that, if the previous token is expired, this
        method shouldn't fail with a TokenExpiredError, since it's attempting
        to get a new one (which shouldn't be expired).

        i   u
   expires_ati  u   https://example.com/tokenu	   time.timec                  s     S(   N(    (    (   u   now(    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   <lambda>²   s    uV   OAuth2SessionTest.test_cleans_previous_token_before_fetching_new_one.<locals>.<lambda>u   clientu   tokenN(   u   deepcopyu   tokenu   timeu   mocku   patchu   clientsu   OAuth2Sessionu
   fake_tokenu   sendu   assertEqualu   fetch_token(   u   selfu	   new_tokenu   pastu   urlu   clientu   auth(    (   u   nowuX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu2   test_cleans_previous_token_before_fetching_new_one£   s    uD   OAuth2SessionTest.test_cleans_previous_token_before_fetching_new_onec             C   s2   t  d d d } |  j t | j d d d d  S(   Nu   foou   stateu	   somestateu   https://i.b/tokenu   authorization_responseu   https://i.b/no-state?code=abc(   u   OAuth2Sessionu   assertRaisesu   MismatchingStateErroru   fetch_token(   u   selfu   client(    (    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   test_web_app_fetch_tokenΉ   s    u*   OAuth2SessionTest.test_web_app_fetch_tokenc             C   st   t  d  } |  j | j d  d | _ |  j | j d  d | j _ |  j | j d  | ` |  j | j  d  S(   Nu   test-idu   different-idu   something-else(   u   OAuth2Sessionu   assertEqualu	   client_idu   _clientu   assertIsNone(   u   selfu   sess(    (    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   test_client_id_proxyΐ   s    	u&   OAuth2SessionTest.test_client_id_proxyc             C   sq   t  d  } |  j | j  d | _ |  j | j d  d | j _ |  j | j d  | ` |  j | j  d  S(   Nu   test-idu
   test-tokenu   different-token(   u   OAuth2Sessionu   assertIsNoneu   access_tokenu   assertEqualu   _client(   u   selfu   sess(    (    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   test_access_token_proxyΚ   s    	u)   OAuth2SessionTest.test_access_token_proxyc             C   sΪ   i d d 6} t  d d | } |  j | j d  |  j | j |  d | d <| | _ |  j | j d  |  j | j |  d | j _ d | d <|  j | j d  |  j | j |  |  j t   | ` Wd  QXd  S(   Nu   test-accessu   access_tokenu   test-idu   tokenu   something-elseu   different-token(   u   OAuth2Sessionu   assertEqualu   access_tokenu   tokenu   _clientu   assertRaisesu   AttributeError(   u   selfu   tokenu   sess(    (    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   test_token_proxyΤ   s    

	
u"   OAuth2SessionTest.test_token_proxyc             C   s    t  d  } |  j | j  d  S(   Nu   foo(   u   OAuth2Sessionu   assertFalseu
   authorized(   u   selfu   sess(    (    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   test_authorized_falseη   s    u'   OAuth2SessionTest.test_authorized_falsec               C   s   t  S(   N(   u	   fake_time(    (    (    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   <lambda>λ   s    c             C   sx   d d   } d } x_ |  j  D]T } t d |  } | |  j  | _ |  j | j  | j |  |  j | j  q Wd  S(   Nc                s     f d d   } | S(   Nc                s"   t  j   } t j    | _ | S(   N(   u   mocku	   MagicMocku   jsonu   dumpsu   text(   u   ru   kwargsu   resp(   u   token(    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu	   fake_sendξ   s    uM   OAuth2SessionTest.test_authorized_true.<locals>.fake_token.<locals>.fake_send(    (   u   tokenu	   fake_send(    (   u   tokenuX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu
   fake_tokenν   s    u:   OAuth2SessionTest.test_authorized_true.<locals>.fake_tokenu   https://example.com/tokenu   client(   u   clientsu   OAuth2Sessionu   tokenu   sendu   assertFalseu
   authorizedu   fetch_tokenu
   assertTrue(   u   selfu
   fake_tokenu   urlu   clientu   sess(    (    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   test_authorized_trueλ   s    u&   OAuth2SessionTest.test_authorized_trueN(   u   __name__u
   __module__u   __qualname__u   setUpu   test_add_tokenu   test_authorization_urlu   mocku   patchu   test_refresh_token_requestu   test_token_from_fragmentu   test_fetch_tokenu2   test_cleans_previous_token_before_fetching_new_oneu   test_web_app_fetch_tokenu   test_client_id_proxyu   test_access_token_proxyu   test_token_proxyu   test_authorized_falseu   test_authorized_true(   u
   __locals__(    (    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   OAuth2SessionTest    s   '5''

u   OAuth2SessionTest(   u
   __future__u   unicode_literalsu   jsonu   mocku   timeu   base64u	   b64encodeu   copyu   deepcopyu	   unittest2u   TestCaseu   ImportErroru   unittestu   oauthlib.commonu	   urlencodeu   oauthlib.oauth2u   TokenExpiredErroru   OAuth2Erroru   MismatchingStateErroru   WebApplicationClientu   MobileApplicationClientu   LegacyApplicationClientu   BackendApplicationClientu   requests_oauthlibu   OAuth2Sessionu   TokenUpdatedu	   fake_timeu
   fake_tokenu   OAuth2SessionTest(    (    (    uX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyu   <module>   s$   