U
    |h                     @   sl   d dl mZ d dlmZ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 ZG d	d
 d
eZdS )    )settings)TestCaseoverride_settings)translation)gettext_lazy)LocalePage)TestPagec                  K   s,   t jjdd}| dd |jtf | dS )N   )idtitlez	Test page)instance)r   objectsget
setdefaultZ	add_childr	   )kwargsZ	root_page r   g/var/www/dating/data/www/fatepal.com/env/lib/python3.8/site-packages/wagtail/tests/test_locale_model.pymake_test_page
   s    r   c                   @   s   e Zd Zdd Zdd Zedd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d Zdd Zdd Zdd  Zd!d" Zd#d$ Zed%ed&fd'ed(fgd)d*d+ Zed'dd,d- Zd.S )/TestLocaleModelc                 C   s*   t tj }|D ]}tjj|d qd S )Nlanguage_code)dictr   	LANGUAGESkeysr   r   Zget_or_create)selfZlanguage_codesr   r   r   r   setUp   s    zTestLocaleModel.setUpc                 C   s   t  }| |jd d S Nenr   get_defaultassertEqualr   r   localer   r   r   test_default   s    zTestLocaleModel.test_defaultzfr-ca)LANGUAGE_CODEc                 C   s   t  }| |jd d S Nfrr   r"   r   r   r   &test_default_doesnt_have_to_be_english   s    z6TestLocaleModel.test_default_doesnt_have_to_be_englishc                 C   s   |  t jd d S r   )r!   r   
get_activer   r   r   r   r   test_get_active_default    s    z'TestLocaleModel.test_get_active_defaultc              	   C   s,   t d | t jd W 5 Q R X d S r&   )r   overrider!   r   r)   r   r*   r   r   r   test_get_active_overridden#   s    z*TestLocaleModel.test_get_active_overriddenc              
   C   s@   dD ]6\}}|  | t|d}| |j| W 5 Q R X qd S )N)r   English)r'   Frenchzh-hansSimplified Chineser   )subTestr   r!   language_namer   r   expected_resultr#   r   r   r   test_language_name'   s    
z"TestLocaleModel.test_language_namec              	   C   s*   t dd}| t |j W 5 Q R X d S Nfoor   )r   assertRaisesKeyErrorr5   r"   r   r   r   ,test_language_name_for_unrecognised_language1   s    
z<TestLocaleModel.test_language_name_for_unrecognised_languagec              
   C   s@   dD ]6\}}|  | t|d}| |j| W 5 Q R X qd S )N)r.   )r'   u	   français)r2   u   简体中文r   )r4   r   r!   language_name_localr6   r   r   r   test_language_name_local6   s    
z(TestLocaleModel.test_language_name_localc              	   C   s*   t dd}| t |j W 5 Q R X d S r9   )r   r;   r<   r>   r"   r   r   r   2test_language_name_local_for_unrecognised_language@   s    
zBTestLocaleModel.test_language_name_local_for_unrecognised_languagec                 C   s   dD ]x}|  |d t|d}td | |j|j W 5 Q R X t| | |j |j  W 5 Q R X W 5 Q R X qd S )N)r'   r2   cader   r   )	r4   r   r   r,   r!   language_name_localizedr5   lowerr>   r   r   r#   r   r   r   5test_language_name_localized_reflects_active_languageE   s    
 zETestLocaleModel.test_language_name_localized_reflects_active_languagec              	   C   sB   t dd}| |jd td | |j|j W 5 Q R X d S )Nr2   r   r3   )r   r!   rC   r   r,   r>   r"   r   r   r   6test_language_name_localized_for_unconfigured_languageY   s    
zFTestLocaleModel.test_language_name_localized_for_unconfigured_languagec              	   C   s*   t dd}| t |j W 5 Q R X d S r9   )r   r;   r<   rC   r"   r   r   r   6test_language_name_localized_for_unrecognised_language_   s    
zFTestLocaleModel.test_language_name_localized_for_unrecognised_languagec              
   C   s@   dD ]6\}}|  | t|d}| |j| W 5 Q R X qd S )N))r   F)arT)heT)r'   Fr:   Fr   )r4   r   assertIsZis_bidir6   r   r   r   test_is_bidid   s    
zTestLocaleModel.test_is_bidic              
   C   sL   t jdfddfD ]6\}}| | t|d}| |j| W 5 Q R X qd S )NT)r2   FrK   r   )r   r%   r4   r   rL   
is_defaultr6   r   r   r   test_is_defaultp   s    
zTestLocaleModel.test_is_defaultc                 C   s   t jt jdft jddfdt jdfddt jdffD ]Z\}}}| d| d| 4 t| t|d	}| |j| W 5 Q R X W 5 Q R X q0d S )
NTr'   Fr2   )r   zen-gbTr:   zlocale=z active=r   )r   r%   r4   r   r,   r   r!   Z	is_active)r   Zlocale_languageZactive_languager7   r#   r   r   r   test_is_activez   s    



zTestLocaleModel.test_is_activec              
   C   sB   dD ]8\}}t |d}| | | | | W 5 Q R X qd S )N)r.   r1   )r:   r:   r   )r   r4   r!   get_display_namer6   r   r   r   test_get_display_name   s    
z%TestLocaleModel.test_get_display_namec              
   C   sB   dD ]8}t |d}| | | t||  W 5 Q R X qd S )N)r   r2   r:   r   )r   r4   r!   strrQ   rE   r   r   r   test_str_reflects_get_display   s    
z-TestLocaleModel.test_str_reflects_get_displayr   r/   r'   r0   )r   c                 C   s   t dd}| | t d S )Nr   r   )r   ZassertIsInstance__str__rS   r"   r   r   r   $test_str_when_languages_uses_gettext   s    
z4TestLocaleModel.test_str_when_languages_uses_gettextc                 C   s^   t jjddjtjjddd | t  jj	d tjjdd
  | t  jj	d dS )z
        On deleting the locale used for the root page (but no 'real' pages), the
        root page should be reassigned to a new locale (the default one, if possible)
        r
   )Z	depth__gtr'   r   )r#   r   N)r   r   filterupdater   r   r!   Zget_first_root_noder#   r   deleter*   r   r   r   /test_change_root_page_locale_on_locale_deletion   s    z?TestLocaleModel.test_change_root_page_locale_on_locale_deletionN)__name__
__module____qualname__r   r$   r   r(   r+   r-   r8   r=   r?   r@   rF   rG   rH   rM   rO   rP   rR   rT   _rV   rZ   r   r   r   r   r      s,   





r   N)Zdjango.confr   Zdjango.testr   r   Zdjango.utilsr   Zdjango.utils.translationr   r^   Zwagtail.modelsr   r   Zwagtail.test.i18n.modelsr	   r   r   r   r   r   r   <module>   s   