a
    ùÜEb*   ã                   @   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   ú]/home/ja/django-apps/lartica_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 s€J ‚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s†J ‚|dks’J ‚|\}}}|dks¨J ‚|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sêJ ‚|dksöJ ‚|\}}}|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_multipleÚcdÚ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)ÚcheckedrL   Z0_1ZCDr   ZVideozVHS TapeZid_checkbox_select_multiple_1_0Z1_0)	rN   rS   rR   rP   rQ   rT   rU   rO   rV   ÚdvdZDVDZid_checkbox_select_multiple_1_1Z1_1r   ÚunknownÚUnknownZid_checkbox_select_multiple_2Ú2)	rN   rU   rS   rR   rP   rQ   rT   rO   rV   r   )r	   Zas_pr   )r   ÚgroupsÚaudioÚvideorY   rR   ÚoptionsrQ   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 s J ‚|ddddddddœd	d
ddœ	gksÈJ ‚|dksÔJ ‚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�s¢J ‚|dk�s°J ‚d S )NrH   Ú1r   r   TÚ0Zid_checkbox_select_multiple_0)rL   rW   rK   rM   )	rT   rN   rR   rU   rQ   rP   rO   rS   rV   r   FrL   )r
   r   )r   r\   ÚgrouprR   ÚoptionrQ   r   r   r   Útest_optgroup_filter¯   s�    
÷ÿ

÷ÿ

÷ÿ
÷ÿre   N)%Ú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`   re   r   r   r   r   Ú<module>   s*   
M