o
    h                     @   s   d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZm	Z	 d dl
mZ G dd dejZG dd dejZG dd	 d	ejZdS )
    N)utf8
to_unicode)unicode_typec                   @   sD   e Zd Zg dZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dS )TranslationLoaderTest)_translations_supported_locales_use_gettextc                 C   s   i t jj_d S N)tornadolocaleLocale_cache)self r   L/var/www/vscode/kcb/lib/python3.10/site-packages/tornado/test/locale_test.pyclear_locale_cache   s   z(TranslationLoaderTest.clear_locale_cachec                 C   s0   i | _ tjD ]}ttj|| j |< q|   d S r	   )savedr   	SAVE_VARSgetattrr
   r   r   )r   varr   r   r   setUp   s   
zTranslationLoaderTest.setUpc                 C   s.   | j  D ]\}}ttj|| q|   d S r	   )r   itemssetattrr
   r   r   )r   kvr   r   r   tearDown   s   zTranslationLoaderTest.tearDownc                 C   sT   t jtjtjtd t jd}| 	t
|t jj | |dd d S )Ncsv_translationsfr_FRschool   école)r
   r   load_translationsospathjoindirname__file__get
assertTrue
isinstance	CSVLocaleassertEqual	translater   r   r   r   r   test_csv   s   zTranslationLoaderTest.test_csvc              
   C   s   t tjtjtddd}t| }W d    n1 s w   Y  dD ]R}t	 }zFt tj|dd}|
|| W d    n1 sKw   Y  tj| tjd}| |tjj | |dd W t| q't| w d S )	Nr   z	fr_FR.csvrb)z	utf-8-sigzutf-16wbr   r   r   )openr!   r"   r#   r$   r%   r   readtempfilemkdtempwriteencoder
   r   r    r&   assertIsInstancer)   r*   r+   shutilrmtree)r   f	char_dataencodingtmpdirr   r   r   r   test_csv_bom&   s&   	z"TranslationLoaderTest.test_csv_bomc                 C   s   t jtjtjtdd t jd}| 	t
|t jj | |dd | |ddd | |d	dd
 | |ddddd | |ddddd | |ddddd | |ddddd d S )Ngettext_translationstornado_testr   r   r   lawrightzle droitgoodzle bienorganizationclubclubs   zle club   z	les clubssticku	   le bâtonu   les bâtons)r
   r   load_gettext_translationsr!   r"   r#   r$   r%   r&   r'   r(   GettextLocaler*   r+   pgettextr,   r   r   r   test_gettext<   s   z"TranslationLoaderTest.test_gettextN)
__name__
__module____qualname__r   r   r   r   r-   r=   rL   r   r   r   r   r      s    r   c                   @   s   e Zd Zdd ZdS )LocaleDataTestc                 C   s@   t jjd d }| t|t | |d | t|d d S )Nes_LAnameu   Españols   Español)r
   r   LOCALE_NAMESr'   r(   r   r*   r   )r   rR   r   r   r   test_non_ascii_nameO   s   z"LocaleDataTest.test_non_ascii_nameN)rM   rN   rO   rT   r   r   r   r   rP   N   s    rP   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
EnglishTestc              	   C   s  t jd}tddddd}| |j|ddd	 tjtjj}|j	d d
}||d
 D ]\}}| j|d | |j|tjdd ddd | |j|tjdd ddd | |j|tjdd ddd | |j|tjdd dddd |tjdd }| |j|ddd|j|   |tjdd }| |j|dddd|j|jd  |jf  |tjdd }| |j|dddd|j|jd  |j|jf  W d    n1 sw   Y  q/d S )Nen_US           #   T)full_formatzApril 28, 2013 at 6:35 pm)tzinfo)awarenaive)dtrG   )secondsFz2 seconds ago)minutesz2 minutes ago)hoursz2 hours agorF   )days)r\   shorter	yesterdayi,  z%s %di  z	%s %d, %d)r
   r   r&   datetimer*   format_datenowtimezoneutcreplacer   subTest	timedelta	_weekdaysweekday_monthsmonthdayyear)r   r   dateaware_dtnaive_dtrR   ri   r   r   r   test_format_dateW   sj   	zEnglishTest.test_format_datec                 C   s"   t jd}| |dd d S )NrV   i@B z	1,000,000)r
   r   r&   r*   friendly_numberr,   r   r   r   test_friendly_number   s   z EnglishTest.test_friendly_numberc                 C   sb   t jd}| |g d | |dgd | |ddgd | |g dd d S )NrV    ABzA and B)r|   r}   Cz
A, B and C)r
   r   r&   r*   listr,   r   r   r   	test_list   s
   zEnglishTest.test_listc                 C   sN   t jd}tddddd}| |j|ddd	 | |j|d
dd d S )NrV   rW   rX   rY   rZ   r[   T)ru   dowzSunday, April 28FzApril 28)r
   r   r&   rg   r*   
format_day)r   r   ru   r   r   r   test_format_day   s   zEnglishTest.test_format_dayN)rM   rN   rO   rx   rz   r   r   r   r   r   r   rU   V   s
    9rU   )rg   r!   r7   r2   unittesttornado.localer
   tornado.escaper   r   tornado.utilr   TestCaser   rP   rU   r   r   r   r   <module>   s    B