Your IP : 216.73.216.85


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.opt-2.pyc



���]6��@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�wbr�LANGUAGE)�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!�1/opt/alt/python35/lib64/python3.5/test_gettext.py�setUpts

zGettextBaseTest.setUpcCs4|jj�|`tjtjjt�d�dS)Nr)r�__exit__r�rmtreerr	�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)Nr0r1r2zRaymond Luxury Yach-tzThroatwobbler Mangroveznudge nudgez	wink wink)r3r4)rr5r!r!r"�test_double_quotes�s
	z#GettextTestCase1.test_double_quotescCsY|j}|td�d�|td�d�|td�d�|td�d�dS)Nr0r1r2zRaymond Luxury Yach-tzThroatwobbler Mangroveznudge nudgez	wink wink)r3r4)rr5r!r!r"�test_triple_single_quotes�s
	z*GettextTestCase1.test_triple_single_quotescCsY|j}|td�d�|td�d�|td�d�|td�d�dS)Nr0r1r2zRaymond Luxury Yach-tzThroatwobbler Mangroveznudge nudgez	wink wink)r3r4)rr5r!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.)r3r4)rr5r!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 winkr1r2r�namesr�lgettext)	r3r
r.r�GNUTranslationsr/r4�builtinsr=)rr5r �tr?r!r!r"�test_the_alternative_interface�s	

z/GettextTestCase1.test_the_alternative_interfaceN)
r(r)r*r#r6r7r8r9r:rAr!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�
textdomainr4)rr!r!r"r#�s


zGettextTestCase2.setUpcCs |jtjd�|j�dS)Nr)r3rrCr-)rr!r!r"�test_bindtextdomain�sz$GettextTestCase2.test_bindtextdomaincCs|jtj�d�dS)Nr)r3rrD)rr!r!r"�test_textdomain�sz GettextTestCase2.test_textdomaincCs�ttd��o}|jt��}tj|�WdQRX|j}|j|jd�|j|j	d�|j|j
t�WdQRXdS)Nr;rzBad version number 5)r
r�assertRaises�OSErrorrr>�	exceptionr3�errno�strerror�filename)rr �cmrIr!r!r"�test_bad_major_version�s	z'GettextTestCase2.test_bad_major_versionc	Cs*ttd��}tj|�WdQRXdS)Nr;)r
rrr>)rr r!r!r"�test_bad_minor_version�sz'GettextTestCase2.test_bad_minor_versioncCse|j}||jd�d�||jd�d�||jd�d�||jd�d�dS)Nr0r1r2zRaymond Luxury Yach-tzThroatwobbler Mangroveznudge nudgez	wink wink)r3r4)rr5r!r!r"r6�s
	z'GettextTestCase2.test_some_translationscCse|j}||jd�d�||jd�d�||jd�d�||jd�d�dS)Nr0r1r2zRaymond Luxury Yach-tzThroatwobbler Mangroveznudge nudgez	wink wink)r3r4)rr5r!r!r"r7�s
	z#GettextTestCase2.test_double_quotescCse|j}||jd�d�||jd�d�||jd�d�||jd�d�dS)Nr0r1r2zRaymond Luxury Yach-tzThroatwobbler Mangroveznudge nudgez	wink wink)r3r4)rr5r!r!r"r8s
	z*GettextTestCase2.test_triple_single_quotescCse|j}||jd�d�||jd�d�||jd�d�||jd�d�dS)Nr0r1r2zRaymond Luxury Yach-tzThroatwobbler Mangroveznudge nudgez	wink wink)r3r4)rr5r!r!r"r9s
	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.)r3r4)rr5r!r!r"r:s		z'GettextTestCase2.test_multiline_stringsN)
r(r)r*r#rErFrNrOr6r7r8r9r:r!r!r!r"rB�s	
rBc@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#rr.)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)r3r�ngettext)rr5�xr!r!r"�test_plural_forms1&s
	
z&PluralFormsTestCase.test_plural_forms1cCs||j}t|jd��}tj|�}WdQRX|jddd�}||d�|jddd�}||d�dS)Nr;zThere is %s filezThere are %s filesrQzHay %s ficherorRzHay %s ficheros)r3r
r.rr>rS)rr5r r@rTr!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)�.0rT)�fr!r"�
<listcomp>;s	z/PluralFormsTestCase.test_ja.<locals>.<listcomp>��Z�00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)r3r�c2py�join�range)rr5�sr!)r[r"�test_ja8s	(zPluralFormsTestCase.test_jacsQ|j}tjd��dj�fdd�td�D��}||d�dS)Nzn != 1rXcs"g|]}t�|���qSr!)rY)rZrT)r[r!r"r\As	z/PluralFormsTestCase.test_de.<locals>.<listcomp>r]Z�10111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111)r3rr^r_r`)rr5rar!)r[r"�test_de>s	(zPluralFormsTestCase.test_decsQ|j}tjd��dj�fdd�td�D��}||d�dS)Nzn>1rXcs"g|]}t�|���qSr!)rY)rZrT)r[r!r"r\Gs	z/PluralFormsTestCase.test_fr.<locals>.<listcomp>r]Z�00111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111)r3rr^r_r`)rr5rar!)r[r"�test_frDs	(zPluralFormsTestCase.test_frcsQ|j}tjd��dj�fdd�td�D��}||d�dS)Nz)n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2rXcs"g|]}t�|���qSr!)rY)rZrT)r[r!r"r\Ms	z/PluralFormsTestCase.test_lv.<locals>.<listcomp>r]Z�20111111111111111111101111111110111111111011111111101111111110111111111011111111101111111110111111111011111111111111111110111111111011111111101111111110111111111011111111101111111110111111111011111111)r3rr^r_r`)rr5rar!)r[r"�test_lvJs	(zPluralFormsTestCase.test_lvcsQ|j}tjd��dj�fdd�td�D��}||d�dS)Nzn==1 ? 0 : n==2 ? 1 : 2rXcs"g|]}t�|���qSr!)rY)rZrT)r[r!r"r\Ss	z/PluralFormsTestCase.test_gd.<locals>.<listcomp>r]��20122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222)r3rr^r_r`)rr5rar!)r[r"�test_gdPs	(zPluralFormsTestCase.test_gdcsQ|j}tjd��dj�fdd�td�D��}||d�dS)Nzn==1 ? 0 : (n==2 ? 1 : 2)rXcs"g|]}t�|���qSr!)rY)rZrT)r[r!r"r\Zs	z0PluralFormsTestCase.test_gd2.<locals>.<listcomp>r]rf)r3rr^r_r`)rr5rar!)r[r"�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 : 2rXcs"g|]}t�|���qSr!)rY)rZrT)r[r!r"r\`s	z/PluralFormsTestCase.test_ro.<locals>.<listcomp>r]Z�10111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222)r3rr^r_r`)rr5rar!)r[r"�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 : 2rXcs"g|]}t�|���qSr!)rY)rZrT)r[r!r"r\fs	z/PluralFormsTestCase.test_lt.<locals>.<listcomp>r]Z�20111111112222222222201111111120111111112011111111201111111120111111112011111111201111111120111111112011111111222222222220111111112011111111201111111120111111112011111111201111111120111111112011111111)r3rr^r_r`)rr5rar!)r[r"�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 : 2rXcs"g|]}t�|���qSr!)rY)rZrT)r[r!r"r\ls	z/PluralFormsTestCase.test_ru.<locals>.<listcomp>r]Z�20111222222222222222201112222220111222222011122222201112222220111222222011122222201112222220111222222011122222222222222220111222222011122222201112222220111222222011122222201112222220111222222011122222)r3rr^r_r`)rr5rar!)r[r"�test_ruis	(zPluralFormsTestCase.test_rucsQ|j}tjd��dj�fdd�td�D��}||d�dS)Nz#(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2rXcs"g|]}t�|���qSr!)rY)rZrT)r[r!r"r\rs	z/PluralFormsTestCase.test_cs.<locals>.<listcomp>r]Z�20111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222)r3rr^r_r`)rr5rar!)r[r"�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 : 2rXcs"g|]}t�|���qSr!)rY)rZrT)r[r!r"r\xs	z/PluralFormsTestCase.test_pl.<locals>.<listcomp>r]Z�20111222222222222222221112222222111222222211122222221112222222111222222211122222221112222222111222222211122222222222222222111222222211122222221112222222111222222211122222221112222222111222222211122222)r3rr^r_r`)rr5rar!)r[r"�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 : 3rXcs"g|]}t�|���qSr!)rY)rZrT)r[r!r"r\~s	z/PluralFormsTestCase.test_sl.<locals>.<listcomp>r]Z�30122333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333012233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333)r3rr^r_r`)rr5rar!)r[r"�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 : 5rXcs"g|]}t�|���qSr!)rY)rZrT)r[r!r"r\�s	z/PluralFormsTestCase.test_ar.<locals>.<listcomp>r]Z�01233333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444445553333333344444444444444444444444444444444444444444444444444444444444444444444444444444444444444444)r3rr^r_r`)rr5rar!)r[r"�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�drQ�e�(�)�z((((((((((((((((((((z)))))))))))))))))))))rG�
ValueErrorrr^r3)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 == nrXc3s!|]}t�|��VqdS)N)rY)rZrT)r[r!r"�	<genexpr>�sz>PluralFormsTestCase.test_chained_comparison.<locals>.<genexpr>�Z010z
1 < n == nc3s!|]}t�|��VqdS)N)rY)rZrT)r[r!r"rx�sZ100z
n == n < 2c3s!|]}t�|��VqdS)N)rY)rZrT)r[r!r"rx�sz	0 < n < 2c3s!|]}t�|��VqdS)N)rY)rZrT)r[r!r"rx�sZ111)rr^r3r_r`)rr!)r[r"�test_chained_comparison�s222z+PluralFormsTestCase.test_chained_comparisoncCs#|jtjd�d�d�dS)NZ0123rQ�{)r3rr^)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+�nnzn n)rGrvrr^)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�rQrRz	n?1:3?4:5)r3rr^)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*3rQ�rRryr���i����)rr^r3rG�ZeroDivisionError)rr[r!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 != 1rQrrRg�?g@g�������?�2�2)rr^r3rG�	TypeError�object)rr[r!r!r"�test_plural_number�sz&PluralFormsTestCase.test_plural_numberN)r(r)r*r#rUrVrbrcrdrergrhrirjrkrlrmrnrorwrzr|rr�r�r�r!r!r!r"rP!s.	rPc@s|eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�LGettextTestCasecCstj|�t|_dS)N)rr#rr.)rr!r!r"r#�s
zLGettextTestCase.setUpcCsttj}tj}|j|d�d�|j|d�d�|j|dd�d�|j|dd�d�dS)Nr1sbacon�spamsspamr)rr=�	ldgettextr3)rr=r�r!r!r"�
test_lgettext�s		zLGettextTestCase.test_lgettextc
Csdt|jd��}tj|�}WdQRX|j}|j|d�d�|j|d�d�dS)Nr;r1sbaconr�sspam)r
r.rr>r=r3)rr r@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-16r1r2r�)rr=r��bind_textdomain_codesetr3�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)Nr;zutf-16r1r2r�)r
r.rr>r=�set_output_charsetr3r�)rr r@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 filesrQsHay %s ficherorRsHay %s ficheroszThere is %s directoryzThere are %s directoriessThere is %s directorysThere are %s directoriesr)r�	lngettext�
ldngettextr3)rr�r�rTr!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)Nr;zThere is %s filezThere are %s filesrQsHay %s ficherorRsHay %s ficheroszThere is %s directoryzThere are %s directoriessThere is %s directorysThere are %s directories)r
r.rr>r�r3)rr r@r�rTr!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 filesrQzHay %s ficherorRzHay %s ficheroszThere is %s directoryzThere are %s directories)rr�r�r�r3r�r�)rr�r�r�rTr!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)Nr;zutf-16zThere is %s filezThere are %s filesrQzHay %s ficherorRzHay %s ficheroszThere is %s directoryzThere are %s directories)r
r.rr>r�r�r3r�)rr r@r�rTr!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)Nrr;)r
rrrr�GNU_MO_DATA_ISSUE_17898rr>)rr r@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)Nr;)rr#r
rrr>r@r4)rr r!r!r"r#Gs
zUnicodeTranslationsTest.setUpcCs|j|jd�t�dS)NrX)ZassertIsInstancer4rY)rr!r!r"�test_unicode_msgidMsz*UnicodeTranslationsTest.test_unicode_msgidcCs|j|jd�d�dS)NuabÞu¤yz)r3r4)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)Nr;)rr#r
rrr>r@r')rr r!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@�infor3�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)NrrrQ�class_rR)rr,r-rr.r3r�rr�translationr��	__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
"
)$rr�shutilr�localeZunittestZtestrrrrrrr	r_rrrrrrZTestCaserr�r+rBrPr�r�r�r�r>r�r�r�r(r!r!r!r"�<module>sFFJ�t	?