a
    xd*                      @   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 d dlmZ d dlmZ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mZ dd Zdd Zdd Zdd Z dd Z!edd Z"dd Z#dd Z$dS )     )forms)Template)Context)SimpleTestCase)
FormHelper)Layout)	optgroups)GroupedChoiceFormSampleForm5)contains_partial)list_differencelist_intersectionrender_field   )only_bootstrap4)
SampleForm)parse_expected
parse_formc                   C   s    t ddgddgdgksJ d S )Nr         )r    r   r   U/var/www/html/Ranjet/env/lib/python3.9/site-packages/crispy_forms/tests/test_utils.pytest_list_intersection   s    r   c                   C   s"   t g dddgddgksJ d S )N)r   r   r   r      r   r   r   )r   r   r   r   r   test_list_difference   s    r   c                  C   s    t d d d d d} | dksJ d S )N)fieldformZ
form_stylecontext )r   )renderedr   r   r   !test_render_field_with_none_field   s    r    c                     s   ddl m}  dG fddd|  G  fdddtjG fdd	d	tj}td
}|td|ddidi}|v sJ d S )Nr   )
BoundFieldZxyxyxyxyxyxc                       s   e Zd Ze fddZdS )z1test_custom_bound_field.<locals>.CustomBoundFieldc                    s    S Nr   )selfextrar   r   auto_id%   s    z9test_custom_bound_field.<locals>.CustomBoundField.auto_idN)__name__
__module____qualname__propertyr&   r   r$   r   r   CustomBoundField$   s   r+   c                       s   e Zd Z fddZdS )z,test_custom_bound_field.<locals>.MyCharFieldc                    s    || |S r"   r   )r#   r   
field_namer+   r   r   get_bound_field*   s    z<test_custom_bound_field.<locals>.MyCharField.get_bound_fieldN)r'   r(   r)   r.   r   r-   r   r   MyCharField)   s   r/   c                       s"   e Zd Z Z fddZ  ZS )z'test_custom_bound_field.<locals>.MyFormc                    s*   t  j|i | t | _td| j_d S )Nf)super__init__r   helperr   layout)r#   argskwargs	__class__r   r   r2   0   s    z0test_custom_bound_field.<locals>.MyForm.__init__)r'   r(   r)   r0   r2   __classcell__r   )r/   r7   r   MyForm-   s   r:   z;{% load crispy_forms_tags %}
{% crispy form "bootstrap3" %}r   r0   Z	something)data)Zdjango.forms.boundfieldr!   r   Z	CharFieldZFormr   renderr   )r!   r:   templater   r   )r+   r/   r%   r   test_custom_bound_field   s    r>   c                  C   s   t  } d}d}| t|| | d}| tt|| | d}| tt|| | d}d}| t|| | d}| t|| | d}d}d}| t|| | d	}d
}| tt|| | t||dd d S )Nz<span></span>z<form>%s</form>z<span></span><b></b>z<span>a</span>z<span id="e"></span>z+<form id="tt"><span id="f"></span>%s</form>z<script></script>z<span id="g"></span>z#<div id="r"><span>toto</span></div>z<form><div id="r"></div></form>T)Zignore_needle_children)r   
assertTruer   assertRaisesNotImplementedErrorZassertFalse)cneedlehtmlmissingr   r   r   test_contains_partial;   s*    rF   c                  C   s2   t  } t | _td| j_t| tdks.J d S )NZ
is_companyzutils_test.html)r   r   r3   r   r4   r   r   )r   r   r   r   test_parse_expected_and_formZ   s    rG   c                  C   sH  t dddgi} |   t| d }|\}}}|\}}}|dksDJ |ddddid	d
ddddd	dddddddddddd	gksJ |dksJ |\}}}|dksJ |dddddddddddd	dddddidddddd	gksJ |dksJ |\}}}|d u sJ |dddddd id!dddd"	gks6J |d#ksDJ d S )$Ncheckbox_select_multipleZcdZvhsZAudioZvinylcheckboxidZid_checkbox_select_multiple_0_0Z0_0ZVinyl)django/forms/widgets/checkbox_option.htmlFT)	valuetypeattrsindexlabeltemplate_namenameselected
wrap_labelZid_checkbox_select_multiple_0_1)checkedrJ   Z0_1ZCDr   ZVideozVHS TapeZid_checkbox_select_multiple_1_0Z1_0)	rL   rQ   rP   rN   rO   rR   rS   rM   rT   ZdvdZDVDZid_checkbox_select_multiple_1_1Z1_1r   unknownUnknownZid_checkbox_select_multiple_22)	rL   rS   rQ   rP   rN   rO   rR   rM   rT   r   )r	   Zas_pr   )r   groupsaudiovideorV   rP   optionsrO   r   r   r   test_optgroup_filter_nestedb   s    





r]   c                  C   s  t ddi} t| d }|d }|\}}}|d u s6J |ddddddddd	d
dd	gks^J |dksjJ t ddi} t| d }|d }|\}}}|d u sJ |ddddddddd	d
dd	gksJ |dksJ t ddi} t| d }|d }|\}}}|d u sJ |dddddddid	d
dd	gks4J |dksBJ t dd i} t| d }|d }|\}}}|d u szJ |dddddddid	d
dd	gksJ |dksJ d S )NrH   1r   r   T0Zid_checkbox_select_multiple_0)rJ   rU   rI   rK   )	rR   rL   rP   rS   rO   rN   rM   rQ   rT   r   FrJ   )r
   r   )r   rY   grouprP   optionrO   r   r   r   test_optgroup_filter   s    





rb   N)%Zdjangor   Zdjango.template.baser   Zdjango.template.contextr   Zdjango.testr   Zcrispy_forms.helperr   Zcrispy_forms.layoutr   Z.crispy_forms.templatetags.crispy_forms_filtersr   Zcrispy_forms.tests.formsr	   r
   Zcrispy_forms.tests.utilsr   Zcrispy_forms.utilsr   r   r   Zconftestr   r   utilsr   r   r   r   r    r>   rF   rG   r]   rb   r   r   r   r   <module>   s*   
M