ó
ø¢TQc           @  s<  d  d l  m Z d  d l Z d  d l m Z d  d l m Z m Z m Z m	 Z	 m
 Z
 m Z m Z d  d l m Z d  d l m Z d  d l m Z 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! e e d e" d d ƒ d e f d „  ƒ  Yƒ ƒ Z# e e d e" d d  ƒ d e f d „  ƒ  Yƒ ƒ Z$ e e d e" d d! ƒ d e f d „  ƒ  Yƒ ƒ Z% e e d e" d d" ƒ d e f d „  ƒ  Yƒ ƒ Z& e e d e" d d# ƒ d e f d „  ƒ  Yƒ ƒ Z' e e d e" d d$ ƒ d e f d „  ƒ  Yƒ ƒ Z( d e f d „  ƒ  YZ) d S(%   iÿÿÿÿ(   t   unicode_literalsN(   t   User(   t   UserCreationFormt   AuthenticationFormt   PasswordChangeFormt   SetPasswordFormt   UserChangeFormt   PasswordResetFormt   ReadOnlyPasswordHashWidget(   t   skipIfCustomUser(   t   mail(   t   Fieldt
   EmailFieldt	   CharField(   t   TestCase(   t   override_settings(   t
   force_text(   t   upath(   t   translation(   t   ugettextt   USE_TZt   PASSWORD_HASHERSu.   django.contrib.auth.hashers.SHA1PasswordHashert   UserCreationFormTestc           B  s>   e  Z d  g Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   u   authtestdata.jsonc         C  se   i d d 6d d 6d d 6} t  | ƒ } |  j | j ƒ  ƒ |  j | d j t | j d ƒ g ƒ d  S(   Nu
   testclientu   usernameu   test123u	   password1u	   password2u   duplicate_username(   R   t   assertFalset   is_validt   assertEqualt   errorsR   t   error_messages(   t   selft   datat   form(    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   test_user_already_exists   s    
c         C  sl   i d d 6d d 6d d 6} t  | ƒ } |  j | j ƒ  ƒ |  j | d j t | j d j d ƒ g ƒ d  S(   Nu   jsmith!u   usernameu   test123u	   password1u	   password2u   invalid(   R   R   R   R   R   R   t   fieldsR   (   R   R   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   test_invalid_data$   s    
c         C  se   i d d 6d d 6d d 6} t  | ƒ } |  j | j ƒ  ƒ |  j | d j t | j d ƒ g ƒ d  S(   Nu   jsmithu   usernameu   test123u	   password1u   testu	   password2u   password_mismatch(   R   R   R   R   R   R   R   (   R   R   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   test_password_verification/   s    
c         C  sË   i d d 6} t  | ƒ } t t j d ƒ g } |  j | j ƒ  ƒ |  j | d j | ƒ |  j | d j | ƒ d | d <t  | ƒ } |  j | j ƒ  ƒ |  j | d j | ƒ |  j | d j g  ƒ d  S(   Nu   jsmithu   usernameu   requiredu	   password1u	   password2u   test123(   R   R   R   t   default_error_messagesR   R   R   R   (   R   R   R   t   required_error(    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   test_both_passwords;   s    
c         C  s`   i d d 6d d 6d d 6} t  | ƒ } |  j | j ƒ  ƒ | j ƒ  } |  j t | ƒ d ƒ d  S(   Nu   jsmith@example.comu   usernameu   test123u	   password1u	   password2u   <User: jsmith@example.com>(   R   t
   assertTrueR   t   saveR   t   repr(   R   R   R   t   u(    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   test_successJ   s    
(   t   __name__t
   __module__t   fixturesR   R!   R"   R%   R*   (    (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyR      s   					t   AuthenticationFormTestc           B  s>   e  Z d  g Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   u   authtestdata.jsonc         C  sz   i d d 6d d 6} t  d  | ƒ } |  j | j ƒ  ƒ |  j | j ƒ  t | j d i t j	 j
 d ƒ j d 6ƒ g ƒ d  S(   Nu   jsmith_does_not_existu   usernameu   test123u   passwordu   invalid_login(   R   t   NoneR   R   R   t   non_field_errorsR   R   R   t   _metat	   get_fieldt   verbose_name(   R   R   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   test_invalid_username]   s    
c         C  s`   i d d 6d d 6} t  d  | ƒ } |  j | j ƒ  ƒ |  j | j ƒ  t | j d ƒ g ƒ d  S(   Nu   inactiveu   usernameu   password(   R   R/   R   R   R   R0   R   R   (   R   R   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   test_inactive_userk   s    
c         C  s•   |  j  d t ƒ } t j d d t ƒa i d d 6d d 6} t d  | ƒ } |  j | j ƒ  ƒ |  j | j	 ƒ  t
 | j d ƒ g ƒ Wd  QXWd  QXd  S(   Nt   USE_I18Nu   pt-brt
   deactivateu   inactiveu   usernameu   password(   t   settingst   TrueR   t   overrideR   R/   R   R   R   R0   R   R   (   R   R   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   test_inactive_user_i18nv   s    
c         C  sP   i d d 6d d 6} t  d  | ƒ } |  j | j ƒ  ƒ |  j | j ƒ  g  ƒ d  S(   Nu
   testclientu   usernameu   password(   R   R/   R&   R   R   R0   (   R   R   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyR*   ƒ   s    
c         C  s:   d t  f d „  ƒ  Y} | ƒ  } |  j | d j d ƒ d  S(   Nt   CustomAuthenticationFormc           B  s   e  Z e d  d d d ƒ Z RS(   t   labelu   Namet
   max_lengthiK   (   R+   R,   R   t   username(    (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyR<      s   u   usernameu   Name(   R   R   R=   (   R   R<   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   test_username_field_label   s    	(   R+   R,   R-   R4   R5   R;   R*   R@   (    (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyR.   W   s   					
t   SetPasswordFormTestc           B  s#   e  Z d  g Z d „  Z d „  Z RS(   u   authtestdata.jsonc         C  sv   t  j j d d ƒ } i d d 6d d 6} t | | ƒ } |  j | j ƒ  ƒ |  j | d j t | j	 d ƒ g ƒ d  S(   NR?   u
   testclientu   abc123u   new_password1u   abcu   new_password2u   password_mismatch(
   R   t   objectst   getR   R   R   R   R   R   R   (   R   t   userR   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyR"   œ   s    
c         C  sO   t  j j d d ƒ } i d d 6d d 6} t | | ƒ } |  j | j ƒ  ƒ d  S(   NR?   u
   testclientu   abc123u   new_password1u   new_password2(   R   RB   RC   R   R&   R   (   R   RD   R   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyR*   ¨   s    
(   R+   R,   R-   R"   R*   (    (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyRA   –   s   		t   PasswordChangeFormTestc           B  s5   e  Z d  g Z d „  Z d „  Z d „  Z d „  Z RS(   u   authtestdata.jsonc         C  s}   t  j j d d ƒ } i d d 6d d 6d d 6} t | | ƒ } |  j | j ƒ  ƒ |  j | d j t | j	 d ƒ g ƒ d  S(	   NR?   u
   testclientu   testu   old_passwordu   abc123u   new_password1u   new_password2u   password_incorrect(
   R   RB   RC   R   R   R   R   R   R   R   (   R   RD   R   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   test_incorrect_password¸   s    
c         C  s}   t  j j d d ƒ } i d d 6d d 6d d 6} t | | ƒ } |  j | j ƒ  ƒ |  j | d j t | j	 d	 ƒ g ƒ d  S(
   NR?   u
   testclientu   passwordu   old_passwordu   abc123u   new_password1u   abcu   new_password2u   password_mismatch(
   R   RB   RC   R   R   R   R   R   R   R   (   R   RD   R   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyR"   Ä   s    
c         C  sV   t  j j d d ƒ } i d d 6d d 6d d 6} t | | ƒ } |  j | j ƒ  ƒ d  S(   NR?   u
   testclientu   passwordu   old_passwordu   abc123u   new_password1u   new_password2(   R   RB   RC   R   R&   R   (   R   RD   R   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyR*   Ñ   s    
c         C  sD   t  j j d d ƒ } |  j t t | i  ƒ j ƒ d d d g ƒ d  S(   NR?   u
   testclientu   old_passwordu   new_password1u   new_password2(   R   RB   RC   R   t   listR   R    (   R   RD   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   test_field_orderÜ   s    (   R+   R,   R-   RF   R"   R*   RH   (    (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyRE   ²   s
   				t   UserChangeFormTestc           B  sY   e  Z d  g Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(	   u   authtestdata.jsonc         C  sy   t  j j d d ƒ } i d d 6} t | d | ƒ} |  j | j ƒ  ƒ |  j | d j t | j	 d j
 d ƒ g ƒ d  S(   NR?   u
   testclientu	   not validu   usernamet   instanceu   invalid(   R   RB   RC   R   R   R   R   R   R   R    R   (   R   RD   R   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   test_username_validityé   s    c           s,   d t  f ‡  f d †  ƒ  Y‰  ˆ  i  ƒ } d  S(   Nt
   MyUserFormc             s0   e  Z ‡  f d  †  Z d e j f d „  ƒ  YZ RS(   c           s-   t  ˆ  |  ƒ j | | Ž  d |  j d _ d  S(   Nu-   These groups give users different permissionsu   groups(   t   supert   __init__R    t	   help_text(   R   t   argst   kwargs(   RL   (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyRN   ö   s    t   Metac           B  s   e  Z d Z RS(   u   groups(   u   groups(   R+   R,   R    (    (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyRR   ú   s   (   R+   R,   RN   R   RR   (    (   RL   (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyRL   õ   s   (   R   (   R   R   (    (   RL   s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   test_bug_14242ñ   s    	c         C  sX   t  j j d d ƒ } | j ƒ  | j ƒ  t d | ƒ } |  j t d ƒ | j ƒ  ƒ d  S(   NR?   u   empty_passwordRJ   u   No password set.(	   R   RB   RC   t   set_unusable_passwordR'   R   t   assertInt   _t   as_table(   R   RD   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   test_unsuable_password   s
    

c         C  sD   t  j j d d ƒ } t d | ƒ } |  j t d ƒ | j ƒ  ƒ d  S(   NR?   u   empty_passwordRJ   u   No password set.(   R   RB   RC   R   RU   RV   RW   (   R   RD   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   test_bug_17944_empty_password  s    c         C  sD   t  j j d d ƒ } t d | ƒ } |  j t d ƒ | j ƒ  ƒ d  S(   NR?   u   unmanageable_passwordRJ   u5   Invalid password format or unknown hashing algorithm.(   R   RB   RC   R   RU   RV   RW   (   R   RD   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt$   test_bug_17944_unmanageable_password  s    c         C  sD   t  j j d d ƒ } t d | ƒ } |  j t d ƒ | j ƒ  ƒ d  S(   NR?   u   unknown_passwordRJ   u5   Invalid password format or unknown hashing algorithm.(   R   RB   RC   R   RU   RV   RW   (   R   RD   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt)   test_bug_17944_unknown_password_algorithm  s    c         C  sz   t  j j d d ƒ } t d | ƒ } | j } d | d <t d | d | ƒ } |  j | j ƒ  ƒ |  j | j d d ƒ d S(	   u2   The change form does not return the password valueR?   u
   testclientRJ   u   new passwordu   passwordR   u3   sha1$6efc0$f93efe9fd7542f25a7be94871ea45aa95de57161N(	   R   RB   RC   R   t   initialR&   R   R   t   cleaned_data(   R   RD   t   form_for_datat	   post_dataR   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   test_bug_19133  s    	
c         C  sO   t  j j d d ƒ } t d i  d | ƒ } |  j | j d | d j ƒ  ƒ d  S(   NR?   u
   testclientR   RJ   u   password(   R   RB   RC   R   R   R\   t   value(   R   RD   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt#   test_bug_19349_bound_password_field)  s    (   R+   R,   R-   RK   RS   RX   RY   RZ   R[   R`   Rb   (    (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyRI   ã   s   								t   PasswordResetFormTestc           B  sY   e  Z d  g Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(	   u   authtestdata.jsonc         C  s1   d } d } t  j j | | d ƒ } | | | f S(   uR   creates a user and returns a tuple
        (user_object, username, email)
        u   jsmithu   jsmith@example.comu   test123(   R   RB   t   create_user(   R   R?   t   emailRD   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   create_dummy_user8  s    c         C  sW   i d d 6} t  | ƒ } |  j | j ƒ  ƒ |  j | d j t t j d ƒ g ƒ d  S(   Nu	   not validu   emailu   invalid(   R   R   R   R   R   R   R   R#   (   R   R   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   test_invalid_emailA  s
    c         C  sZ   i d d 6} t  | ƒ } |  j | j ƒ  ƒ |  j | j i t | j d ƒ g d 6ƒ d  S(   Nu   foo@bar.comu   emailu   unknown(   R   R   R   R   R   R   R   (   R   R   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   test_nonexistant_emailH  s
    c         C  s\   |  j  ƒ  \ } } } i | d 6} t | ƒ } |  j | j ƒ  ƒ |  j | j d | ƒ d  S(   Nu   email(   Rf   R   R&   R   R   R]   (   R   RD   R?   Re   R   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   test_cleaned_dataP  s
    c         C  s¶   t  j j t  j j t t ƒ ƒ d ƒ } |  j d | f ƒ t i d d 6} t | ƒ } |  j | j	 ƒ  ƒ | j
 d d ƒ |  j t t j ƒ d ƒ |  j t j d j d	 ƒ Wd  QXd  S(
   Nu	   templatest   TEMPLATE_DIRSu   testclient@example.comu   emailt   domain_overrideu   example.comi   i    u$   Custom password reset on example.com(   t   ost   patht   joint   dirnameR   t   __file__R8   R   R&   R   R'   R   t   lenR
   t   outboxt   subject(   R   t   template_pathR   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   test_custom_email_subjectX  s    'c         C  sZ   t  j j d d d ƒ } |  j | j d ƒ t  j j d d d ƒ } |  j | j d ƒ d  S(   Nu   forms_test2u   tesT@EXAMple.comu   testu   tesT@example.comu   forms_test3u   tesT(   R   RB   Rd   R   Re   (   R   RD   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   test_bug_5605e  s    c         C  sR   |  j  ƒ  \ } } } t | _ | j ƒ  t i | d 6ƒ } |  j | j ƒ  ƒ d  S(   Nu   email(   Rf   t   Falset	   is_activeR'   R   R   R   (   R   RD   R?   Re   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyR5   m  s
    	
c         C  s›   t  j j d d d ƒ } i d d 6} t | ƒ } |  j | j ƒ  ƒ | j ƒ  | j ƒ  t | ƒ } |  j | j ƒ  ƒ |  j	 | d j
 t d ƒ g ƒ d  S(   Nu   testuseru   test@example.comu   testu   emailuN   The user account associated with this email address cannot reset the password.(   R   RB   Rd   R   R&   R   RT   R'   R   R   R   RV   (   R   RD   R   R   (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   test_unusable_passwordv  s    

(   R+   R,   R-   Rf   Rg   Rh   Ri   Ru   Rv   R5   Ry   (    (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyRc   2  s   										t   ReadOnlyPasswordHashWidgetTestc           B  s   e  Z d  „  Z RS(   c         C  sA   t  ƒ  } | j d d d d  d i  ƒ } |  j t d ƒ | ƒ d  S(   Nt   nameu   passwordRa   t   attrsu   No password set.(   R   t   renderR/   RU   RV   (   R   t   widgett   html(    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt%   test_bug_19349_render_with_none_value…  s    	(   R+   R,   R€   (    (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyRz   ƒ  s   (   u.   django.contrib.auth.hashers.SHA1PasswordHasher(   u.   django.contrib.auth.hashers.SHA1PasswordHasher(   u.   django.contrib.auth.hashers.SHA1PasswordHasher(   u.   django.contrib.auth.hashers.SHA1PasswordHasher(   u.   django.contrib.auth.hashers.SHA1PasswordHasher(   u.   django.contrib.auth.hashers.SHA1PasswordHasher(*   t
   __future__R    Rl   t   django.contrib.auth.modelsR   t   django.contrib.auth.formsR   R   R   R   R   R   R   t   django.contrib.auth.tests.utilsR	   t   django.coreR
   t   django.forms.fieldsR   R   R   t   django.testR   t   django.test.utilsR   t   django.utils.encodingR   t   django.utils._osR   t   django.utilsR   t   django.utils.translationR   RV   Rw   R   R.   RA   RE   RI   Rc   Rz   (    (    (    s8   ../Django//lib/python/django/contrib/auth/tests/forms.pyt   <module>   s>   4B=/MO