o
    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   s0   t jjdd}| dd |jtdi | dS )N   )idtitlez	Test page)instance )r   objectsget
setdefault	add_childr	   )kwargs	root_pager   r   _/var/www/html/ndineBlogger/venv/lib/python3.10/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   get_or_create)selflanguage_codesr   r   r   r   setUp   s   zTestLocaleModel.setUpc                 C      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   r!   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   sB   t d | t jd W d    d S 1 sw   Y  d S r+   )r   overrider&   r   r.   r   r/   r   r   r   test_get_active_overridden#   s   "z*TestLocaleModel.test_get_active_overriddenc              	   C   T   dD ]%\}}|  | t|d}| |j| W d    n1 s"w   Y  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'      
z"TestLocaleModel.test_language_namec                 C   @   t dd}| t |j W d    d S 1 sw   Y  d S Nfoor   )r   assertRaisesKeyErrorr;   r'   r   r   r   ,test_language_name_for_unrecognised_language1      
"z<TestLocaleModel.test_language_name_for_unrecognised_languagec              	   C   r3   )N)r4   )r,   u	   français)r8   u   简体中文r   )r:   r   r&   language_name_localr<   r   r   r   test_language_name_local6   r?   z(TestLocaleModel.test_language_name_localc                 C   r@   rA   )r   rC   rD   rG   r'   r   r   r   2test_language_name_local_for_unrecognised_language@   rF   zBTestLocaleModel.test_language_name_local_for_unrecognised_languagec              
   C   s   dD ]Z}|  |K t|d}td | |j|j W d    n1 s'w   Y  t| | |j |j  W d    n1 sHw   Y  W d    n1 sWw   Y  qd S )N)r,   r8   cader   r#   )	r:   r   r   r1   r&   language_name_localizedr;   lowerrG   r   r   r(   r   r   r   5test_language_name_localized_reflects_active_languageE   s$   
zETestLocaleModel.test_language_name_localized_reflects_active_languagec                 C   sX   t dd}| |jd td | |j|j W d    d S 1 s%w   Y  d S )Nr8   r   r9   )r   r&   rL   r   r1   rG   r'   r   r   r   6test_language_name_localized_for_unconfigured_languageY   s
   
"zFTestLocaleModel.test_language_name_localized_for_unconfigured_languagec                 C   r@   rA   )r   rC   rD   rL   r'   r   r   r   6test_language_name_localized_for_unrecognised_language_   rF   zFTestLocaleModel.test_language_name_localized_for_unrecognised_languagec              	   C   r3   )N))r#   F)arT)heT)r,   FrB   Fr   )r:   r   assertIsis_bidir<   r   r   r   test_is_bidid   s   
zTestLocaleModel.test_is_bidic              	   C   s`   t jdfddfD ]%\}}| | t|d}| |j| W d    n1 s(w   Y  qd S )NT)r8   FrT   r   )r   r*   r:   r   rU   
is_defaultr<   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 ]A\}}}| d| d| ) t| t|d	}| |j| W d    n1 sEw   Y  W d    n1 sTw   Y  qd S )
NTr,   Fr8   )r#   zen-gbTrB   zlocale=z active=r   )r   r*   r:   r   r1   r   r&   	is_active)r   locale_languageactive_languager=   r(   r   r   r   test_is_activez   s   



zTestLocaleModel.test_is_activec              	   C   sV   dD ]&\}}t |d}| | | | | W d    n1 s#w   Y  qd S )N)r4   r7   )rB   rB   r   )r   r:   r&   get_display_namer<   r   r   r   test_get_display_name   s   
z%TestLocaleModel.test_get_display_namec              	   C   sV   dD ]&}t |d}| | | t||  W d    n1 s#w   Y  qd S )N)r#   r8   rB   r   )r   r:   r&   strr^   rN   r   r   r   test_str_reflects_get_display   s   
z-TestLocaleModel.test_str_reflects_get_displayr#   r5   r,   r6   )r   c                 C   s   t dd}| | t d S )Nr#   r   )r   assertIsInstance__str__r`   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
   )	depth__gtr,   r   )r(   r#   N)r   r   filterupdater   r   r&   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-   r0   r2   r>   rE   rH   rI   rO   rP   rQ   rW   rY   r]   r_   ra   _rd   rj   r   r   r   r   r      s.    





r   N)django.confr   django.testr   r   django.utilsr   django.utils.translationr   rn   wagtail.modelsr   r   wagtail.test.i18n.modelsr	   r   r   r   r   r   r   <module>   s    