ó
öSQc           @  sy  d  d l  m Z d  d l 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 d  d
 l m Z d e j f d „  ƒ  YZ e j j e d e d d ƒZ d e f d „  ƒ  YZ e d e e f d „  ƒ  Yƒ Z e d e e f d „  ƒ  Yƒ Z e d e f d „  ƒ  Yƒ Z d e f d „  ƒ  YZ e d e f d „  ƒ  Yƒ Z d S(   iÿÿÿÿ(   t   unicode_literalsN(   t   forms(   t   TestCase(   t   RequestFactory(   t   settings(   t   User(   t   skipIfCustomUser(   t   CookieWizardView(   t   upatht   UserFormc           B  s   e  Z d  d d „  ƒ  YZ RS(   t   Metac           B  s   e  Z e Z RS(    (   t   __name__t
   __module__R   t   model(    (    (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyR
      s   (    (   R   R   R
   (    (    (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyR	      s   t   formt   extrai   t   WizardTestsc           B  sh   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z RS(   u6   django.contrib.formtools.tests.wizard.wizardtests.urlsc         C  s9   t  j j d d ƒ \ |  _ } |  j j |  j d d <d  S(   Nt   usernameu	   testuser1i    u
   form1-user(   R   t   objectst   get_or_createt   testusert   pkt   wizard_step_data(   t   selft   created(    (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyt   setUp   s    c         C  sÚ   |  j  j |  j ƒ } | j d } |  j | j d ƒ |  j | d j d ƒ |  j | d j d ƒ |  j | d j d ƒ |  j | d j	 d ƒ |  j | d j
 d  ƒ |  j | d j d ƒ |  j | d j d	 ƒ d  S(
   Nu   wizardiÈ   u   stepsu   form1i    i   u   form4u   form2i   (   t   clientt   gett
   wizard_urlt   contextt   assertEqualt   status_codet   currentt   step0t   step1t   lastt   prevt   Nonet   nextt   count(   R   t   responset   wizard(    (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyt   test_initial_call   s    c         C  s‚   |  j  j |  j |  j ƒ } |  j | j d ƒ |  j | j d d j d ƒ |  j | j d d j i d g d 6d g d 6ƒ d  S(	   NiÈ   u   wizardu   stepsu   form1u   formu   This field is required.u   nameu   user(	   R   t   postR   t   wizard_step_1_dataR   R   R   R    t   errors(   R   R(   (    (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyt   test_form_post_error*   s    c         C  sŸ   |  j  j |  j |  j d ƒ } | j d } |  j | j d ƒ |  j | d j d ƒ |  j | d j d ƒ |  j | d j	 d ƒ |  j | d j
 d ƒ d  S(	   Ni    u   wizardiÈ   u   stepsu   form2i   u   form1u   form3(   R   R+   R   R   R   R   R   R    R!   R$   R&   (   R   R(   R)   (    (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyt   test_form_post_success2   s    c         C  sø   |  j  j |  j ƒ } |  j | j d ƒ |  j | j d d j d ƒ |  j  j |  j |  j d ƒ } |  j | j d ƒ |  j | j d d j d ƒ |  j  j |  j i | j d d j	 d 6ƒ } |  j | j d ƒ |  j | j d d j d ƒ d  S(   NiÈ   u   wizardu   stepsu   form1i    u   form2u   wizard_goto_step(
   R   R   R   R   R   R   R    R+   R   R$   (   R   R(   (    (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyt   test_form_stepback;   s    c         C  s   |  j  j |  j ƒ } |  j | j d ƒ |  j | j d d j d ƒ |  j | j j d d  ƒ d  ƒ |  j  j |  j |  j	 d ƒ } |  j | j d ƒ |  j | j d d j d ƒ |  j | j j d d  ƒ t
 ƒ | j d d } |  j | j d | ƒ d  S(	   NiÈ   u   wizardu   stepsu   form1u   another_vari    u   form2u   form(   R   R   R   R   R   R   R    R%   R+   R   t   Truet   context_data(   R   R(   R   (    (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyt   test_template_contextI   s    c      
   C  sT  |  j  j |  j ƒ } |  j | j d ƒ |  j | j d d j d ƒ |  j  j |  j |  j d ƒ } |  j | j d ƒ |  j | j d d j d ƒ |  j d } t	 t
 t ƒ d ƒ | d	 <|  j  j |  j | ƒ } |  j | j d ƒ |  j | j d d j d
 ƒ |  j  j |  j |  j d ƒ } |  j | j d ƒ |  j | j d d j d ƒ |  j  j |  j |  j d ƒ } |  j | j d ƒ | j d } t	 t
 t ƒ d ƒ + } |  j | d d j ƒ  | j ƒ  ƒ Wd  QX| d d j ƒ  | d d =|  j | i d d 6t d 6|  j d 6i d d 6d d 6i d d 6i d d 6i d d 6g g ƒ d  S(   NiÈ   u   wizardu   stepsu   form1i    u   form2i   u   rbu   form2-file1u   form3i   u   form4i   u	   form_listu   file1u   Ponyu   nameu   thirstyu   useru   123 Main Stu   address1u
   Djangolandu   address2u	   blah blahu   random_crap(   R   R   R   R   R   R   R    R+   R   t   openR   t   __file__t   readt   closeR1   R   (   R   R(   t	   post_datat   all_datat   f(    (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyt   test_form_finishX   s6    *	

c      	   C  sÚ  |  j  j |  j ƒ } |  j | j d ƒ |  j  j |  j |  j d ƒ } |  j | j d ƒ |  j d } t t t	 ƒ d ƒ ) } | | d <|  j  j |  j | ƒ } Wd  QX|  j | j d ƒ |  j  j |  j |  j d ƒ } |  j | j d ƒ |  j  j |  j |  j d ƒ } |  j | j d ƒ | j
 d } t t t	 ƒ d ƒ ' } |  j | d	 j ƒ  | j ƒ  ƒ Wd  QX| d	 j ƒ  | d	 =|  j | i d
 d 6t d 6|  j d 6d d 6d d 6d d 6i d d 6i d d 6g d 6ƒ d  S(   NiÈ   i    i   u   rbu   form2-file1i   i   u   all_cleaned_datau   file1u   Ponyu   nameu   thirstyu   useru   123 Main Stu   address1u
   Djangolandu   address2u	   blah blahu   random_crapu   formset-form4(   R   R   R   R   R   R+   R   R4   R   R5   R   R6   R7   R1   R   (   R   R(   R8   t	   post_fileR9   R:   (    (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyt   test_cleaned_dataz   s0    
&
c         C  sk  |  j  j |  j ƒ } |  j | j d ƒ |  j  j |  j |  j d ƒ } |  j | j d ƒ |  j d } | d j ƒ  t t	 t
 ƒ d ƒ | d <|  j  j |  j | ƒ } |  j | j d ƒ |  j  j |  j |  j d ƒ } |  j | j d ƒ |  j  j j d d  ƒ |  j  j j d d  ƒ |  j  j |  j |  j d	 ƒ } |  j | j d ƒ |  j | j d
 d j d ƒ d  S(   NiÈ   i    i   u   form2-file1u   rbi   u	   sessionidu   wizard_cookie_contact_wizardi   u   wizardu   stepsu   form1(   R   R   R   R   R   R+   R   R7   R4   R   R5   t   cookiest   popR%   R   R    (   R   R(   R8   (    (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyt   test_manipulated_data™   s     c         C  s9  |  j  j |  j ƒ } |  j | j d ƒ |  j | j d d j d ƒ |  j  j |  j |  j d ƒ } |  j | j d ƒ |  j | j d d j d ƒ |  j  j |  j |  j d ƒ } |  j | j d ƒ |  j | j d d j d ƒ |  j d } | d j	 ƒ  t
 t t ƒ d	 ƒ | d <|  j  j |  j | ƒ } |  j | j d ƒ |  j | j d d j d
 ƒ |  j  j |  j |  j d ƒ } |  j | j d ƒ |  j | j d d j d ƒ |  j  j |  j |  j d ƒ } |  j | j d ƒ |  j | j d d j d ƒ |  j  j |  j |  j d ƒ } |  j | j d ƒ d  S(   NiÈ   u   wizardu   stepsu   form1i    u   form2i   u   form2-file1u   rbu   form3i   u   form4i   (   R   R   R   R   R   R   R    R+   R   R7   R4   R   R5   (   R   R(   R8   (    (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyt   test_form_refresh¯   s.    (   R   R   t   urlsR   R*   R.   R/   R0   R3   R;   R=   R@   RA   (    (    (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyR      s   								"		t   SessionWizardTestsc           B  s   e  Z d  Z i d d 6Z i d d 6d d 6d d 6i d d 6d	 d
 6d d 6i d d 6d d 6i d d 6d d 6d d 6d d 6d d 6d d 6f Z RS(   u   /wiz_session/u   form1u#   session_contact_wizard-current_stepu   Ponyu
   form1-nameu   2u   form1-thirstyu   123 Main Stu   form2-address1u
   Djangolandu   form2-address2u   form2u	   blah blahu   form3-random_crapu   form3u   0u   form4-INITIAL_FORMSu   form4-TOTAL_FORMSu   form4-MAX_NUM_FORMSu   form4-0-random_crapu   form4-1-random_crapu   form4(   R   R   R   R,   R   (    (    (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyRC   Ï   s*   
t   CookieWizardTestsc           B  s   e  Z d  Z i d d 6Z i d d 6d d 6d d 6i d d 6d	 d
 6d d 6i d d 6d d 6i d d 6d d 6d d 6d d 6d d 6d d 6f Z RS(   u   /wiz_cookie/u   form1u"   cookie_contact_wizard-current_stepu   Ponyu
   form1-nameu   2u   form1-thirstyu   123 Main Stu   form2-address1u
   Djangolandu   form2-address2u   form2u	   blah blahu   form3-random_crapu   form3u   0u   form4-INITIAL_FORMSu   form4-TOTAL_FORMSu   form4-MAX_NUM_FORMSu   form4-0-random_crapu   form4-1-random_crapu   form4(   R   R   R   R,   R   (    (    (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyRD   ï   s*   
t   WizardTestKwargsc           B  s§   e  Z d  Z i d d 6Z i d d 6d d 6d d 6i d d 6d	 d
 6d d 6i d d 6d d 6i d d 6d d 6d d 6d d 6d d 6d d 6f Z d Z d „  Z d „  Z RS(   u   /wiz_other_template/u   form1u"   cookie_contact_wizard-current_stepu   Ponyu
   form1-nameu   2u   form1-thirstyu   123 Main Stu   form2-address1u
   Djangolandu   form2-address2u   form2u	   blah blahu   form3-random_crapu   form3u   0u   form4-INITIAL_FORMSu   form4-TOTAL_FORMSu   form4-MAX_NUM_FORMSu   form4-0-random_crapu   form4-1-random_crapu   form4u6   django.contrib.formtools.tests.wizard.wizardtests.urlsc         C  s9   t  j j d d ƒ \ |  _ } |  j j |  j d d <d  S(   NR   u	   testuser1i    u
   form1-user(   R   R   R   R   R   R   (   R   R   (    (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyR   /  s    c         C  sy   t  j j t  j j t t ƒ ƒ d ƒ } |  j d t t j ƒ | g ƒ * |  j	 j
 |  j ƒ } |  j | d ƒ Wd  QXd  S(   Nu	   templatest   TEMPLATE_DIRSu   other_wizard_form.html(   t   ost   patht   joint   dirnameR   R5   R   t   listRF   R   R   R   t   assertTemplateUsed(   R   t	   templatesR(   (    (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyt   test_template3  s
    '	(   R   R   R   R,   R   RB   R   RN   (    (    (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyRE     s0   
	t   WizardTestGenericViewInterfacec           B  s   e  Z d  „  Z d „  Z RS(   c           sj   d t  f ‡  f d †  ƒ  Y‰  t ƒ  } ˆ  j t j g ƒ } | | j d ƒ ƒ } |  j | j d d ƒ d  S(   Nt
   TestWizardc             s   e  Z d  Z ‡  f d †  Z RS(   u»   
            A subclass that implements ``get_context_data`` using the standard
            protocol for generic views (accept only **kwargs).

            See ticket #17148.
            c           s&   t  ˆ  |  ƒ j |   } d | d <| S(   Nu
   test_valueu   test_key(   t   supert   get_context_data(   R   t   kwargsR   (   RP   (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyRR   D  s    
(   R   R   t   __doc__RR   (    (   RP   (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyRP   =  s   u   /u   test_keyu
   test_value(   R   R   t   as_viewR   t   FormR   R   R2   (   R   t   factoryt   viewR(   (    (   RP   sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyt!   test_get_context_data_inheritance<  s
    	c           s    d t  f ‡ f d †  ƒ  Y‰ d ˆ t f ‡  f d †  ƒ  Y‰  t ƒ  } ˆ  j t j g ƒ } | | j d ƒ ƒ } |  j | j d d ƒ |  j | j d d	 ƒ d  S(
   Nt   AnotherMixinc             s   e  Z ‡  f d  †  Z RS(   c           s&   t  ˆ  |  ƒ j |   } d | d <| S(   Nu   another_valueu   another_key(   RQ   RR   (   R   RS   R   (   RZ   (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyRR   Q  s    
(   R   R   RR   (    (   RZ   (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyRZ   P  s   RP   c             s   e  Z d  Z ‡  f d †  Z RS(   u»   
            A subclass that implements ``get_context_data`` using the standard
            protocol for generic views (accept only **kwargs).

            See ticket #17148.
            c           s&   t  ˆ  |  ƒ j |   } d | d <| S(   Nu
   test_valueu   test_key(   RQ   RR   (   R   RS   R   (   RP   (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyRR   ]  s    
(   R   R   RT   RR   (    (   RP   (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyRP   V  s   u   /u   test_keyu
   test_valueu   another_keyu   another_value(	   t   objectR   R   RU   R   RV   R   R   R2   (   R   RW   RX   R(   (    (   RP   RZ   sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyt    test_get_context_data_with_mixinO  s    	(   R   R   RY   R\   (    (    (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyRO   ;  s   	t   WizardFormKwargsOverrideTestsc           B  s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C  se   t  t |  ƒ j ƒ  t ƒ  |  _ t j j d d d d ƒ |  _ t j j d d d d d t	 ƒ |  _
 d  S(   NR   u   test1t   emailu   normal@example.comu   test2u   staff@example.comt   is_staff(   RQ   R]   R   R   t   rfR   R   t   createt   normal_userR1   t
   staff_user(   R   (    (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyR   m  s    c           sà   |  j  d t j j ƒ  ƒ t j j d |  j j ƒ ‰  d t f ‡  f d †  ƒ  Y} | j t	 g ƒ } | |  j
 j d ƒ ƒ } | j d d } |  j | j j d  ƒ |  j  | j j |  j j ƒ |  j  d | j j d	 d  ƒ ƒ d  S(
   Ni   R   t   InstanceOverrideWizardc             s   e  Z ‡  f d  †  Z RS(   c           s   i ˆ  d 6S(   Nu   instance(    (   R   t   step(   t   queryset(    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyt   get_form_kwargs{  s    (   R   R   Rg   (    (   Rf   (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyRd   z  s   u   /u   wizardu   formu   staff@example.comu   email(   R   R   R   R'   R   Rc   R   R   RU   R	   R`   R2   t   assertNotEqualt   instanceR%   t   initial(   R   Rd   RX   R(   R   (    (   Rf   sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyt   test_instance_is_maintainedv  s    c           sÊ   t  j j d |  j j ƒ ‰  d t f ‡  f d †  ƒ  Y} | j t g ƒ } | |  j j	 d ƒ ƒ } | j
 d d } |  j | j d  ƒ |  j | j ƒ  d ƒ |  j d g t | j j d	 d
 t ƒƒ ƒ d  S(   NR   t   QuerySetOverrideWizardc             s   e  Z ‡  f d  †  Z RS(   c           s   i ˆ  d 6S(   Nu   queryset(    (   R   Re   (   Rf   (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyRg   ‹  s    (   R   R   Rg   (    (   Rf   (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyRl   Š  s   u   /u   wizardu   formi   u   staff@example.comu   emailt   flat(   R   R   t   filterRc   R   R   RU   t   UserFormSetR`   R   R2   Rh   Rf   R%   R   t   initial_form_countRK   t   values_listR1   (   R   Rl   RX   R(   t   formset(    (   Rf   sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyt   test_queryset_is_maintained‡  s    (   R   R   R   Rk   Rs   (    (    (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyR]   k  s   			(   t
   __future__R    RG   t   djangoR   t   django.testR   t   django.test.clientR   t   django.confR   t   django.contrib.auth.modelsR   t   django.contrib.auth.tests.utilsR   t%   django.contrib.formtools.wizard.viewsR   t   django.utils._osR   t	   ModelFormR	   t   modelst   modelformset_factoryRo   R[   R   RC   RD   RE   RO   R]   (    (    (    sP   ../Django//lib/python/django/contrib/formtools/tests/wizard/wizardtests/tests.pyt   <module>   s*   ¸+0