U
    luf                     @   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                   @   sF   e Zd ZdddgZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dS )TranslationLoaderTest_translationsZ_supported_localesZ_use_gettextc                 C   s   i t jj_d S N)tornadolocaleZLocale_cache)self r   </tmp/pip-unpacked-wheel-bmg6zs32/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 5 Q R X dD ]}t	 }znt tj|dd}||| W 5 Q R X tj| tjd}| |tjj | |dd W 5 t
| X q: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shutilrmtreewriteencoder   r	   r   r#   ZassertIsInstancer&   r'   r(   )r   fZ	char_dataencodingZ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 )NZgettext_translationsZtornado_testr   r   r   Zlawrightzle droitZgoodzle bienZorganizationZclubclubs   zle club   z	les clubsZsticku	   le bâtonu   les bâtons)r   r	   Zload_gettext_translationsr   r   r    r!   r"   r#   r$   r%   ZGettextLocaler'   r(   pgettextr)   r   r   r   test_gettext<   s      z"TranslationLoaderTest.test_gettextN)
__name__
__module____qualname__r   r   r   r   r*   r7   r=   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 )NZes_LAnameu   Españols   Español)r   r	   ZLOCALE_NAMESr$   r%   r   r'   r   )r   rB   r   r   r   test_non_ascii_nameO   s    z"LocaleDataTest.test_non_ascii_nameN)r>   r?   r@   rC   r   r   r   r   rA   N   s   rA   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B | |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 5 Q R X q^d S )Nen_US           #   T)full_formatzApril 28, 2013 at 6:35 pm)tzinfo)ZawareZnaive)dtr;   )secondsFz2 seconds ago)minutesz2 minutes ago)hoursz2 hours agor:   )days)rK   ZshorterZ	yesterdayi,  z%s %di  z	%s %d, %d)r   r	   r#   datetimer'   Zformat_datenowtimezoneutcreplacer   ZsubTest	timedeltaZ	_weekdaysweekday_monthsmonthdayyear)r   r	   dateZaware_dtZnaive_dtrB   rS   r   r   r   test_format_dateW   sl        	zEnglishTest.test_format_datec                 C   s"   t jd}| |dd d S )NrE   i@B z	1,000,000)r   r	   r#   r'   Zfriendly_numberr)   r   r   r   test_friendly_number   s    z EnglishTest.test_friendly_numberc                 C   sd   t jd}| |g d | |dgd | |ddgd | |dddgd d S )NrE    ABzA and B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 )NrE   rF   rG   rH   rI   rJ   T)r]   ZdowzSunday, April 28FzApril 28)r   r	   r#   rR   r'   Z
format_day)r   r	   r]   r   r   r   test_format_day   s    zEnglishTest.test_format_dayN)r>   r?   r@   r^   r_   re   rf   r   r   r   r   rD   V   s   9rD   )rR   r   r1   r/   ZunittestZtornado.localer   Ztornado.escaper   r   Ztornado.utilr   ZTestCaser   rA   rD   r   r   r   r   <module>   s   B