
Sl                 @   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
 Yn Xd  d l Z e j d  d k r e Z n e Z e j d  e j d  Gd d   d e j    Z d S)	    )unicode_literalsN)StringIO3z*oauthlib.oauth1.rfc5849.generate_timestampz&oauthlib.oauth1.rfc5849.generate_noncec               @   sd   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 d
   Z d d   Z d d   Z	 d S)
OAuth1Testc                s     f d d   } |   _  d  S)Nc                sV   t  |  t  r! |  j d  }  n  t  | t  rB | j d  } n    j |  |  d  S)Nzutf-8)
isinstance
bytes_typedecodeassertEquals)ab)self N/Users/cory/Documents/Python/requests_org/requests-oauthlib/tests/test_core.pyconverting_equals   s
    z+OAuth1Test.setUp.<locals>.converting_equals)assertEqual)r   r   r   )r   r   setUp   s    zOAuth1Test.setUpc             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)z=OAuth1 assumes form encoded if content type is not specified.abc1
client_keyz!application/x-www-form-urlencodedzContent-typemethodPOSTurlzhttp://a.b/path?query=retainauthdatazthis=really&is=&+form=encodedheaderszContent-TypeAuthorizationN)return_valuerequests_oauthlibOAuth1requestsRequestpreparer   r   bodyr   get)r   generate_noncegenerate_timestampoauthr   rr
   r   r   r   r   testFormEncoded#   s$    		zOAuth1Test.testFormEncodedc             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)z:OAuth signature only depend on body if it is form encoded.r   r   r   r   r   r   zhttp://a.b/path?query=retainr   r   zthis really is not form encodedr   filesZhellotestN)
r   r   r   r   r    r!   r   r   r#   r   )r   r$   r%   r&   r'   r
   r   cr   r   r   testNonFormEncoded<   s     			zOAuth1Test.testNonFormEncodedc             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)zr
        Test we can post binary data. Should prevent regression of the
        UnicodeDecodeError issue.
        r   r   r   ztest.binrbzhttp://httpbin.org/postr   Ztherehir)   Zmediar   zapplication/octet-streamzcontent-typer      N)r   r   r   ospathdirname__file__joinopenr   postbasenamenamer   status_code)r   r$   r%   r&   r2   fnamefr'   r   r   r   testCanPostBinaryDataT   s    		"	z OAuth1Test.testCanPostBinaryDatac             C   sV   d | _  d | _  t j d  } t j d d | } |  j t | j j t	   d S)z>
        Test that the URL is always a native string.
        r   r   r   zhttp://httpbin.org/getr   N)
r   r   r   r   r#   
assertTruer   requestr   str)r   r$   r%   r&   r'   r   r   r   test_url_is_native_strf   s
    		z!OAuth1Test.test_url_is_native_strc          
   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)zG
        Content type should only be guessed if none is given.
        r   r   r   r
   zhttp://httpbin.org/getr   r   zContent-Typez!application/x-www-form-urlencodedr   zapplication/jsonzContent-typeN)	r   r   r   r   r6   r   r>   r   r#   )r   r$   r%   r&   r   r'   r   r   r   test_content_type_overrideq   s    		z%OAuth1Test.test_content_type_overridec             C   sX  Gd d   d t  j j  } |  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)Nc               @   s   e  Z d  Z d S)z=OAuth1Test.test_register_client_class.<locals>.ClientSubclassN)__name__
__module____qualname__r   r   r   r   ClientSubclass   s   rE   client_classr   )oauthliboauth1Clientr=   hasattrr   r   r   rF   r   clientassertFalse)r   r%   r$   rE   ZnormalZcustomZ
overriddenr   r   r   test_register_client_class   s"    	z%OAuth1Test.test_register_client_classN)
rB   rC   rD   r   r(   r,   r<   r@   rA   rM   r   r   r   r   r      s   
r   )
__future__r   mocksysr   r   rG   os.pathr0   ior   ImportErrorunittestversionbytesr   r?   patchTestCaser   r   r   r   r   <module>   s"   	