o
    Qœ_|  ã                   @   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   ú:/usr/lib/python3/dist-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_nameQ   s   z"LocaleDataTest.test_non_ascii_nameN)rM   rN   rO   rT   r   r   r   r   rP   P   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 ¡ }|  |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 ¡ d S )NÚen_USéÝ  é   é   é   é#   T)Úfull_formatzApril 28, 2013 at 6:35 pmrG   )Ú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ÚutcnowÚ	timedeltaÚ	_weekdaysÚweekdayÚ_monthsÚmonthÚdayÚyear)r   r   ÚdateÚnowr   r   r   Útest_format_dateY   sN   ÿ
þþþÿüþþþ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)rs   rt   Ú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)rm   ÚdowzSunday, April 28FzApril 28)r
   r   r&   rc   r*   Ú
format_day)r   r   rm   r   r   r   Útest_format_day“   s   zEnglishTest.test_format_dayN)rM   rN   rO   ro   rq   rw   rz   r   r   r   r   rU   X   s
    /rU   )rc   r!   r7   r2   ÚunittestÚtornado.localer
   Útornado.escaper   r   Útornado.utilr   ÚTestCaser   rP   rU   r   r   r   r   Ú<module>   s    D