ó
'CRc           @  s×   d  d l  m Z d  d l Z d  d l j j Z d  d l Z d  d l	 Z	 d  d l
 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 d  d l m Z m Z d e
 j f d	 „  ƒ  YZ d S(
   iÿÿÿÿ(   t   unicode_literalsN(   t	   urlencode(   t   TokenExpiredErrort   InvalidRequestError(   t   WebApplicationClientt   MobileApplicationClient(   t   LegacyApplicationClientt   BackendApplicationClient(   t   OAuth2Sessiont   TokenUpdatedt   OAuth2SessionTestc           B  s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c           s¥   t  ˆ  d ƒ s$ ‡  f d †  ˆ  _ n  i d d 6d d 6d d 6d	 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(   t
   assertTrue(   t   at   b(   t   self(    sX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyt   <lambda>   s    u   Beareru
   token_typeu   asdfoiw37850234lkjsdfsdfu   access_tokenu   sldvafkjw34509s8dfsdfu   refresh_tokenu   3600u
   expires_inu   foot   codeu
   asdf345xdf(
   t   hasattrt   assertInt   tokent	   client_idR   R   R   t   clientsR   t   all_clients(   R   (    (   R   sX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyt   setUp   s    	c           si   d ˆ  j  d ‰ ‡  ‡ f d †  } x? ˆ  j D]4 } t d | d ˆ  j  ƒ } | | _ | j d ƒ q- 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(   t   headerst   gett   Nonet   encodet   assertEqualt   mockt	   MagicMockt   cookes(   t   rt   kwargst   auth_headert   resp(   R   R   (    sX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyt   verifier%   s    	t   clientR   u   https://i.b(   R   R   R   t   sendR   (   R   R$   R%   t   auth(    (   R   R   sX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyt   test_add_token"   s    		c         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=barR%   u   response_type=codeu   response_type=token(   R   R   R   t   authorization_urlR   R   (   R   t   urlt   webt   st   auth_urlt   statet   mobile(    (    sX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyt   test_authorization_url3   s    c      
     s"  t  ˆ  j ƒ ˆ  _ d ˆ  j d <‡  f d †  } x? ˆ  j D]4 } t d | d ˆ  j ƒ } ˆ  j t | j d ƒ q8 WxN ˆ  j D]C } t d | d ˆ  j d d ƒ } | | _ ˆ  j t	 | j d ƒ qz W‡  f d	 †  } xK ˆ  j D]@ } t d | d ˆ  j d d d
 | ƒ } | | _ | j d ƒ qÚ Wd  S(   Nu   -1u
   expires_inc           s%   t  j ƒ  } t j ˆ  j ƒ | _ | S(   N(   R   R   t   jsont   dumpsR   t   text(   R    R!   R#   (   R   (    sX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyt   fake_refreshH   s    R%   R   u   https://i.bt   auto_refresh_urlu   https://i.b/refreshc           s   ˆ  j  |  ˆ  j ƒ d  S(   N(   R   R   (   R   (   R   (    sX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyt   token_updaterZ   s    R6   (
   t   dictR   t   expired_tokenR   R   t   assertRaisesR   R   R&   R	   (   R   R4   R%   R'   R6   (    (   R   sX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyt   test_refresh_token_requestD   s$    				c         C  sW   t  |  j ƒ } d t |  j j ƒ  ƒ } t d | ƒ } |  j | j | ƒ |  j ƒ d  S(   Nu   https://i.b/callback#R%   (   R   R   R   R   t   itemsR   R   t   token_from_fragment(   R   R/   t   response_urlR'   (    (    sX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyt   test_token_from_fragmentd   s    c         C  sË   d „  } d } xW |  j  D]L } t d | d |  j ƒ } | |  j ƒ | _ |  j | j | ƒ |  j ƒ q Wi d d 6} xN |  j  D]C } t d | d |  j ƒ } | | ƒ | _ |  j t | j | ƒ q€ Wd  S(   Nc           s   ‡  f d †  } | S(   Nc           s"   t  j ƒ  } t j ˆ  ƒ | _ | S(   N(   R   R   R1   R2   R3   (   R    R!   R#   (   R   (    sX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyt	   fake_sendl   s    (    (   R   R?   (    (   R   sX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyt
   fake_tokenk   s    u   https://example.com/tokenR%   R   u   invalid_requestu   error(   R   R   R   R&   R   t   fetch_tokenR9   R   (   R   R@   R*   R%   R'   t   error(    (    sX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyt   test_fetch_tokenj   s    	 (   t   __name__t
   __module__R   R(   R0   R:   R>   RC   (    (    (    sX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyR
      s   				 	(   t
   __future__R    t   __builtin__t   @py_builtinst   _pytest.assertion.rewritet	   assertiont   rewritet
   @pytest_arR1   R   t   unittestt   oauthlib.commonR   t   oauthlib.oauth2R   R   R   R   R   R   t   requests_oauthlibR   R	   t   TestCaseR
   (    (    (    sX   /Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_oauth2_session.pyt   <module>   s     