ó
ŽpYWc           @  sù   d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z y d  d l	 m
 Z
 Wn! e k
 r d  d l
 m
 Z
 n Xd  d l Z e j d d k r¸ e Z n e Z e j d ƒ e j d ƒ d e j f d	 „  ƒ  Yƒ ƒ Z d S(
   iÿÿÿÿ(   t   unicode_literalsN(   t   StringIOi    u   3u*   oauthlib.oauth1.rfc5849.generate_timestampu&   oauthlib.oauth1.rfc5849.generate_noncet
   OAuth1Testc           B  sG   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c           s   ‡  f d †  } | ˆ  _  d  S(   Nc           sV   t  |  t ƒ r! |  j d ƒ }  n  t  | t ƒ rB | j d ƒ } n  ˆ  j |  | ƒ d  S(   Nu   utf-8(   t
   isinstancet
   bytes_typet   decodet   assertEquals(   t   at   b(   t   self(    sA   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_core.pyt   converting_equals   s
    (   t   assertEqual(   R	   R
   (    (   R	   sA   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_core.pyt   setUp   s    c         C  sD  d | _  d | _  t j d ƒ } i d d 6} t j d d d d	 d
 | d d d | ƒ } | j ƒ  } |  j | j d	 ƒ |  j | j d ƒ |  j | j	 j
 d ƒ d ƒ t j d d d d	 d
 | d d ƒ } | j ƒ  } |  j | j d	 ƒ |  j | j d ƒ |  j | j	 j
 d ƒ d ƒ |  j | j	 j
 d ƒ | j	 j
 d ƒ ƒ d S(   u=   OAuth1 assumes form encoded if content type is not specified.u   abcu   1u
   client_keyu!   application/x-www-form-urlencodedu   Content-typet   methodu   POSTt   urlu   http://a.b/path?query=retaint   autht   datau   this=really&is=&+form=encodedt   headersu   Content-Typeu   AuthorizationN(   t   return_valuet   requests_oauthlibt   OAuth1t   requestst   Requestt   prepareR   R   t   bodyR   t   get(   R	   t   generate_noncet   generate_timestampt   oauthR   t   rR   R   (    (    sA   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_core.pyt   testFormEncoded#   s$    		c         C  s  d | _  d | _  t j d ƒ } t j d d d d d | d	 d
 ƒ } | j ƒ  } t j d d d d d | ƒ } | j ƒ  } |  j | j j d ƒ | j j d ƒ ƒ t j d d d d d | d i t	 d ƒ d 6ƒ } | j ƒ  } |  j | j j d ƒ | j j d ƒ ƒ d S(   u:   OAuth signature only depend on body if it is form encoded.u   abcu   1u
   client_keyR   u   POSTR   u   http://a.b/path?query=retainR   R   u   this really is not form encodedu   Authorizationt   filesu   hellou   testN(
   R   R   R   R   R   R   R   R   R   R   (   R	   R   R   R   R   R   R   t   c(    (    sA   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_core.pyt   testNonFormEncoded<   s     			c         C  sÈ   d | _  d | _  t j d ƒ } t j j t ƒ } t j j | d ƒ } t | d ƒ k } t	 j
 d d i d d	 6d
 i t j j | j ƒ | f d 6d i d d 6d | ƒ} |  j | j d ƒ Wd QXd S(   ur   
        Test we can post binary data. Should prevent regression of the
        UnicodeDecodeError issue.
        u   abcu   1u
   client_keyu   test.binu   rbu   http://httpbin.org/postR   u   thereu   hiR   u   mediaR   u   application/octet-streamu   content-typeR   iÈ   N(   R   R   R   t   ost   patht   dirnamet   __file__t   joint   openR   t   postt   basenamet   nameR   t   status_code(   R	   R   R   R   R$   t   fnamet   fR   (    (    sA   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_core.pyt   testCanPostBinaryDataT   s    		"	c         C  sV   d | _  d | _  t j d ƒ } t j d d | ƒ} |  j t | j j t	 ƒ ƒ d S(   u>   
        Test that the URL is always a native string.
        u   abcu   1u
   client_keyu   http://httpbin.org/getR   N(
   R   R   R   R   R   t
   assertTrueR   t   requestR   t   str(   R	   R   R   R   R   (    (    sA   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_core.pyt   test_url_is_native_strf   s
    		c      
   C  s¬   d | _  d | _  t j d ƒ } d } t j d d | d | ƒ} |  j | j j j d ƒ d	 ƒ t j d d | d | d
 i d d 6ƒ} |  j | j j j d ƒ d ƒ d S(   uG   
        Content type should only be guessed if none is given.
        u   abcu   1u
   client_keyu   au   http://httpbin.org/getR   R   u   Content-Typeu!   application/x-www-form-urlencodedR   u   application/jsonu   Content-typeN(	   R   R   R   R   R(   R   R0   R   R   (   R	   R   R   R   R   R   (    (    sA   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_core.pyt   test_content_type_overrideq   s    		c         C  sX  d t  j j f d „  ƒ  Y} |  j t t j d ƒ ƒ |  j t j j t  j j ƒ t j d ƒ } |  j t	 | j
 t  j j ƒ ƒ |  j t	 | j
 | ƒ ƒ | t j _ |  j t j j | ƒ t j d ƒ } |  j t	 | j
 t  j j ƒ ƒ |  j t	 | j
 | ƒ ƒ t j d d t  j j ƒ} |  j t	 | j
 t  j j ƒ ƒ |  j t	 | j
 | ƒ ƒ d  S(   Nt   ClientSubclassc           B  s   e  Z RS(    (   t   __name__t
   __module__(    (    (    sA   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_core.pyR4   ƒ   s   u   client_classu
   client_keyt   client_class(   t   oauthlibt   oauth1t   ClientR/   t   hasattrR   R   R   R7   R   t   clientt   assertFalse(   R	   R   R   R4   t   normalt   customt
   overridden(    (    sA   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_core.pyt   test_register_client_class‚   s"    	(	   R5   R6   R   R   R!   R.   R2   R3   RA   (    (    (    sA   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_core.pyR      s   	
					(   t
   __future__R    t   mockt   sysR   R   R8   t   os.pathR"   t   ioR   t   ImportErrort   unittestt   versiont   bytesR   R1   t   patcht   TestCaseR   (    (    (    sA   /Users/singingwolfboy/clones/requests-oauthlib/tests/test_core.pyt   <module>   s"   	