ó
ø¢TQc           @   sC  d  d l  Z  d  d l 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 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 e e d e  j j e  j j e e ƒ ƒ d ƒ f d e d d ƒ d e f d „  ƒ  Yƒ ƒ Z d S(   iÿÿÿÿN(   t   global_settings(   t   authenticate(   t   skipIfCustomUser(   t   Usert
   Permission(   t   ContentType(   t   PermWrappert   PermLookupDict(   t   Q(   t   TestCase(   t   override_settings(   t   upatht   MockUserc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   | d k r t  St S(   Nt   mockapp(   t   Truet   False(   t   selft   perm(    (    sE   ../Django//lib/python/django/contrib/auth/tests/context_processors.pyt   has_module_perms   s    c         C   s   | d k r t  St S(   Ns   mockapp.someperm(   R   R   (   R   R   (    (    sE   ../Django//lib/python/django/contrib/auth/tests/context_processors.pyt   has_perm   s    (   t   __name__t
   __module__R   R   (    (    (    sE   ../Django//lib/python/django/contrib/auth/tests/context_processors.pyR      s   	t   PermWrapperTestsc           B   s6   e  Z d  Z d e f d „  ƒ  YZ d „  Z d „  Z RS(   s>   
    Test some details of the PermWrapper implementation.
    t   EQLimiterObjectc           B   s    e  Z d  Z d „  Z d „  Z RS(   sM   
        This object makes sure __eq__ will not be called endlessly.
        c         C   s   d |  _  d  S(   Ni    (   t   eq_calls(   R   (    (    sE   ../Django//lib/python/django/contrib/auth/tests/context_processors.pyt   __init__#   s    c         C   s&   |  j  d k r t S|  j  d 7_  t S(   Ni    i   (   R   R   R   (   R   t   other(    (    sE   ../Django//lib/python/django/contrib/auth/tests/context_processors.pyt   __eq__&   s    (   R   R   t   __doc__R   R   (    (    (    sE   ../Django//lib/python/django/contrib/auth/tests/context_processors.pyR      s   	c         C   s_   t  t ƒ  ƒ } |  j d | k ƒ |  j d | k ƒ |  j d | k ƒ |  j d | k ƒ d S(   sI   
        Test that 'something' in PermWrapper works as expected.
        R   t   nonexistings   mockapp.someperms   mockapp.nonexistingN(   R   R   t
   assertTruet   assertFalse(   R   t   perms(    (    sE   ../Django//lib/python/django/contrib/auth/tests/context_processors.pyt   test_permwrapper_in,   s
    c         C   s<   t  t ƒ  d ƒ } |  j t ƒ  |  j ƒ  | k Wd QXd S(   sG   
        No endless loops if accessed with 'in' - refs #18979.
        R   N(   R   R   t   assertRaisest	   TypeErrorR   (   R   t   pldict(    (    sE   ../Django//lib/python/django/contrib/auth/tests/context_processors.pyt   test_permlookupdict_in7   s    (   R   R   R   t   objectR   R!   R%   (    (    (    sE   ../Django//lib/python/django/contrib/auth/tests/context_processors.pyR      s   	t   TEMPLATE_DIRSt	   templatest   USE_TZt   PASSWORD_HASHERSs.   django.contrib.auth.hashers.SHA1PasswordHashert   AuthContextProcessorTestsc           B   s‰   e  Z d  Z d Z d g Z e d e j d e j ƒ d „  ƒ Z	 e d e j d e j ƒ d „  ƒ Z
 d „  Z d „  Z d	 „  Z d
 „  Z RS(   sQ   
    Tests for the ``django.contrib.auth.context_processors.auth`` processor
    s   django.contrib.auth.tests.urlss   context-processors-users.xmlt   MIDDLEWARE_CLASSESt   TEMPLATE_CONTEXT_PROCESSORSc         C   s&   |  j  j d ƒ } |  j | d ƒ d S(   so   
        Tests that the session is not accessed simply by including
        the auth context processor
        s   /auth_processor_no_attr_access/s   Session not accessedN(   t   clientt   gett   assertContains(   R   t   response(    (    sE   ../Django//lib/python/django/contrib/auth/tests/context_processors.pyt   test_session_not_accessedO   s    	c         C   s&   |  j  j d ƒ } |  j | d ƒ d S(   s„   
        Tests that the session is accessed if the auth context processor
        is used and relevant attributes accessed.
        s   /auth_processor_attr_access/s   Session accessedN(   R.   R/   R0   (   R   R1   (    (    sE   ../Django//lib/python/django/contrib/auth/tests/context_processors.pyt   test_session_is_accessed[   s    	c         C   s«   t  j j d d d d ƒ } | j j t j j d t j j t ƒ d d ƒ ƒ |  j	 j
 d d d d ƒ |  j	 j d ƒ } |  j | d	 ƒ |  j | d
 ƒ |  j | d ƒ d  S(   Nt   usernamet   normalt   passwordt   secrett   content_typet   codenamet   add_permissions   /auth_processor_perms/s   Has auth permissionss#   Has auth.add_permission permissionsR   (   R   t   objectst   create_usert   user_permissionst   addR   R/   R   t   get_for_modelR.   t   loginR0   t   assertNotContains(   R   t   uR1   (    (    sE   ../Django//lib/python/django/contrib/auth/tests/context_processors.pyt   test_perms_attrsg   s    	
c         C   s«   t  j j d d d d ƒ } | j j t j j d t j j t ƒ d d ƒ ƒ |  j	 j
 d d d d ƒ |  j	 j d ƒ } |  j | d	 ƒ |  j | d
 ƒ |  j | d ƒ d  S(   NR4   R5   R6   R7   R8   R9   R:   s   /auth_processor_perm_in_perms/s   Has auth permissionss#   Has auth.add_permission permissionsR   (   R   R;   R<   R=   R>   R   R/   R   R?   R.   R@   R0   RA   (   R   RB   R1   (    (    sE   ../Django//lib/python/django/contrib/auth/tests/context_processors.pyt   test_perm_in_perms_attrss   s    	
c         C   s?   |  j  j d d d d ƒ |  j  j d ƒ } |  j | d ƒ d  S(   NR4   t   superR6   R7   s   /auth_processor_messages/s	   Message 1(   R.   R@   R/   R0   (   R   R1   (    (    sE   ../Django//lib/python/django/contrib/auth/tests/context_processors.pyt   test_message_attrs   s    c         C   sÕ   |  j  j d d d d ƒ t d d d d ƒ } |  j  j d ƒ } |  j | d ƒ |  j | d ƒ |  j | d ƒ |  j | d	 ƒ t d
 | j d
 ƒ t d t ƒ @} |  j | j d
 | ƒ |  j | | j d
 ƒ d S(   s[   
        Test that the lazy objects returned behave just like the wrapped objects.
        R4   RE   R6   R7   s   /auth_processor_user/s   unicode: supers   id: 100s   username: supers   url: /userpage/super/t   usert   someflagN(	   R.   R@   R   R/   R0   R   t   contextR   t   assertEqual(   R   RG   R1   t   query(    (    sE   ../Django//lib/python/django/contrib/auth/tests/context_processors.pyt   test_user_attrs„   s    #(   R   R   R   t   urlst   fixturesR
   R    R,   R-   R2   R3   RC   RD   RF   RL   (    (    (    sE   ../Django//lib/python/django/contrib/auth/tests/context_processors.pyR+   @   s   		
	
			(   s.   django.contrib.auth.hashers.SHA1PasswordHasher(    t   ost   django.confR    t   django.contrib.authR   t   django.contrib.auth.tests.utilsR   t   django.contrib.auth.modelsR   R   t"   django.contrib.contenttypes.modelsR   t&   django.contrib.auth.context_processorsR   R   t   django.db.modelsR   t   django.testR	   t   django.test.utilsR
   t   django.utils._osR   R&   R   R   t   patht   joint   dirnamet   __file__R   R+   (    (    (    sE   ../Django//lib/python/django/contrib/auth/tests/context_processors.pyt   <module>   s$   %*	