Your IP : 216.73.216.213


Current Path : /proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/test_gettext.cpython-34.pyo

�
f f�[�@s�ddlZddlZddlZddlZddlZddlmZdZdZdZ	ej
jdd�Zej
jed�Z
ej
jed	�Zej
jed
�ZGdd�dej�Zd
ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�dej�ZGdd�de�Zdd�Zed kr�e�ndS)!�N)�supports3hIElQAAAAAGAAAAHAAAAEwAAAALAAAAfAAAAAAAAACoAAAAFQAAAKkAAAAjAAAAvwAAAKEAAADj
AAAABwAAAIUBAAALAAAAjQEAAEUBAACZAQAAFgAAAN8CAAAeAAAA9gIAAKEAAAAVAwAABQAAALcD
AAAJAAAAvQMAAAEAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABQAAAAYAAAACAAAAAFJh
eW1vbmQgTHV4dXJ5IFlhY2gtdABUaGVyZSBpcyAlcyBmaWxlAFRoZXJlIGFyZSAlcyBmaWxlcwBU
aGlzIG1vZHVsZSBwcm92aWRlcyBpbnRlcm5hdGlvbmFsaXphdGlvbiBhbmQgbG9jYWxpemF0aW9u
CnN1cHBvcnQgZm9yIHlvdXIgUHl0aG9uIHByb2dyYW1zIGJ5IHByb3ZpZGluZyBhbiBpbnRlcmZh
Y2UgdG8gdGhlIEdOVQpnZXR0ZXh0IG1lc3NhZ2UgY2F0YWxvZyBsaWJyYXJ5LgBtdWxsdXNrAG51
ZGdlIG51ZGdlAFByb2plY3QtSWQtVmVyc2lvbjogMi4wClBPLVJldmlzaW9uLURhdGU6IDIwMDAt
MDgtMjkgMTI6MTktMDQ6MDAKTGFzdC1UcmFuc2xhdG9yOiBKLiBEYXZpZCBJYsOhw7FleiA8ai1k
YXZpZEBub29zLmZyPgpMYW5ndWFnZS1UZWFtOiBYWCA8cHl0aG9uLWRldkBweXRob24ub3JnPgpN
SU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4
NTktMQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBub25lCkdlbmVyYXRlZC1CeTogcHlnZXR0
ZXh0LnB5IDEuMQpQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD1uIT0xOwoAVGhyb2F0
d29iYmxlciBNYW5ncm92ZQBIYXkgJXMgZmljaGVybwBIYXkgJXMgZmljaGVyb3MAR3V2ZiB6YnFo
eXIgY2ViaXZxcmYgdmFncmVhbmd2YmFueXZtbmd2YmEgbmFxIHlicG55dm1uZ3ZiYQpmaGNjYmVn
IHNiZSBsYmhlIENsZ3ViYSBjZWJ0ZW56ZiBvbCBjZWJpdnF2YXQgbmEgdmFncmVzbnByIGdiIGd1
ciBUQUgKdHJnZ3JrZyB6cmZmbnRyIHBuZ255YnQgeXZvZW5lbC4AYmFjb24Ad2luayB3aW5rAA==
s�3hIElQAAAAACAAAAHAAAACwAAAAFAAAAPAAAAAAAAABQAAAABAAAAFEAAAAPAQAAVgAAAAQAAABm
AQAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAYWLDngBQcm9qZWN0LUlkLVZlcnNpb246IDIuMApQTy1S
ZXZpc2lvbi1EYXRlOiAyMDAzLTA0LTExIDEyOjQyLTA0MDAKTGFzdC1UcmFuc2xhdG9yOiBCYXJy
eSBBLiBXQXJzYXcgPGJhcnJ5QHB5dGhvbi5vcmc+Ckxhbmd1YWdlLVRlYW06IFhYIDxweXRob24t
ZGV2QHB5dGhvbi5vcmc+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp
bjsgY2hhcnNldD11dGYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkdlbmVyYXRl
ZC1CeTogbWFudWFsbHkKAMKkeXoA
sL3hIElQAAAAABAAAAHAAAACQAAAADAAAALAAAAAAAAAA4AAAAeAEAADkAAAABAAAAAAAAAAAAAAAA
UHJvamVjdC1JZC1WZXJzaW9uOiBObyBQcm9qZWN0IDAuMApQT1QtQ3JlYXRpb24tRGF0ZTogV2Vk
IERlYyAxMSAwNzo0NDoxNSAyMDAyClBPLVJldmlzaW9uLURhdGU6IDIwMDItMDgtMTQgMDE6MTg6
NTgrMDA6MDAKTGFzdC1UcmFuc2xhdG9yOiBKb2huIERvZSA8amRvZUBleGFtcGxlLmNvbT4KSmFu
ZSBGb29iYXIgPGpmb29iYXJAZXhhbXBsZS5jb20+Ckxhbmd1YWdlLVRlYW06IHh4IDx4eEBleGFt
cGxlLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy
c2V0PWlzby04ODU5LTE1CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFi
bGUKR2VuZXJhdGVkLUJ5OiBweWdldHRleHQucHkgMS4zCgA=
�xx�LC_MESSAGESz
gettext.mozugettext.mozmetadata.moc@s(eZdZdd�Zdd�ZdS)�GettextBaseTestcCs�tjjt�s"tjt�nttd��}|jtj	t
��WdQXttd��}|jtj	t��WdQXtt
d��}|jtj	t��WdQXtj�|_d|jd<tjj�dS)N�wbrZLANGUAGE)�os�path�isdir�	LOCALEDIR�makedirs�open�MOFILE�write�base64�decodebytes�GNU_MO_DATA�UMOFILE�UMO_DATA�MMOFILE�MMO_DATArZEnvironmentVarGuard�env�gettext�
_translations�clear)�self�fp�r�6/opt/alt/python34/lib64/python3.4/test/test_gettext.py�setUp@s
zGettextBaseTest.setUpcCs4|jj�|`tjtjjt�d�dS)Nr)r�__exit__rZrmtreerr�splitr
)rrrr�tearDownMs
zGettextBaseTest.tearDownN)�__name__�
__module__�__qualname__rr!rrrrr?s
rs�3hIElQAAAAABAAAAHAAAACQAAAAAAAAAAAAAAAAAAAAsAAAAggAAAC0AAAAAUGx1cmFsLUZvcm1z
OiBucGx1cmFscz0yOyBwbHVyYWw9KG4gIT0gMSk7CiMtIy0jLSMtIyAgbWVzc2FnZXMucG8gKEVk
WCBTdHVkaW8pICAjLSMtIy0jLSMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVU
Ri04CgA=
c@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�GettextTestCase1cCs9tj|�tj|_t|_tjd|j�dS)Nr)	rrr�curdir�	localedirr
�mofiler�install)rrrrrZs
	zGettextTestCase1.setUpcCsY|j}|td�d�|td�d�|td�d�|td�d�dS)N�	albatross�mullusk�baconzRaymond Luxury Yach-tzThroatwobbler Mangroveznudge nudgez	wink wink)�assertEqual�_)r�eqrrr�test_some_translations`s
	z'GettextTestCase1.test_some_translationscCsY|j}|td�d�|td�d�|td�d�|td�d�dS)Nr*r+r,zRaymond Luxury Yach-tzThroatwobbler Mangroveznudge nudgez	wink wink)r-r.)rr/rrr�test_double_quoteshs
	z#GettextTestCase1.test_double_quotescCsY|j}|td�d�|td�d�|td�d�|td�d�dS)Nr*r+r,zRaymond Luxury Yach-tzThroatwobbler Mangroveznudge nudgez	wink wink)r-r.)rr/rrr�test_triple_single_quotesps
	z*GettextTestCase1.test_triple_single_quotescCsY|j}|td�d�|td�d�|td�d�|td�d�dS)Nr*r+r,zRaymond Luxury Yach-tzThroatwobbler Mangroveznudge nudgez	wink wink)r-r.)rr/rrr�test_triple_double_quotesxs
	z*GettextTestCase1.test_triple_double_quotescCs |j}|td�d�dS)Nz�This module provides internationalization and localization
support for your Python programs by providing an interface to the GNU
gettext message catalog library.z�Guvf zbqhyr cebivqrf vagreangvbanyvmngvba naq ybpnyvmngvba
fhccbeg sbe lbhe Clguba cebtenzf ol cebivqvat na vagresnpr gb gur TAH
trggrkg zrffntr pngnybt yvoenel.)r-r.)rr/rrr�test_multiline_strings�s	z'GettextTestCase1.test_multiline_stringsc
Cs�|j}t|jd��}tj|�}WdQX|j�|td�d�|j�|td�d�ddl}|jddd	g�|t|j�||j|j�|t|j�|`|`dS)
N�rbznudge nudgez	wink winkr+r,r�namesr�lgettext)	r-rr(r�GNUTranslationsr)r.�builtinsr7)rr/r�tr9rrr�test_the_alternative_interface�s	

z/GettextTestCase1.test_the_alternative_interfaceN)
r"r#r$rr0r1r2r3r4r;rrrrr%Ys
r%c@speZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�GettextTestCase2cCsItj|�tj|_tjd|j�tjd�tj|_dS)Nr)	rrrr&r'r�bindtextdomain�
textdomainr.)rrrrr�s


zGettextTestCase2.setUpcCs |jtjd�|j�dS)Nr)r-rr=r')rrrr�test_bindtextdomain�sz$GettextTestCase2.test_bindtextdomaincCs|jtj�d�dS)Nr)r-rr>)rrrr�test_textdomain�sz GettextTestCase2.test_textdomaincCse|j}||jd�d�||jd�d�||jd�d�||jd�d�dS)Nr*r+r,zRaymond Luxury Yach-tzThroatwobbler Mangroveznudge nudgez	wink wink)r-r.)rr/rrrr0�s
	z'GettextTestCase2.test_some_translationscCse|j}||jd�d�||jd�d�||jd�d�||jd�d�dS)Nr*r+r,zRaymond Luxury Yach-tzThroatwobbler Mangroveznudge nudgez	wink wink)r-r.)rr/rrrr1�s
	z#GettextTestCase2.test_double_quotescCse|j}||jd�d�||jd�d�||jd�d�||jd�d�dS)Nr*r+r,zRaymond Luxury Yach-tzThroatwobbler Mangroveznudge nudgez	wink wink)r-r.)rr/rrrr2�s
	z*GettextTestCase2.test_triple_single_quotescCse|j}||jd�d�||jd�d�||jd�d�||jd�d�dS)Nr*r+r,zRaymond Luxury Yach-tzThroatwobbler Mangroveznudge nudgez	wink wink)r-r.)rr/rrrr3�s
	z*GettextTestCase2.test_triple_double_quotescCs#|j}||jd�d�dS)Nz�This module provides internationalization and localization
support for your Python programs by providing an interface to the GNU
gettext message catalog library.z�Guvf zbqhyr cebivqrf vagreangvbanyvmngvba naq ybpnyvmngvba
fhccbeg sbe lbhe Clguba cebtenzf ol cebivqvat na vagresnpr gb gur TAH
trggrkg zrffntr pngnybt yvoenel.)r-r.)rr/rrrr4�s		z'GettextTestCase2.test_multiline_stringsN)r"r#r$rr?r@r0r1r2r3r4rrrrr<�s	r<c@s$eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/S)0�PluralFormsTestCasecCstj|�t|_dS)N)rrr
r()rrrrr�s
zPluralFormsTestCase.setUpcCsQ|j}tjddd�}||d�tjddd�}||d�dS)NzThere is %s filezThere are %s files�zHay %s fichero�zHay %s ficheros)r-r�ngettext)rr/�xrrr�test_plural_forms1�s
	
z&PluralFormsTestCase.test_plural_forms1c
Cs{|j}t|jd��}tj|�}WdQX|jddd�}||d�|jddd�}||d�dS)Nr5zThere is %s filezThere are %s filesrBzHay %s ficherorCzHay %s ficheros)r-rr(rr8rD)rr/rr:rErrr�test_plural_forms2�s	
z&PluralFormsTestCase.test_plural_forms2csQ|j}tjd��dj�fdd�td�D��}||d�dS)N�0�cs"g|]}t�|���qSr)�str)�.0rE)�frr�
<listcomp>�s	z/PluralFormsTestCase.test_ja.<locals>.<listcomp>��Z�00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)r-r�c2py�join�range)rr/�sr)rLr�test_ja�s	(zPluralFormsTestCase.test_jacsQ|j}tjd��dj�fdd�td�D��}||d�dS)Nzn != 1rIcs"g|]}t�|���qSr)rJ)rKrE)rLrrrM�s	z/PluralFormsTestCase.test_de.<locals>.<listcomp>rNZ�10111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111)r-rrOrPrQ)rr/rRr)rLr�test_de�s	(zPluralFormsTestCase.test_decsQ|j}tjd��dj�fdd�td�D��}||d�dS)Nzn>1rIcs"g|]}t�|���qSr)rJ)rKrE)rLrrrMs	z/PluralFormsTestCase.test_fr.<locals>.<listcomp>rNZ�00111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111)r-rrOrPrQ)rr/rRr)rLr�test_fr�s	(zPluralFormsTestCase.test_frcsQ|j}tjd��dj�fdd�td�D��}||d�dS)Nz)n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2rIcs"g|]}t�|���qSr)rJ)rKrE)rLrrrMs	z/PluralFormsTestCase.test_lv.<locals>.<listcomp>rNZ�20111111111111111111101111111110111111111011111111101111111110111111111011111111101111111110111111111011111111111111111110111111111011111111101111111110111111111011111111101111111110111111111011111111)r-rrOrPrQ)rr/rRr)rLr�test_lvs	(zPluralFormsTestCase.test_lvcsQ|j}tjd��dj�fdd�td�D��}||d�dS)Nzn==1 ? 0 : n==2 ? 1 : 2rIcs"g|]}t�|���qSr)rJ)rKrE)rLrrrMs	z/PluralFormsTestCase.test_gd.<locals>.<listcomp>rN��20122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222)r-rrOrPrQ)rr/rRr)rLr�test_gd	s	(zPluralFormsTestCase.test_gdcsQ|j}tjd��dj�fdd�td�D��}||d�dS)Nzn==1 ? 0 : (n==2 ? 1 : 2)rIcs"g|]}t�|���qSr)rJ)rKrE)rLrrrMs	z0PluralFormsTestCase.test_gd2.<locals>.<listcomp>rNrW)r-rrOrPrQ)rr/rRr)rLr�test_gd2s	(zPluralFormsTestCase.test_gd2csQ|j}tjd��dj�fdd�td�D��}||d�dS)Nz6n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2rIcs"g|]}t�|���qSr)rJ)rKrE)rLrrrMs	z/PluralFormsTestCase.test_ro.<locals>.<listcomp>rNZ�10111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222)r-rrOrPrQ)rr/rRr)rLr�test_ros	(zPluralFormsTestCase.test_rocsQ|j}tjd��dj�fdd�td�D��}||d�dS)NzEn%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2rIcs"g|]}t�|���qSr)rJ)rKrE)rLrrrMs	z/PluralFormsTestCase.test_lt.<locals>.<listcomp>rNZ�20111111112222222222201111111120111111112011111111201111111120111111112011111111201111111120111111112011111111222222222220111111112011111111201111111120111111112011111111201111111120111111112011111111)r-rrOrPrQ)rr/rRr)rLr�test_lts	(zPluralFormsTestCase.test_ltcsQ|j}tjd��dj�fdd�td�D��}||d�dS)NzPn%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2rIcs"g|]}t�|���qSr)rJ)rKrE)rLrrrM%s	z/PluralFormsTestCase.test_ru.<locals>.<listcomp>rNZ�20111222222222222222201112222220111222222011122222201112222220111222222011122222201112222220111222222011122222222222222220111222222011122222201112222220111222222011122222201112222220111222222011122222)r-rrOrPrQ)rr/rRr)rLr�test_ru"s	(zPluralFormsTestCase.test_rucsQ|j}tjd��dj�fdd�td�D��}||d�dS)Nz#(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2rIcs"g|]}t�|���qSr)rJ)rKrE)rLrrrM+s	z/PluralFormsTestCase.test_cs.<locals>.<listcomp>rNZ�20111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222)r-rrOrPrQ)rr/rRr)rLr�test_cs(s	(zPluralFormsTestCase.test_cscsQ|j}tjd��dj�fdd�td�D��}||d�dS)Nz@n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2rIcs"g|]}t�|���qSr)rJ)rKrE)rLrrrM1s	z/PluralFormsTestCase.test_pl.<locals>.<listcomp>rNZ�20111222222222222222221112222222111222222211122222221112222222111222222211122222221112222222111222222211122222222222222222111222222211122222221112222222111222222211122222221112222222111222222211122222)r-rrOrPrQ)rr/rRr)rLr�test_pl.s	(zPluralFormsTestCase.test_plcsQ|j}tjd��dj�fdd�td�D��}||d�dS)Nz:n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3rIcs"g|]}t�|���qSr)rJ)rKrE)rLrrrM7s	z/PluralFormsTestCase.test_sl.<locals>.<listcomp>rNZ�30122333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333012233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333)r-rrOrPrQ)rr/rRr)rLr�test_sl4s	(zPluralFormsTestCase.test_slcsQ|j}tjd��dj�fdd�td�D��}||d�dS)NzNn==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5rIcs"g|]}t�|���qSr)rJ)rKrE)rLrrrM=s	z/PluralFormsTestCase.test_ar.<locals>.<listcomp>rNZ�01233333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444445553333333344444444444444444444444444444444444444444444444444444444444444444444444444444444444444444)r-rrOrPrQ)rr/rRr)rLr�test_ar:s	(zPluralFormsTestCase.test_arcCs�|j}|ttjd�|ttjd�|ttjd�|ttjddd�|jtjddd�d�d	�|ttjd
dddd�|ttjd
dddd�|jtjd
dd�d�d�dS)Nzos.chmod('/etc/passwd',0777)z"(eval(foo) && ""zf"{os.system('sh')}"zn+i'�n�drB�e�(�)�z((((((((((((((((((((z)))))))))))))))))))))�assertRaises�
ValueErrorrrOr-)rZraisesrrr�
test_security@s	'##z!PluralFormsTestCase.test_securitycstjd��|jdj�fdd�td�D��d�tjd��|jdj�fdd�td�D��d	�tjd
��|jdj�fdd�td�D��d�tjd��|jdj�fd
d�td�D��d�dS)Nzn == n == nrIc3s!|]}t�|��VqdS)N)rJ)rKrE)rLrr�	<genexpr>Ssz>PluralFormsTestCase.test_chained_comparison.<locals>.<genexpr>�Z010z
1 < n == nc3s!|]}t�|��VqdS)N)rJ)rKrE)rLrrrjUsZ100z
n == n < 2c3s!|]}t�|��VqdS)N)rJ)rKrE)rLrrrjWsz	0 < n < 2c3s!|]}t�|��VqdS)N)rJ)rKrE)rLrrrjYsZ111)rrOr-rPrQ)rr)rLr�test_chained_comparisonPs222z+PluralFormsTestCase.test_chained_comparisoncCs#|jtjd�d�d�dS)NZ0123rB�{)r-rrO)rrrr�test_decimal_number[sz'PluralFormsTestCase.test_decimal_numbercCskddddddddd	d
ddd
ddg}x1|D])}|jt��tj|�WdQXq:WdS)Nzx>1z(n>1zn>1)z
42**42**42Z0xaz1.0Z1e2zn>0x1z+nz-nzn()zn(1)z1+Znnzn n)rgrhrrO)rZinvalid_expressions�exprrrr�test_invalid_syntax^s

z'PluralFormsTestCase.test_invalid_syntaxcCs�|jtjd�d�d�|jtjd�d�d�|jtjd�d�d�|jtjd�d�d�dS)Nz	n?1?2:3:4r�rBrCz	n?1:3?4:5)r-rrO)rrrr�test_nested_condition_operatorgsz2PluralFormsTestCase.test_nested_condition_operatorcCs~tjd�}|j|d�d�|j|d�d�|j|d�d�|j|d�d�|jt|d�dS)	Nz2/n*3rB�rCrkr���i����)rrOr-rg�ZeroDivisionError)rrLrrr�
test_divisionmsz!PluralFormsTestCase.test_divisioncCs�tjd�}|j|d�d�|j|d�d�|j|d�d�|j|d�d�|j|d�d�|jt|d�|jt|d	�|jt|g�|jt|t��dS)
Nzn != 1rBrrCg�?g@g�������?�2�2)rrOr-rg�	TypeError�object)rrLrrr�test_plural_numberusz&PluralFormsTestCase.test_plural_numberN)r"r#r$rrFrGrSrTrUrVrXrYrZr[r\r]r^r_r`rirlrnrprrrvr{rrrrrA�s.	rAc@seZdZdd�ZdS)�GNUTranslationParsingTestcCsYttd��}|jtjt��WdQXttd��}tj|�}WdQXdS)Nrr5)rr
rrr�GNU_MO_DATA_ISSUE_17898rr8)rrr:rrr�!test_plural_form_error_issue17898�sz;GNUTranslationParsingTest.test_plural_form_error_issue17898N)r"r#r$r~rrrrr|�sr|c@s4eZdZdd�Zdd�Zdd�ZdS)�UnicodeTranslationsTestc	CsJtj|�ttd��}tj|�|_WdQX|jj|_dS)Nr5)rrrrrr8r:r.)rrrrrr�s
zUnicodeTranslationsTest.setUpcCsE|j}|t|jd�t��|t|jd�t��dS)NrI)Z
assertTrue�
isinstancer.rJ)rZunlessrrr�test_unicode_msgid�s	z*UnicodeTranslationsTest.test_unicode_msgidcCs#|j}||jd�d�dS)NuabÞu¤yz)r-r.)rr/rrr�test_unicode_msgstr�s	z+UnicodeTranslationsTest.test_unicode_msgstrN)r"r#r$rr�r�rrrrr�src@s(eZdZdd�Zdd�ZdS)�WeirdMetadataTestcCsWtj|�ttd��5}ytj|�|_Wn|j��YnXWdQXdS)Nr5)rrrrrr8r:r!)rrrrrr�s

zWeirdMetadataTest.setUpcCs=|jj�}|jt|�d�|j|dd�dS)N�	zlast-translatorz=John Doe <jdoe@example.com>
Jane Foobar <jfoobar@example.com>)r:�infor-�len)rr�rrr�test_weird_metadata�s
z%WeirdMetadataTest.test_weird_metadataN)r"r#r$rr�rrrrr��s	r�c@seZdZdd�ZdS)�DummyGNUTranslationscCsdS)N�foor)rrrrr��szDummyGNUTranslations.fooN)r"r#r$r�rrrrr��sr�c@seZdZdd�ZdS)�GettextCacheTestCasecCs�tj|_t|_|jttj�d�tj	d|j�}|jttj�d�tj	d|jdt
�}|jttj�d�|j|jt
�tj	d|jdt
�}|jttj�d�|j|jt
�dS)NrrrBZclass_rC)rr&r'r
r(r-r�rrZtranslationr��	__class__)rr:rrr�
test_cache�s			zGettextCacheTestCase.test_cacheN)r"r#r$r�rrrrr��sr�cCstjt�dS)N)rZrun_unittestr"rrrr�	test_main�sr��__main__)rrZshutilrZunittestZtestrrrrrrPr
r
rrZTestCaserr}r%r<rAr|rr�r8r�r�r�r"rrrr�<module>s4
F;�	
u