U
    d/
                     @   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mZmZ d dlmZ d dlmZ d	ejifd
dZG dd deZdS )    )parse)modelform_factory)TestCase)
safestring)escape)	countriesfieldswidgets)settings)Personcountryc                 K   s   t tfdg| d|S )Nr   )r   r	   )r   r   )r	   kwargs r   G/tmp/pip-unpacked-wheel-dnjn05s9/django_countries/tests/test_widgets.pyperson_form   s    r   c                   @   sT   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd ZdS )TestCountrySelectWidgetc                 C   s   t ` d S Nr   selfr   r   r   setUp   s    zTestCountrySelectWidget.setUpc                 C   s   t ` d S r   r   r   r   r   r   tearDown   s    z TestCountrySelectWidget.tearDownc                 C   s.   t i d}| jd j}| t|tj d S )N)r	   r   )r   r   widgetZassertFalse
isinstancer	   CountrySelectWidget)r   
PersonFormr   r   r   r   test_not_default_widget   s    
z/TestCountrySelectWidget.test_not_default_widgetc              	   C   sL   | j ddid2 t }|  }| ttt jt j| W 5 Q R X d S )NAUDesertZCOUNTRIES_ONLY)	r
   r   as_passertInr   urlparseurljoinZ
STATIC_URLZCOUNTRIES_FLAG_URLr   r   htmlr   r   r   test_render_contains_flag_url   s    
z5TestCountrySelectWidget.test_render_contains_flag_urlc              	   C   sh   | j ddidN t }|  }| jd|dd | tdj| | tdj| W 5 Q R X d S )Nr   r   r   z"<option value="AU">Desert</option>   )count__)	r
   r   r    ZassertInHTMLr!   r   CountryflagassertNotInr$   r   r   r   test_render(   s    
z#TestCountrySelectWidget.test_renderc              	   C   s`   | j ddidF t }|ddid }| tdj| | tdj| W 5 Q R X d S )Nr   r   r   r   )initialr)   )r
   r   r    r!   r   r*   r+   r,   r$   r   r   r   test_render_initial0   s
    z+TestCountrySelectWidget.test_render_initialc                 C   s>   t  dd}| d| | d| | t|tj d S )Ntestz<script>z&lt;script&gt;)	r	   r   renderr!   r,   
assertTruer   r   ZSafeData)r   outputr   r   r   test_render_escaping7   s    z,TestCountrySelectWidget.test_render_escapingc                 C   s"   t dd}t }||d  d S )NZNZ)r   )instance)r   r   r    )r   Zpersonr   r   r   r   test_render_modelform_instance=   s    
z6TestCountrySelectWidget.test_render_modelform_instancec                 C   s:   t  }| d  }|d |dd  }| d| d S )Nr   >r'   required)r   Z	as_widgetfindr!   )r   r   renderedr   r   r   test_required_attributeB   s    z/TestCountrySelectWidget.test_required_attributeN)__name__
__module____qualname__r   r   r   r&   r-   r/   r4   r6   r;   r   r   r   r   r      s   r   N)urllibr   r"   Zdjango.forms.modelsr   Zdjango.testr   Zdjango.utilsr   Zdjango.utils.htmlr   Zdjango_countriesr   r   r	   Zdjango_countries.confr
   Zdjango_countries.tests.modelsr   r   r   r   r   r   r   r   <module>   s   