Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/test/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/__pycache__/test_gettext.cpython-35.pyc



��Yf6��@sddlZddlZddlZddlZddlZddlZddlmZdZdZ	dZ
dZdZej
jdd	�Zej
jed
�Zej
jed�Zej
jed�Zej
jed
�Zej
jed�ZGdd�dej�ZdZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGd d!�d!ej�Z Gd"d#�d#e�Z!d$d%�Z"e#d&kr�e"�d'd(d)d*dS)+�N)�supports3hIElQAAAAAGAAAAHAAAAEwAAAALAAAAfAAAAAAAAACoAAAAFQAAAKkAAAAjAAAAvwAAAKEAAADj
AAAABwAAAIUBAAALAAAAjQEAAEUBAACZAQAAFgAAAN8CAAAeAAAA9gIAAKEAAAAVAwAABQAAALcD
AAAJAAAAvQMAAAEAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABQAAAAYAAAACAAAAAFJh
eW1vbmQgTHV4dXJ5IFlhY2gtdABUaGVyZSBpcyAlcyBmaWxlAFRoZXJlIGFyZSAlcyBmaWxlcwBU
aGlzIG1vZHVsZSBwcm92aWRlcyBpbnRlcm5hdGlvbmFsaXphdGlvbiBhbmQgbG9jYWxpemF0aW9u
CnN1cHBvcnQgZm9yIHlvdXIgUHl0aG9uIHByb2dyYW1zIGJ5IHByb3ZpZGluZyBhbiBpbnRlcmZh
Y2UgdG8gdGhlIEdOVQpnZXR0ZXh0IG1lc3NhZ2UgY2F0YWxvZyBsaWJyYXJ5LgBtdWxsdXNrAG51
ZGdlIG51ZGdlAFByb2plY3QtSWQtVmVyc2lvbjogMi4wClBPLVJldmlzaW9uLURhdGU6IDIwMDAt
MDgtMjkgMTI6MTktMDQ6MDAKTGFzdC1UcmFuc2xhdG9yOiBKLiBEYXZpZCBJYsOhw7FleiA8ai1k
YXZpZEBub29zLmZyPgpMYW5ndWFnZS1UZWFtOiBYWCA8cHl0aG9uLWRldkBweXRob24ub3JnPgpN
SU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4
NTktMQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBub25lCkdlbmVyYXRlZC1CeTogcHlnZXR0
ZXh0LnB5IDEuMQpQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD1uIT0xOwoAVGhyb2F0
d29iYmxlciBNYW5ncm92ZQBIYXkgJXMgZmljaGVybwBIYXkgJXMgZmljaGVyb3MAR3V2ZiB6YnFo
eXIgY2ViaXZxcmYgdmFncmVhbmd2YmFueXZtbmd2YmEgbmFxIHlicG55dm1uZ3ZiYQpmaGNjYmVn
IHNiZSBsYmhlIENsZ3ViYSBjZWJ0ZW56ZiBvbCBjZWJpdnF2YXQgbmEgdmFncmVzbnByIGdiIGd1
ciBUQUgKdHJnZ3JrZyB6cmZmbnRyIHBuZ255YnQgeXZvZW5lbC4AYmFjb24Ad2luayB3aW5rAA==
s3hIElQAABQAGAAAAHAAAAEwAAAALAAAAfAAAAAAAAACoAAAAFQAAAKkAAAAjAAAAvwAAAKEAAADj
AAAABwAAAIUBAAALAAAAjQEAAEUBAACZAQAAFgAAAN8CAAAeAAAA9gIAAKEAAAAVAwAABQAAALcD
AAAJAAAAvQMAAAEAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABQAAAAYAAAACAAAAAFJh
eW1vbmQgTHV4dXJ5IFlhY2gtdABUaGVyZSBpcyAlcyBmaWxlAFRoZXJlIGFyZSAlcyBmaWxlcwBU
aGlzIG1vZHVsZSBwcm92aWRlcyBpbnRlcm5hdGlvbmFsaXphdGlvbiBhbmQgbG9jYWxpemF0aW9u
CnN1cHBvcnQgZm9yIHlvdXIgUHl0aG9uIHByb2dyYW1zIGJ5IHByb3ZpZGluZyBhbiBpbnRlcmZh
Y2UgdG8gdGhlIEdOVQpnZXR0ZXh0IG1lc3NhZ2UgY2F0YWxvZyBsaWJyYXJ5LgBtdWxsdXNrAG51
ZGdlIG51ZGdlAFByb2plY3QtSWQtVmVyc2lvbjogMi4wClBPLVJldmlzaW9uLURhdGU6IDIwMDAt
MDgtMjkgMTI6MTktMDQ6MDAKTGFzdC1UcmFuc2xhdG9yOiBKLiBEYXZpZCBJYsOhw7FleiA8ai1k
YXZpZEBub29zLmZyPgpMYW5ndWFnZS1UZWFtOiBYWCA8cHl0aG9uLWRldkBweXRob24ub3JnPgpN
SU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4
NTktMQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBub25lCkdlbmVyYXRlZC1CeTogcHlnZXR0
ZXh0LnB5IDEuMQpQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD1uIT0xOwoAVGhyb2F0
d29iYmxlciBNYW5ncm92ZQBIYXkgJXMgZmljaGVybwBIYXkgJXMgZmljaGVyb3MAR3V2ZiB6YnFo
eXIgY2ViaXZxcmYgdmFncmVhbmd2YmFueXZtbmd2YmEgbmFxIHlicG55dm1uZ3ZiYQpmaGNjYmVn
IHNiZSBsYmhlIENsZ3ViYSBjZWJ0ZW56ZiBvbCBjZWJpdnF2YXQgbmEgdmFncmVzbnByIGdiIGd1
ciBUQUgKdHJnZ3JrZyB6cmZmbnRyIHBuZ255YnQgeXZvZW5lbC4AYmFjb24Ad2luayB3aW5rAA==
s3hIElQcAAAAGAAAAHAAAAEwAAAALAAAAfAAAAAAAAACoAAAAFQAAAKkAAAAjAAAAvwAAAKEAAADj
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.mozgettext_bad_major_version.mozgettext_bad_minor_version.mozugettext.mozmetadata.moc@s(eZdZdd�Zdd�ZdS)�GettextBaseTestc&Cs7tjjt�stjt�ttd��}|jtj	t
��WdQRXttd��}|jtj	t��WdQRXtt
d��}|jtj	t��WdQRXttd��}|jtj	t��WdQRXttd��}|jtj	t��WdQRXtj�|_d|jd<tjj�dS)N�wbrZLANGUAGE)�os�path�isdir�	LOCALEDIR�makedirs�open�MOFILE�write�base64�decodebytes�GNU_MO_DATA�MOFILE_BAD_MAJOR_VERSION�GNU_MO_DATA_BAD_MAJOR_VERSION�MOFILE_BAD_MINOR_VERSION�GNU_MO_DATA_BAD_MINOR_VERSION�UMOFILE�UMO_DATA�MMOFILE�MMO_DATArZEnvironmentVarGuard�env�gettext�
_translations�clear)�self�fp�r �6/opt/alt/python35/lib64/python3.5/test/test_gettext.py�setUpts

zGettextBaseTest.setUpcCs4|jj�|`tjtjjt�d�dS)Nr)r�__exit__rZrmtreerr�splitr
)rr r r!�tearDown�s
zGettextBaseTest.tearDownN)�__name__�
__module__�__qualname__r"r%r r r r!rssrs�3hIElQAAAAABAAAAHAAAACQAAAAAAAAAAAAAAAAAAAAsAAAAggAAAC0AAAAAUGx1cmFsLUZvcm1z
OiBucGx1cmFscz0yOyBwbHVyYWw9KG4gIT0gMSk7CiMtIy0jLSMtIyAgbWVzc2FnZXMucG8gKEVk
WCBTdHVkaW8pICAjLSMtIy0jLSMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVU
Ri04CgA=
c@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�GettextTestCase1cCs9tj|�tj|_t|_tjd|j�dS)Nr)	rr"r�curdir�	localedirr
�mofiler�install)rr r r!r"�s
	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�eqr r r!�test_some_translations�s
	z'GettextTestCase1.test_some_translationscCsY|j}|td�d�|td�d�|td�d�|td�d�dS)Nr.r/r0zRaymond Luxury Yach-tzThroatwobbler Mangroveznudge nudgez	wink wink)r1r2)rr3r r r!�test_double_quotes�s
	z#GettextTestCase1.test_double_quotescCsY|j}|td�d�|td�d�|td�d�|td�d�dS)Nr.r/r0zRaymond Luxury Yach-tzThroatwobbler Mangroveznudge nudgez	wink wink)r1r2)rr3r r r!�test_triple_single_quotes�s
	z*GettextTestCase1.test_triple_single_quotescCsY|j}|td�d�|td�d�|td�d�|td�d�dS)Nr.r/r0zRaymond Luxury Yach-tzThroatwobbler Mangroveznudge nudgez	wink wink)r1r2)rr3r r r!�test_triple_double_quotes�s
	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.)r1r2)rr3r r r!�test_multiline_strings�s	z'GettextTestCase1.test_multiline_stringscCs�|j}t|jd��}tj|�}WdQRX|j�|td�d�|j�|td�d�ddl}|jddd	g�|t|j�||j|j�|t|j�|`|`dS)
N�rbznudge nudgez	wink winkr/r0r�namesr�lgettext)	r1rr,r�GNUTranslationsr-r2�builtinsr;)rr3r�tr=r r r!�test_the_alternative_interface�s	

z/GettextTestCase1.test_the_alternative_interfaceN)
r&r'r(r"r4r5r6r7r8r?r r r r!r)�s
r)c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�GettextTestCase2cCsItj|�tj|_tjd|j�tjd�tj|_dS)Nr)	rr"rr*r+r�bindtextdomain�
textdomainr2)rr r r!r"�s


zGettextTestCase2.setUpcCs |jtjd�|j�dS)Nr)r1rrAr+)rr r r!�test_bindtextdomain�sz$GettextTestCase2.test_bindtextdomaincCs|jtj�d�dS)Nr)r1rrB)rr r r!�test_textdomain�sz GettextTestCase2.test_textdomaincCs�ttd��o}|jt��}tj|�WdQRX|j}|j|jd�|j|j	d�|j|j
t�WdQRXdS)Nr9rzBad version number 5)rr�assertRaises�OSErrorrr<�	exceptionr1�errno�strerror�filename)rr�cmrGr r r!�test_bad_major_version�s	z'GettextTestCase2.test_bad_major_versionc	Cs*ttd��}tj|�WdQRXdS)Nr9)rrrr<)rrr r r!�test_bad_minor_version�sz'GettextTestCase2.test_bad_minor_versioncCse|j}||jd�d�||jd�d�||jd�d�||jd�d�dS)Nr.r/r0zRaymond Luxury Yach-tzThroatwobbler Mangroveznudge nudgez	wink wink)r1r2)rr3r r r!r4�s
	z'GettextTestCase2.test_some_translationscCse|j}||jd�d�||jd�d�||jd�d�||jd�d�dS)Nr.r/r0zRaymond Luxury Yach-tzThroatwobbler Mangroveznudge nudgez	wink wink)r1r2)rr3r r r!r5�s
	z#GettextTestCase2.test_double_quotescCse|j}||jd�d�||jd�d�||jd�d�||jd�d�dS)Nr.r/r0zRaymond Luxury Yach-tzThroatwobbler Mangroveznudge nudgez	wink wink)r1r2)rr3r r r!r6s
	z*GettextTestCase2.test_triple_single_quotescCse|j}||jd�d�||jd�d�||jd�d�||jd�d�dS)Nr.r/r0zRaymond Luxury Yach-tzThroatwobbler Mangroveznudge nudgez	wink wink)r1r2)rr3r r r!r7s
	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.)r1r2)rr3r r r!r8s		z'GettextTestCase2.test_multiline_stringsN)
r&r'r(r"rCrDrLrMr4r5r6r7r8r r r r!r@�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)rr"r
r,)rr r r!r""s
zPluralFormsTestCase.setUpcCsQ|j}tjddd�}||d�tjddd�}||d�dS)NzThere is %s filezThere are %s files�zHay %s fichero�zHay %s ficheros)r1r�ngettext)rr3�xr r r!�test_plural_forms1&s
	
z&PluralFormsTestCase.test_plural_forms1cCs||j}t|jd��}tj|�}WdQRX|jddd�}||d�|jddd�}||d�dS)Nr9zThere is %s filezThere are %s filesrOzHay %s ficherorPzHay %s ficheros)r1rr,rr<rQ)rr3rr>rRr r r!�test_plural_forms2-s	
z&PluralFormsTestCase.test_plural_forms2csQ|j}tjd��dj�fdd�td�D��}||d�dS)N�0�cs"g|]}t�|���qSr )�str)�.0rR)�fr r!�
<listcomp>;s	z/PluralFormsTestCase.test_ja.<locals>.<listcomp>��Z�00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)r1r�c2py�join�range)rr3�sr )rYr!�test_ja8s	(zPluralFormsTestCase.test_jacsQ|j}tjd��dj�fdd�td�D��}||d�dS)Nzn != 1rVcs"g|]}t�|���qSr )rW)rXrR)rYr r!rZAs	z/PluralFormsTestCase.test_de.<locals>.<listcomp>r[Z�10111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111)r1rr\r]r^)rr3r_r )rYr!�test_de>s	(zPluralFormsTestCase.test_decsQ|j}tjd��dj�fdd�td�D��}||d�dS)Nzn>1rVcs"g|]}t�|���qSr )rW)rXrR)rYr r!rZGs	z/PluralFormsTestCase.test_fr.<locals>.<listcomp>r[Z�00111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111)r1rr\r]r^)rr3r_r )rYr!�test_frDs	(zPluralFormsTestCase.test_frcsQ|j}tjd��dj�fdd�td�D��}||d�dS)Nz)n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2rVcs"g|]}t�|���qSr )rW)rXrR)rYr r!rZMs	z/PluralFormsTestCase.test_lv.<locals>.<listcomp>r[Z�20111111111111111111101111111110111111111011111111101111111110111111111011111111101111111110111111111011111111111111111110111111111011111111101111111110111111111011111111101111111110111111111011111111)r1rr\r]r^)rr3r_r )rYr!�test_lvJs	(zPluralFormsTestCase.test_lvcsQ|j}tjd��dj�fdd�td�D��}||d�dS)Nzn==1 ? 0 : n==2 ? 1 : 2rVcs"g|]}t�|���qSr )rW)rXrR)rYr r!rZSs	z/PluralFormsTestCase.test_gd.<locals>.<listcomp>r[��20122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222)r1rr\r]r^)rr3r_r )rYr!�test_gdPs	(zPluralFormsTestCase.test_gdcsQ|j}tjd��dj�fdd�td�D��}||d�dS)Nzn==1 ? 0 : (n==2 ? 1 : 2)rVcs"g|]}t�|���qSr )rW)rXrR)rYr r!rZZs	z0PluralFormsTestCase.test_gd2.<locals>.<listcomp>r[rd)r1rr\r]r^)rr3r_r )rYr!�test_gd2Vs	(zPluralFormsTestCase.test_gd2csQ|j}tjd��dj�fdd�td�D��}||d�dS)Nz6n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2rVcs"g|]}t�|���qSr )rW)rXrR)rYr r!rZ`s	z/PluralFormsTestCase.test_ro.<locals>.<listcomp>r[Z�10111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222)r1rr\r]r^)rr3r_r )rYr!�test_ro]s	(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 : 2rVcs"g|]}t�|���qSr )rW)rXrR)rYr r!rZfs	z/PluralFormsTestCase.test_lt.<locals>.<listcomp>r[Z�20111111112222222222201111111120111111112011111111201111111120111111112011111111201111111120111111112011111111222222222220111111112011111111201111111120111111112011111111201111111120111111112011111111)r1rr\r]r^)rr3r_r )rYr!�test_ltcs	(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 : 2rVcs"g|]}t�|���qSr )rW)rXrR)rYr r!rZls	z/PluralFormsTestCase.test_ru.<locals>.<listcomp>r[Z�20111222222222222222201112222220111222222011122222201112222220111222222011122222201112222220111222222011122222222222222220111222222011122222201112222220111222222011122222201112222220111222222011122222)r1rr\r]r^)rr3r_r )rYr!�test_ruis	(zPluralFormsTestCase.test_rucsQ|j}tjd��dj�fdd�td�D��}||d�dS)Nz#(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2rVcs"g|]}t�|���qSr )rW)rXrR)rYr r!rZrs	z/PluralFormsTestCase.test_cs.<locals>.<listcomp>r[Z�20111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222)r1rr\r]r^)rr3r_r )rYr!�test_csos	(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 : 2rVcs"g|]}t�|���qSr )rW)rXrR)rYr r!rZxs	z/PluralFormsTestCase.test_pl.<locals>.<listcomp>r[Z�20111222222222222222221112222222111222222211122222221112222222111222222211122222221112222222111222222211122222222222222222111222222211122222221112222222111222222211122222221112222222111222222211122222)r1rr\r]r^)rr3r_r )rYr!�test_plus	(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 : 3rVcs"g|]}t�|���qSr )rW)rXrR)rYr r!rZ~s	z/PluralFormsTestCase.test_sl.<locals>.<listcomp>r[Z�30122333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333012233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333)r1rr\r]r^)rr3r_r )rYr!�test_sl{s	(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 : 5rVcs"g|]}t�|���qSr )rW)rXrR)rYr r!rZ�s	z/PluralFormsTestCase.test_ar.<locals>.<listcomp>r[Z�01233333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444445553333333344444444444444444444444444444444444444444444444444444444444444444444444444444444444444444)r1rr\r]r^)rr3r_r )rYr!�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�drO�e�(�)�z((((((((((((((((((((z)))))))))))))))))))))rE�
ValueErrorrr\r1)rZraisesr r r!�
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 == nrVc3s!|]}t�|��VqdS)N)rW)rXrR)rYr r!�	<genexpr>�sz>PluralFormsTestCase.test_chained_comparison.<locals>.<genexpr>�Z010z
1 < n == nc3s!|]}t�|��VqdS)N)rW)rXrR)rYr r!rv�sZ100z
n == n < 2c3s!|]}t�|��VqdS)N)rW)rXrR)rYr r!rv�sz	0 < n < 2c3s!|]}t�|��VqdS)N)rW)rXrR)rYr r!rv�sZ111)rr\r1r]r^)rr )rYr!�test_chained_comparison�s222z+PluralFormsTestCase.test_chained_comparisoncCs#|jtjd�d�d�dS)NZ0123rO�{)r1rr\)rr r r!�test_decimal_number�sz'PluralFormsTestCase.test_decimal_numbercCslddddddddd	d
ddd
ddg}x2|D]*}|jt��tj|�WdQRXq:WdS)Nzx>1z(n>1zn>1)z
42**42**42Z0xaz1.0Z1e2zn>0x1z+nz-nzn()zn(1)z1+Znnzn n)rErtrr\)rZinvalid_expressions�exprr r r!�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�rOrPz	n?1:3?4:5)r1rr\)rr r r!�test_nested_condition_operator�sz2PluralFormsTestCase.test_nested_condition_operatorcCs~tjd�}|j|d�d�|j|d�d�|j|d�d�|j|d�d�|jt|d�dS)	Nz2/n*3rO�rPrwr���i����)rr\r1rE�ZeroDivisionError)rrYr r r!�
test_division�s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 != 1rOrrPg�?g@g�������?�2�2)rr\r1rE�	TypeError�object)rrYr r r!�test_plural_number�sz&PluralFormsTestCase.test_plural_numberN)r&r'r(r"rSrTr`rarbrcrerfrgrhrirjrkrlrmrurxrzr|r~r�r�r r r r!rN!s.	rNc@s|eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�LGettextTestCasecCstj|�t|_dS)N)rr"r
r,)rr r r!r"�s
zLGettextTestCase.setUpcCsttj}tj}|j|d�d�|j|d�d�|j|dd�d�|j|dd�d�dS)Nr/sbacon�spamsspamr)rr;�	ldgettextr1)rr;r�r r r!�
test_lgettext�s		zLGettextTestCase.test_lgettextc
Csdt|jd��}tj|�}WdQRX|j}|j|d�d�|j|d�d�dS)Nr9r/sbaconr�sspam)rr,rr<r;r1)rrr>r;r r r!�test_lgettext_2�s
	z LGettextTestCase.test_lgettext_2cCs�tj}tj}tjd�}z�tjdd�|j|d�djd��|j|d�djd��|j|dd�djd��|j|dd�djd��Wdtjd=tjd|�XdS)Nrzutf-16r/r0r�)rr;r��bind_textdomain_codesetr1�encode�_localecodesets)rr;r��
saved_codesetr r r!�%test_lgettext_bind_textdomain_codeset�s		"&
z6LGettextTestCase.test_lgettext_bind_textdomain_codesetcCs�t|jd��}tj|�}WdQRX|j}|jd�|j|d�djd��|j|d�djd��dS)Nr9zutf-16r/r0r�)rr,rr<r;�set_output_charsetr1r�)rrr>r;r r r!�test_lgettext_output_encoding�s	
z.LGettextTestCase.test_lgettext_output_encodingcCs2tj}tj}|ddd�}|j|d�|ddd�}|j|d�|ddd�}|j|d	�|ddd�}|j|d
�|dddd�}|j|d�|dddd�}|j|d�|dddd�}|j|d	�|dddd�}|j|d
�dS)NzThere is %s filezThere are %s filesrOsHay %s ficherorPsHay %s ficheroszThere is %s directoryzThere are %s directoriessThere is %s directorysThere are %s directoriesr)r�	lngettext�
ldngettextr1)rr�r�rRr r r!�test_lngettext�s$		zLGettextTestCase.test_lngettextcCs�t|jd��}tj|�}WdQRX|j}|ddd�}|j|d�|ddd�}|j|d�|dd	d�}|j|d
�|dd	d�}|j|d�dS)Nr9zThere is %s filezThere are %s filesrOsHay %s ficherorPsHay %s ficheroszThere is %s directoryzThere are %s directoriessThere is %s directorysThere are %s directories)rr,rr<r�r1)rrr>r�rRr r r!�test_lngettext_2s	z!LGettextTestCase.test_lngettext_2cCs�tj}tj}tjd�}zxtjdd�|ddd�}|j|djd��|ddd�}|j|djd��|d	d
d�}|j|d	jd��|d	d
d�}|j|d
jd��|dddd�}|j|djd��|dddd�}|j|djd��|dd	d
d�}|j|d	jd��|dd	d
d�}|j|d
jd��Wdtjd=tjd|�XdS)Nrzutf-16zThere is %s filezThere are %s filesrOzHay %s ficherorPzHay %s ficheroszThere is %s directoryzThere are %s directories)rr�r�r�r1r�r�)rr�r�r�rRr r r!�&test_lngettext_bind_textdomain_codesets.		
z7LGettextTestCase.test_lngettext_bind_textdomain_codesetcCs�t|jd��}tj|�}WdQRX|j}|jd�|ddd�}|j|djd��|ddd�}|j|djd��|d	d
d�}|j|d	jd��|d	d
d�}|j|d
jd��dS)Nr9zutf-16zThere is %s filezThere are %s filesrOzHay %s ficherorPzHay %s ficheroszThere is %s directoryzThere are %s directories)rr,rr<r�r�r1r�)rrr>r�rRr r r!�test_lngettext_output_encoding.s	
z/LGettextTestCase.test_lngettext_output_encodingN)r&r'r(r"r�r�r�r�r�r�r�r�r r r r!r��s
r�c@seZdZdd�ZdS)�GNUTranslationParsingTestcCs[ttd��}|jtjt��WdQRXttd��}tj|�}WdQRXdS)Nrr9)rr
rrr�GNU_MO_DATA_ISSUE_17898rr<)rrr>r r r!�!test_plural_form_error_issue17898>sz;GNUTranslationParsingTest.test_plural_form_error_issue17898N)r&r'r(r�r r r r!r�=sr�c@s4eZdZdd�Zdd�Zdd�ZdS)�UnicodeTranslationsTestc	CsKtj|�ttd��}tj|�|_WdQRX|jj|_dS)Nr9)rr"rrrr<r>r2)rrr r r!r"Gs
zUnicodeTranslationsTest.setUpcCs|j|jd�t�dS)NrV)ZassertIsInstancer2rW)rr r r!�test_unicode_msgidMsz*UnicodeTranslationsTest.test_unicode_msgidcCs|j|jd�d�dS)NuabÞu¤yz)r1r2)rr r r!�test_unicode_msgstrPsz+UnicodeTranslationsTest.test_unicode_msgstrN)r&r'r(r"r�r�r r r r!r�Fsr�c@s(eZdZdd�Zdd�ZdS)�WeirdMetadataTestcCsXtj|�ttd��5}ytj|�|_Wn|j��YnXWdQRXdS)Nr9)rr"rrrr<r>r%)rrr r r!r"Us

zWeirdMetadataTest.setUpcCs=|jj�}|jt|�d�|j|dd�dS)N�	zlast-translatorz=John Doe <jdoe@example.com>
Jane Foobar <jfoobar@example.com>)r>�infor1�len)rr�r r r!�test_weird_metadata^s
z%WeirdMetadataTest.test_weird_metadataN)r&r'r(r"r�r r r r!r�Ts	r�c@seZdZdd�ZdS)�DummyGNUTranslationscCsdS)N�foor )rr r r!r�fszDummyGNUTranslations.fooN)r&r'r(r�r r r r!r�es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)NrrrOZclass_rP)rr*r+r
r,r1r�rrZtranslationr��	__class__)rr>r r r!�
test_cacheks			zGettextCacheTestCase.test_cacheN)r&r'r(r�r r r r!r�jsr�cCstjt�dS)N)rZrun_unittestr&r r r r!�	test_main�sr��__main__s�
# Dummy translation for the Python test_gettext.py module.
# Copyright (C) 2001 Python Software Foundation
# Barry Warsaw <barry@python.org>, 2000.
#
msgid ""
msgstr ""
"Project-Id-Version: 2.0
"
"PO-Revision-Date: 2003-04-11 14:32-0400
"
"Last-Translator: J. David Ibanez <j-david@noos.fr>
"
"Language-Team: XX <python-dev@python.org>
"
"MIME-Version: 1.0
"
"Content-Type: text/plain; charset=iso-8859-1
"
"Content-Transfer-Encoding: 8bit
"
"Generated-By: pygettext.py 1.1
"
"Plural-Forms: nplurals=2; plural=n!=1;
"

#: test_gettext.py:19 test_gettext.py:25 test_gettext.py:31 test_gettext.py:37
#: test_gettext.py:51 test_gettext.py:80 test_gettext.py:86 test_gettext.py:92
#: test_gettext.py:98
msgid "nudge nudge"
msgstr "wink wink"

#: test_gettext.py:16 test_gettext.py:22 test_gettext.py:28 test_gettext.py:34
#: test_gettext.py:77 test_gettext.py:83 test_gettext.py:89 test_gettext.py:95
msgid "albatross"
msgstr ""

#: test_gettext.py:18 test_gettext.py:24 test_gettext.py:30 test_gettext.py:36
#: test_gettext.py:79 test_gettext.py:85 test_gettext.py:91 test_gettext.py:97
msgid "Raymond Luxury Yach-t"
msgstr "Throatwobbler Mangrove"

#: test_gettext.py:17 test_gettext.py:23 test_gettext.py:29 test_gettext.py:35
#: test_gettext.py:56 test_gettext.py:78 test_gettext.py:84 test_gettext.py:90
#: test_gettext.py:96
msgid "mullusk"
msgstr "bacon"

#: test_gettext.py:40 test_gettext.py:101
msgid ""
"This module provides internationalization and localization
"
"support for your Python programs by providing an interface to the GNU
"
"gettext message catalog library."
msgstr ""
"Guvf zbqhyr cebivqrf vagreangvbanyvmngvba naq ybpnyvmngvba
"
"fhccbeg sbe lbhe Clguba cebtenzf ol cebivqvat na vagresnpr gb gur TAH
"
"trggrkg zrffntr pngnybt yvoenel."

# Manually added, as neither pygettext nor xgettext support plural forms
# in Python.
msgid "There is %s file"
msgid_plural "There are %s files"
msgstr[0] "Hay %s fichero"
msgstr[1] "Hay %s ficheros"
s�
# Dummy translation for the Python test_gettext.py module.
# Copyright (C) 2001 Python Software Foundation
# Barry Warsaw <barry@python.org>, 2000.
#
msgid ""
msgstr ""
"Project-Id-Version: 2.0
"
"PO-Revision-Date: 2003-04-11 12:42-0400
"
"Last-Translator: Barry A. WArsaw <barry@python.org>
"
"Language-Team: XX <python-dev@python.org>
"
"MIME-Version: 1.0
"
"Content-Type: text/plain; charset=utf-8
"
"Content-Transfer-Encoding: 7bit
"
"Generated-By: manually
"

#: nofile:0
msgid "abÞ"
msgstr "¤yz"
s�
msgid ""
msgstr ""
"Project-Id-Version: No Project 0.0
"
"POT-Creation-Date: Wed Dec 11 07:44:15 2002
"
"PO-Revision-Date: 2002-08-14 01:18:58+00:00
"
"Last-Translator: John Doe <jdoe@example.com>
"
"Jane Foobar <jfoobar@example.com>
"
"Language-Team: xx <xx@example.com>
"
"MIME-Version: 1.0
"
"Content-Type: text/plain; charset=iso-8859-15
"
"Content-Transfer-Encoding: quoted-printable
"
"Generated-By: pygettext.py 1.3
"
s�
# test file for http://bugs.python.org/issue17898
msgid ""
msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);
"
"#-#-#-#-#  messages.po (EdX Studio)  #-#-#-#-#
"
"Content-Type: text/plain; charset=UTF-8
"
)$rrZshutilrZlocaleZunittestZtestrrrrrrrr]r
r
rrrrZTestCaserr�r)r@rNr�r�r�r�r<r�r�r�r&r r r r!�<module>sFFJ�t	?