ó
ŽpYWc           @  s‚  d  d l  m Z y d  d l m Z Wn! e k
 rG d  d l m Z n Xd  d l Z d  d l Z d  d l Z y d  d l	 m	 Z	 m
 Z
 Wn' e k
 r¯ d  d l m	 Z	 m
 Z
 n Xd  d l m Z d  d l m Z d  d l m Z d  d l m Z d  d	 l m Z d  d
 l m Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   unicode_literals(   t   TestCaseN(   t   urlparset   parse_qs(   t   OAuth2Session(   t   facebook_compliance_fix(   t   linkedin_compliance_fix(   t   mailchimp_compliance_fix(   t   weibo_compliance_fix(   t   slack_compliance_fixt   FacebookComplianceFixTestc           B  s   e  Z d  „  Z d „  Z RS(   c         C  sk   t  j ƒ  } | j d d d d i d d 6ƒ| j ƒ  |  j | j ƒ t d d d	 ƒ} t | ƒ |  _ d  S(
   Nu-   https://graph.facebook.com/oauth/access_tokent   textu   access_token=urlencodedt   headersu
   text/plainu   Content-Typeu   foot   redirect_uriu   https://i.b(	   t   requests_mockt   Mockert   postt   startt
   addCleanupt   stopR   R   t   session(   t   selft   mockert   facebook(    (    sM   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_compliance_fixes.pyt   setUp   s    
c         C  s@   |  j  j d d d d d ƒ} |  j | i d d 6d d	 6ƒ d  S(
   Nu-   https://graph.facebook.com/oauth/access_tokent   client_secretu   bart   authorization_responseu   https://i.b/?code=hellou
   urlencodedu   access_tokenu   Beareru
   token_type(   R   t   fetch_tokent   assertEqual(   R   t   token(    (    sM   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_compliance_fixes.pyt   test_fetch_access_token&   s
    		(   t   __name__t
   __module__R   R   (    (    (    sM   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_compliance_fixes.pyR
      s   	t   LinkedInComplianceFixTestc           B  s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C  sŒ   t  j ƒ  } | j d d i d d 6ƒ| j d d d d i d d	 6d
 d 6ƒ| j ƒ  |  j | j ƒ t d d d ƒ} t | ƒ |  _ d  S(   Nu/   https://www.linkedin.com/uas/oauth2/accessTokent   jsonu   linkedinu   access_tokenu+   https://api.linkedin.com/v1/people/~/sharest   status_codeiÉ   u   UPDATE-3346389-595113200u	   updateKeyu6   https://www.linkedin.com/updates?discuss=abc&scope=xyzu	   updateUrlu   fooR   u   https://i.b(	   R   R   R   R   R   R   R   R   R   (   R   R   t   linkedin(    (    sM   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_compliance_fixes.pyR   1   s    
c         C  s@   |  j  j d d d d d ƒ} |  j | i d d 6d d	 6ƒ d  S(
   Nu/   https://www.linkedin.com/uas/oauth2/accessTokenR   u   barR   u   https://i.b/?code=hellou   linkedinu   access_tokenu   Beareru
   token_type(   R   R   R   (   R   R   (    (    sM   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_compliance_fixes.pyR   E   s
    		c         C  sa   i d d 6|  j  _ |  j  j d ƒ } | j j } t t | ƒ j ƒ } |  j | d d g ƒ d  S(   Nu   dummy-access-tokenu   access_tokenu+   https://api.linkedin.com/v1/people/~/sharesu   oauth2_access_token(	   R   R   R   t   requestt   urlR   R   t   queryR   (   R   t   responseR&   R'   (    (    sM   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_compliance_fixes.pyt   test_protected_requestM   s    		(   R   R    R   R   R)   (    (    (    sM   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_compliance_fixes.pyR!   /   s   		t   MailChimpComplianceFixTestc           B  s   e  Z d  „  Z d „  Z RS(   c         C  ss   t  j ƒ  } | j d d i d d 6d d 6d  d 6ƒ| j ƒ  |  j | j ƒ t d d	 d
 ƒ} t | ƒ |  _	 d  S(   Nu(   https://login.mailchimp.com/oauth2/tokenR"   u	   mailchimpu   access_tokeni    u
   expires_inu   scopeu   fooR   u   https://i.b(
   R   R   R   t   NoneR   R   R   R   R   R   (   R   R   t	   mailchimp(    (    sM   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_compliance_fixes.pyR   Y   s    
c         C  s…   |  j  j d d d d d ƒ} t j ƒ  d } | j d ƒ } |  j | | d d	 ƒ|  j | i d
 d 6d d 6ƒ |  j d | ƒ d  S(   Nu(   https://login.mailchimp.com/oauth2/tokenR   u   barR   u   https://i.b/?code=helloi  u
   expires_att   placesi   u	   mailchimpu   access_tokenu
   expires_inu   scope(   R   R   t   timet   popt   assertAlmostEqualR   t   assertNotIn(   R   R   t   approx_expires_att   actual_expires_at(    (    sM   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_compliance_fixes.pyR   e   s    		(   R   R    R   R   (    (    (    sM   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_compliance_fixes.pyR*   W   s   	t   WeiboComplianceFixTestc           B  s   e  Z d  „  Z d „  Z RS(   c         C  se   t  j ƒ  } | j d d i d d 6ƒ| j ƒ  |  j | j ƒ t d d d ƒ} t | ƒ |  _ d  S(   Nu)   https://api.weibo.com/oauth2/access_tokenR"   u   weibou   access_tokenu   fooR   u   https://i.b(	   R   R   R   R   R   R   R   R   R   (   R   R   t   weibo(    (    sM   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_compliance_fixes.pyR   y   s    
c         C  s@   |  j  j d d d d d ƒ} |  j | i d d 6d d	 6ƒ d  S(
   Nu)   https://api.weibo.com/oauth2/access_tokenR   u   barR   u   https://i.b/?code=hellou   weibou   access_tokenu   Beareru
   token_type(   R   R   R   (   R   R   (    (    sM   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_compliance_fixes.pyR   …   s
    		(   R   R    R   R   (    (    (    sM   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_compliance_fixes.pyR4   w   s   	t   SlackComplianceFixTestc           B  s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c      
   C  sÃ   t  j ƒ  } | j d d i d d 6d d 6ƒxT d D]L } | j d	 | d
 d d i t d 6d d 6d d 6d d 6d d 6d d 6ƒ q4 W| j ƒ  |  j | j ƒ t d d d ƒ} t	 | ƒ |  _
 d  S(   Nu"   https://slack.com/api/oauth.accessR"   u   xoxt-23984754863-2348975623103u   access_tokenu   readu   scopeu   GETu   POSTt   methodR&   u   https://slack.com/api/auth.testu   oku   https://myteam.slack.com/u   urlu   My Teamu   teamu   calu   useru   T12345u   team_idu   U12345u   user_idu   fooR   u   https://i.b(   u   GETu   POST(   R   R   R   R%   t   TrueR   R   R   R   R	   R   (   R   R   R7   t   slack(    (    sM   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_compliance_fixes.pyR      s*    	
c         C  s‰   i d d 6|  j  _ |  j  j d ƒ } | j j } t t | ƒ j ƒ } |  j d | ƒ | j j	 } t | ƒ } |  j
 | d d g ƒ d  S(   Nu   dummy-access-tokenu   access_tokenu   https://slack.com/api/auth.testu   token(   R   R   t   getR%   R&   R   R   R'   R1   t   bodyR   (   R   R(   R&   R'   R;   t   data(    (    sM   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_compliance_fixes.pyR)   ¬   s    		c         C  s–   i d d 6|  j  _ |  j  j d d i d d 6ƒ} | j j } t t | ƒ j ƒ } |  j d | ƒ | j j	 } t | ƒ } |  j
 | d d g ƒ d  S(   Nu   dummy-access-tokenu   access_tokenu   https://slack.com/api/auth.testR<   u   different-tokenu   token(   R   R   R:   R%   R&   R   R   R'   R1   R;   R   (   R   R(   R&   R'   R;   R<   (    (    sM   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_compliance_fixes.pyt)   test_protected_request_override_token_get¸   s    	c         C  s–   i d d 6|  j  _ |  j  j d d i d d 6ƒ} | j j } t t | ƒ j ƒ } |  j d | ƒ | j j	 } t | ƒ } |  j
 | d d g ƒ d  S(   Nu   dummy-access-tokenu   access_tokenu   https://slack.com/api/auth.testR<   u   different-tokenu   token(   R   R   R   R%   R&   R   R   R'   R1   R;   R   (   R   R(   R&   R'   R;   R<   (    (    sM   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_compliance_fixes.pyt*   test_protected_request_override_token_postÅ   s    	c         C  st   i d d 6|  j  _ |  j  j d ƒ } | j j } t t | ƒ j ƒ } |  j | d d g ƒ |  j	 | j j
 ƒ d  S(   Nu   dummy-access-tokenu   access_tokenu5   https://slack.com/api/auth.test?token=different-tokenu   tokenu   different-token(   R   R   R:   R%   R&   R   R   R'   R   t   assertIsNoneR;   (   R   R(   R&   R'   (    (    sM   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_compliance_fixes.pyt)   test_protected_request_override_token_urlÒ   s    		(   R   R    R   R)   R=   R>   R@   (    (    (    sM   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_compliance_fixes.pyR6   Ž   s
   				(   t
   __future__R    t	   unittest2R   t   ImportErrort   unittestt   requestsR   R.   R   R   t   urllib.parset   requests_oauthlibR   t"   requests_oauthlib.compliance_fixesR   R   R   R   R	   R
   R!   R*   R4   R6   (    (    (    sM   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_compliance_fixes.pyt   <module>   s,   ( 