ó
J~‰Pc           @   s•   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 e d e d d ƒ d
 e f d „  ƒ  Yƒ ƒ Z d S(   iÿÿÿÿ(   t   signals(   t   User(   t   skipIfCustomUser(   t   TestCase(   t   RequestFactory(   t   override_settingst   USE_TZt   PASSWORD_HASHERSs.   django.contrib.auth.hashers.SHA1PasswordHashert   SignalTestCasec           B   sh   e  Z d  Z d g Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z RS(   s   django.contrib.auth.tests.urlss   authtestdata.jsonc         K   s   |  j  j | ƒ d  S(   N(   t	   logged_int   append(   t   selft   usert   kwargs(    (    s:   ../Django//lib/python/django/contrib/auth/tests/signals.pyt   listener_login   s    c         K   s   |  j  j | ƒ d  S(   N(   t
   logged_outR
   (   R   R   R   (    (    s:   ../Django//lib/python/django/contrib/auth/tests/signals.pyt   listener_logout   s    c         K   s   |  j  j | ƒ d  S(   N(   t   login_failedR
   (   R   t   sendert   credentialsR   (    (    s:   ../Django//lib/python/django/contrib/auth/tests/signals.pyt   listener_login_failed   s    c         C   sX   g  |  _  g  |  _ g  |  _ t j j |  j ƒ t j j |  j ƒ t j	 j |  j
 ƒ d S(   s@   Set up the listeners and reset the logged in/logged out countersN(   R	   R   R   R    t   user_logged_int   connectR   t   user_logged_outR   t   user_login_failedR   (   R   (    (    s:   ../Django//lib/python/django/contrib/auth/tests/signals.pyt   setUp   s    			c         C   s=   t  j j |  j ƒ t  j j |  j ƒ t  j j |  j ƒ d S(   s   Disconnect the listenersN(   R    R   t
   disconnectR   R   R   R   R   (   R   (    (    s:   ../Django//lib/python/django/contrib/auth/tests/signals.pyt   tearDown!   s    c         C   sí   |  j  j d d d d ƒ |  j t |  j ƒ d ƒ |  j t |  j ƒ d ƒ |  j |  j d d d ƒ |  j d |  j d d k ƒ |  j  j d d d d ƒ |  j t |  j ƒ d ƒ |  j |  j d j d ƒ |  j t |  j ƒ d ƒ d  S(   Nt   usernamet
   testclientt   passwordt   badi    i   s   ***(   t   clientt   logint   assertEqualt   lenR	   R   t
   assertTrueR   (   R   (    (    s:   ../Django//lib/python/django/contrib/auth/tests/signals.pyt
   test_login'   s    c         C   sD   |  j  j d ƒ |  j t |  j ƒ d ƒ |  j |  j d d  ƒ d  S(   Ns   /logout/next_page/i   i    (   R    t   getR"   R#   R   t   None(   R   (    (    s:   ../Django//lib/python/django/contrib/auth/tests/signals.pyt   test_logout_anonymous8   s    c         C   s`   |  j  j d d d d ƒ |  j  j d ƒ |  j t |  j ƒ d ƒ |  j |  j d j d ƒ d  S(   NR   R   R   s   /logout/next_page/i   i    (   R    R!   R&   R"   R#   R   R   (   R   (    (    s:   ../Django//lib/python/django/contrib/auth/tests/signals.pyt   test_logout?   s    c         C   sš   t  j j d d ƒ } | j } d | _ t ƒ  j d ƒ } t j j d | j	 d | d | ƒ t  j j d d ƒ } |  j
 | j d ƒ |  j | j | ƒ d	 S(
   s?   Ensure that only `last_login` is updated in `update_last_login`t   pki   s!   This username shouldn't get saveds   /loginR   t   requestR   t   staffN(   R   t   objectsR&   t
   last_loginR   R   R    R   t   sendt	   __class__R"   t   assertNotEqual(   R   R   t   old_last_loginR+   (    (    s:   ../Django//lib/python/django/contrib/auth/tests/signals.pyt   test_update_last_loginE   s    		(   t   __name__t
   __module__t   urlst   fixturesR   R   R   R   R   R%   R(   R)   R3   (    (    (    s:   ../Django//lib/python/django/contrib/auth/tests/signals.pyR   	   s   										N(   s.   django.contrib.auth.hashers.SHA1PasswordHasher(   t   django.contrib.authR    t   django.contrib.auth.modelsR   t   django.contrib.auth.tests.utilsR   t   django.testR   t   django.test.clientR   t   django.test.utilsR   t   FalseR   (    (    (    s:   ../Django//lib/python/django/contrib/auth/tests/signals.pyt   <module>   s   