
O'^c           @   s3  d  d l  m Z m Z d  d l m Z d  d l m Z d  d l m Z 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 d l m Z d d l m Z e   Z e   Z d e f d     YZ d e f d     YZ e d d d e e  d  d e f d     Y Z d S(   i(   t   TestCaset   RequestFactory(   t   override_settings(   t   AnonymousUser(   t   nowt	   timedelta(   t   MIDDLEWARE_CLASSES(   t   HttpResponsei   (   t   get_user_model(   t   get_application_model(   t   AccessToken(   t   OAuth2Backend(   t   OAuth2TokenMiddlewaret   BaseTestc           B   s    e  Z d  Z d   Z d   Z RS(   s-   
    Base class for cases in this module
    c         C   s   t  j j d d d  |  _ t j j d d d t j d t j d |  j  |  _ t	 j j d |  j d d	 d
 |  j d t
   t d d   |  _ t   |  _ d  S(   Nt   users   test@user.comt   123456t   namet   appt   client_typet   authorization_grant_typet   tokent   tokstrt   applicationt   expirest   daysim  (   t	   UserModelt   objectst   create_userR   t   ApplicationModelt   createt   CLIENT_CONFIDENTIALt   GRANT_CLIENT_CREDENTIALSR   R
   R   R   R   R   t   factory(   t   self(    (    sJ   /tmp/pip-unpacked-wheel-ndW12l/oauth2_provider/tests/test_auth_backends.pyt   setUp   s    			c         C   s+   |  j  j   |  j j   |  j j   d  S(   N(   R   t   deleteR   R   (   R!   (    (    sJ   /tmp/pip-unpacked-wheel-ndW12l/oauth2_provider/tests/test_auth_backends.pyt   tearDown$   s    (   t   __name__t
   __module__t   __doc__R"   R$   (    (    (    sJ   /tmp/pip-unpacked-wheel-ndW12l/oauth2_provider/tests/test_auth_backends.pyR      s   	t   TestOAuth2Backendc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s^   i d d 6} |  j  j d |  } t   } i | d 6} | j |   } |  j | |  j  d  S(   Ns   Bearer R   t   HTTP_AUTHORIZATIONs   /a-resourcet   requests   Bearer tokstr(   R    t   getR   t   authenticatet   assertEqualR   (   R!   t   auth_headersR*   t   backendt   credentialst   u(    (    sJ   /tmp/pip-unpacked-wheel-ndW12l/oauth2_provider/tests/test_auth_backends.pyt   test_authenticate,   s    
	c         C   s|   i d
 d 6} |  j  j d |  } t   } i | d 6} |  j | j |    i d d 6d d	 6} |  j | j |    d  S(   Ns   Bearer t	   badstringR)   s   /a-resourceR*   R1   t   usernamet   pt   passwords   Bearer badstring(   R    R+   R   t   assertIsNoneR,   (   R!   R.   R*   R/   R0   (    (    sJ   /tmp/pip-unpacked-wheel-ndW12l/oauth2_provider/tests/test_auth_backends.pyt   test_authenticate_fail7   s    
	c         C   sE   t    } |  j |  j | j |  j j   |  j | j d   d  S(   Ni@ (   R   R-   R   t   get_usert   pkR7   (   R!   R/   (    (    sJ   /tmp/pip-unpacked-wheel-ndW12l/oauth2_provider/tests/test_auth_backends.pyt   test_get_userD   s    	"(   R%   R&   R2   R8   R;   (    (    (    sJ   /tmp/pip-unpacked-wheel-ndW12l/oauth2_provider/tests/test_auth_backends.pyR(   *   s   		t   AUTHENTICATION_BACKENDSs&   oauth2_provider.backends.OAuth2Backends)   django.contrib.auth.backends.ModelBackendR   s0   oauth2_provider.middleware.OAuth2TokenMiddlewaret   TestOAuth2Middlewarec           B   s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s#   t  t |   j   t   |  _ d  S(   N(   t   superR=   R"   R   t	   anon_user(   R!   (    (    sJ   /tmp/pip-unpacked-wheel-ndW12l/oauth2_provider/tests/test_auth_backends.pyR"   S   s    c         C   sm   t    } |  j j d  } |  j | j |   i d d 6} |  j j d |  } |  j | j |   d  S(   Ns   /a-resources   Beerer R3   R)   s   Beerer badstring(   R   R    R+   R7   t   process_request(   R!   t   mR*   R.   (    (    sJ   /tmp/pip-unpacked-wheel-ndW12l/oauth2_provider/tests/test_auth_backends.pyt   test_middleware_wrong_headersW   s    	
c         C   ss   t    } i d d 6} |  j j d |  } |  j | _ |  j | j |   |  j | _ |  j | j |   d  S(   Ns   Bearer R   R)   s   /a-resources   Bearer tokstr(   R   R    R+   R   R7   R@   R?   (   R!   RA   R.   R*   (    (    sJ   /tmp/pip-unpacked-wheel-ndW12l/oauth2_provider/tests/test_auth_backends.pyt   test_middleware_user_is_seta   s    	
c         C   sR   t    } i d d 6} |  j j d |  } | j |  |  j | j |  j  d  S(   Ns   Bearer R   R)   s   /a-resources   Bearer tokstr(   R   R    R+   R@   R-   R   (   R!   RA   R.   R*   (    (    sJ   /tmp/pip-unpacked-wheel-ndW12l/oauth2_provider/tests/test_auth_backends.pyt   test_middleware_successl   s    	
c         C   sZ   t    } i d d 6} |  j j d |  } t   } | j | |  } |  j | |  d  S(   Ns   Bearer R   R)   s   /a-resources   Bearer tokstr(   R   R    R+   R   t   process_responset   assertIs(   R!   RA   R.   R*   t   responset	   processed(    (    sJ   /tmp/pip-unpacked-wheel-ndW12l/oauth2_provider/tests/test_auth_backends.pyt   test_middleware_responseu   s    	
	c         C   sl   t    } i d d 6} |  j j d |  } t   } | j | |  |  j d |  |  j d | d  d  S(   Ns   Bearer R   R)   s   /a-resourcet   Varyt   Authorizations   Bearer tokstr(   R   R    R+   R   RE   t   assertIn(   R!   RA   R.   R*   RG   (    (    sJ   /tmp/pip-unpacked-wheel-ndW12l/oauth2_provider/tests/test_auth_backends.pyt   test_middleware_response_header   s    	
	(   R%   R&   R"   RB   RC   RD   RI   RM   (    (    (    sJ   /tmp/pip-unpacked-wheel-ndW12l/oauth2_provider/tests/test_auth_backends.pyR=   J   s   			
				
N(   s&   oauth2_provider.backends.OAuth2Backends)   django.contrib.auth.backends.ModelBackend(   s0   oauth2_provider.middleware.OAuth2TokenMiddleware(   t   django.testR    R   t   django.test.utilsR   t   django.contrib.auth.modelsR   t   django.utils.timezoneR   R   t   django.conf.global_settingsR   t   django.httpR   t   compatR   t   modelsR	   R
   t   backendsR   t
   middlewareR   R   R   R   R(   t   tupleR=   (    (    (    sJ   /tmp/pip-unpacked-wheel-ndW12l/oauth2_provider/tests/test_auth_backends.pyt   <module>   s&   		  