Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.11/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.11/test/__pycache__/test_gettext.cpython-311.opt-1.pyc

�

SԚg�����ddlZddlZddlZddlZddlmZddlmZddlm	Z	dZ
dZdZdZ
d	Zej�d
d��Zej�ed��Zej�ed
��Zej�ed��Zej�ed��Zej�ed��Zd�ZGd�dej��ZdZGd�de��ZGd�de��ZGd�d��ZGd�dee��ZGd�dee��ZGd�d ee��Z Gd!�d"��Z!Gd#�d$e��Z"Gd%�d&e��Z#Gd'�d(e��Z$Gd)�d*e��Z%Gd+�d,ej&��Z'Gd-�d.e��Z(Gd/�d0ej��Z)e*d1krej+��			dS)2�N)�partial)�support)�	os_helpers=3hIElQAAAAAJAAAAHAAAAGQAAAAAAAAArAAAAAAAAACsAAAAFQAAAK0AAAAjAAAAwwAAAKEAAADn
AAAAMAAAAIkBAAAHAAAAugEAABYAAADCAQAAHAAAANkBAAALAAAA9gEAAEIBAAACAgAAFgAAAEUD
AAAeAAAAXAMAAKEAAAB7AwAAMgAAAB0EAAAFAAAAUAQAABsAAABWBAAAIQAAAHIEAAAJAAAAlAQA
AABSYXltb25kIEx1eHVyeSBZYWNoLXQAVGhlcmUgaXMgJXMgZmlsZQBUaGVyZSBhcmUgJXMgZmls
ZXMAVGhpcyBtb2R1bGUgcHJvdmlkZXMgaW50ZXJuYXRpb25hbGl6YXRpb24gYW5kIGxvY2FsaXph
dGlvbgpzdXBwb3J0IGZvciB5b3VyIFB5dGhvbiBwcm9ncmFtcyBieSBwcm92aWRpbmcgYW4gaW50
ZXJmYWNlIHRvIHRoZSBHTlUKZ2V0dGV4dCBtZXNzYWdlIGNhdGFsb2cgbGlicmFyeS4AV2l0aCBj
b250ZXh0BFRoZXJlIGlzICVzIGZpbGUAVGhlcmUgYXJlICVzIGZpbGVzAG11bGx1c2sAbXkgY29u
dGV4dARudWRnZSBudWRnZQBteSBvdGhlciBjb250ZXh0BG51ZGdlIG51ZGdlAG51ZGdlIG51ZGdl
AFByb2plY3QtSWQtVmVyc2lvbjogMi4wClBPLVJldmlzaW9uLURhdGU6IDIwMDMtMDQtMTEgMTQ6
MzItMDQwMApMYXN0LVRyYW5zbGF0b3I6IEouIERhdmlkIEliYW5leiA8ai1kYXZpZEBub29zLmZy
PgpMYW5ndWFnZS1UZWFtOiBYWCA8cHl0aG9uLWRldkBweXRob24ub3JnPgpNSU1FLVZlcnNpb246
IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMQpDb250ZW50
LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CkdlbmVyYXRlZC1CeTogcHlnZXR0ZXh0LnB5IDEuMQpQ
bHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD1uIT0xOwoAVGhyb2F0d29iYmxlciBNYW5n
cm92ZQBIYXkgJXMgZmljaGVybwBIYXkgJXMgZmljaGVyb3MAR3V2ZiB6YnFoeXIgY2ViaXZxcmYg
dmFncmVhbmd2YmFueXZtbmd2YmEgbmFxIHlicG55dm1uZ3ZiYQpmaGNjYmVnIHNiZSBsYmhlIENs
Z3ViYSBjZWJ0ZW56ZiBvbCBjZWJpdnF2YXQgbmEgdmFncmVzbnByIGdiIGd1ciBUQUgKdHJnZ3Jr
ZyB6cmZmbnRyIHBuZ255YnQgeXZvZW5lbC4ASGF5ICVzIGZpY2hlcm8gKGNvbnRleHQpAEhheSAl
cyBmaWNoZXJvcyAoY29udGV4dCkAYmFjb24Ad2luayB3aW5rIChpbiAibXkgY29udGV4dCIpAHdp
bmsgd2luayAoaW4gIm15IG90aGVyIGNvbnRleHQiKQB3aW5rIHdpbmsA
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==
s3hIElQAAAAADAAAAHAAAADQAAAAAAAAAAAAAAAAAAABMAAAABAAAAE0AAAAQAAAAUgAAAA8BAABj
AAAABAAAAHMBAAAWAAAAeAEAAABhYsOeAG15Y29udGV4dMOeBGFiw54AUHJvamVjdC1JZC1WZXJz
aW9uOiAyLjAKUE8tUmV2aXNpb24tRGF0ZTogMjAwMy0wNC0xMSAxMjo0Mi0wNDAwCkxhc3QtVHJh
bnNsYXRvcjogQmFycnkgQS4gV0Fyc2F3IDxiYXJyeUBweXRob24ub3JnPgpMYW5ndWFnZS1UZWFt
OiBYWCA8cHl0aG9uLWRldkBweXRob24ub3JnPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5
cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzog
N2JpdApHZW5lcmF0ZWQtQnk6IG1hbnVhbGx5CgDCpHl6AMKkeXogKGNvbnRleHQgdmVyc2lvbikA
sL3hIElQAAAAABAAAAHAAAACQAAAADAAAALAAAAAAAAAA4AAAAeAEAADkAAAABAAAAAAAAAAAAAAAA
UHJvamVjdC1JZC1WZXJzaW9uOiBObyBQcm9qZWN0IDAuMApQT1QtQ3JlYXRpb24tRGF0ZTogV2Vk
IERlYyAxMSAwNzo0NDoxNSAyMDAyClBPLVJldmlzaW9uLURhdGU6IDIwMDItMDgtMTQgMDE6MTg6
NTgrMDA6MDAKTGFzdC1UcmFuc2xhdG9yOiBKb2huIERvZSA8amRvZUBleGFtcGxlLmNvbT4KSmFu
ZSBGb29iYXIgPGpmb29iYXJAZXhhbXBsZS5jb20+Ckxhbmd1YWdlLVRlYW06IHh4IDx4eEBleGFt
cGxlLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy
c2V0PWlzby04ODU5LTE1CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFi
bGUKR2VuZXJhdGVkLUJ5OiBweWdldHRleHQucHkgMS4zCgA=
�xx�LC_MESSAGESz
gettext.mozgettext_bad_major_version.mozgettext_bad_minor_version.mozugettext.mozmetadata.moc��tj���dt_tj���dS)N�messages)�gettext�_localedirs�clear�_current_domain�
_translations���./usr/local/lib/python3.11/test/test_gettext.py�
reset_gettextrws:���������(�G������!�!�!�!�!rc�*�eZdZed���Zd�ZdS)�GettextBaseTestc��|�tjtj�t��d��tj�t��stjt��ttd��5}|�tj
t����ddd��n#1swxYwYttd��5}|�tj
t ����ddd��n#1swxYwYtt"d��5}|�tj
t$����ddd��n#1swxYwYtt&d��5}|�tj
t(����ddd��n#1swxYwYtt*d��5}|�tj
t,����ddd��dS#1swxYwYdS)Nr�wb)�addClassCleanupr�rmtree�os�path�split�	LOCALEDIR�isdir�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_DATA)�cls�fps  r�
setUpClasszGettextBaseTest.setUpClass~s�����I�,�b�g�m�m�I�.F�.F�q�.I�J�J�J��w�}�}�Y�'�'�	#��K�	�"�"�"�
�&�$�
�
�	6�2��H�H�V�'��4�4�5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6�
�*�D�
1�
1�	H�R��H�H�V�'�(E�F�F�G�G�G�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H����	H�	H�	H�	H�
�*�D�
1�
1�	H�R��H�H�V�'�(E�F�F�G�G�G�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H����	H�	H�	H�	H�
�'�4�
 �
 �	3�B��H�H�V�'��1�1�2�2�2�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�
�'�4�
 �
 �	3�B��H�H�V�'��1�1�2�2�2�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�	3�	3sZ�-C�C�C�4-D-�-D1�4D1�
-F�F
�
F
�&-G�G#�&G#�?-H9�9H=�H=c��|�tj����|_d|jd<t	��|�t��dS)Nr�LANGUAGE)�enterContextr�EnvironmentVarGuard�envr�
addCleanup��selfs r�setUpzGettextBaseTest.setUp�sM���$�$�Y�%B�%D�%D�E�E���#������������
�&�&�&�&�&rN)�__name__�
__module__�__qualname__�classmethodr/r8rrrrr}s<�������
3�
3��[�
3�'�'�'�'�'rrs�3hIElQAAAAABAAAAHAAAACQAAAAAAAAAAAAAAAAAAAAsAAAAggAAAC0AAAAAUGx1cmFsLUZvcm1z
OiBucGx1cmFscz0yOyBwbHVyYWw9KG4gIT0gMSk7CiMtIy0jLSMtIyAgbWVzc2FnZXMucG8gKEVk
WCBTdHVkaW8pICAjLSMtIy0jLSMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVU
Ri04CgA=
c�>�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	S)
�GettextTestCase1c��t�|��tj|_t
|_tjd|jdg���dS)Nr
�pgettext��names)	rr8r�curdir�	localedirr �mofiler
�installr6s rr8zGettextTestCase1.setUp�sG�����d�#�#�#����������	�4�>�*��F�F�F�F�F�Frc���|j}|td��d��|td��d��|td��d��|td��d��dS�N�	albatross�mullusk�baconzRaymond Luxury Yach-tzThroatwobbler Mangrove�nudge nudge�	wink wink��assertEqual�_�r7�eqs  r�test_some_translationsz'GettextTestCase1.test_some_translations��v��
�
��
��1�[�>�>�;�'�'�'�
��1�Y�<�<��!�!�!�
��1�
%�&�&�(@�A�A�A�
��1�^���k�*�*�*�*�*rc�|�|j}|tdd��d��|tdd��d��dS�N�
my contextrL�wink wink (in "my context")�my other context�!wink wink (in "my other context"))rOr@rQs  r�#test_some_translations_with_contextz4GettextTestCase1.test_some_translations_with_context�s[��
�
��
��8�L�-�0�0�(�	*�	*�	*�
��8�&�
�6�6�.�	0�	0�	0�	0�	0rc���|j}|td��d��|td��d��|td��d��|td��d��dSrHrNrQs  r�test_double_quotesz#GettextTestCase1.test_double_quotes�rTrc���|j}|td��d��|td��d��|td��d��|td��d��dSrHrNrQs  r�test_triple_single_quotesz*GettextTestCase1.test_triple_single_quotes��{��
�
��
��1�_���{�+�+�+�
��1�]���W�%�%�%�
��1�
)�*�*�,D�E�E�E�
��1�
� � �+�.�.�.�.�.rc���|j}|td��d��|td��d��|td��d��|td��d��dSrHrNrQs  r�test_triple_double_quotesz*GettextTestCase1.test_triple_double_quotes�r`rc�F�|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.rNrQs  r�test_multiline_stringsz'GettextTestCase1.test_multiline_strings�s>��
�
��
��1�$�%�%�$�	%�	%�	%�	%�	%rc�H�|j}|j}t|jd��5}t	j|��}ddd��n#1swxYwY|���|td��d��|���|td��d��ddl}|�ddg�	��|t|j��||j|j��|t|j	��|t|j
��|`|`	dS)
N�rbrLrMrJrKrr
�ngettextrA)rO�assertNotEqualrrEr
�GNUTranslationsrFrP�builtinsrhr@)r7rR�neqr.�trks      r�test_the_alternative_interfacez/GettextTestCase1.test_the_alternative_interface�s[��
�
���!��
�$�+�t�
$�
$�	,���'��+�+�A�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�	
�	�	����
��1�]���[�)�)�)�	�	�	����
��1�Y�<�<��!�!�!�����	�	�	��J�/�	�0�0�0�
��1�a�i����
��8��Q�Y�'�'�'�
��8�Q�Z� � � ���H�a�j�!�!�!������s�A�A	�A	N)r9r:r;r8rSr[r]r_rbrernrrrr>r>�s�������G�G�G�+�+�+�0�0�0�+�+�+�/�/�/�/�/�/�%�%�%�����rr>c�V�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
S)�GettextTestCase2c���t�|��tj|_tjd|j��tjd��t
j|_dS�Nr
)	rr8rrCrDr
�bindtextdomain�
textdomainrPr6s rr8zGettextTestCase2.setUp�sR�����d�#�#�#�������y�$�.�9�9�9���9�%�%�%������rc�`�|�tjd��|j��dSrr)rOr
rsrDr6s r�test_bindtextdomainz$GettextTestCase2.test_bindtextdomain�s+������/�	�:�:�D�N�K�K�K�K�Krc�T�|�tj��d��dSrr)rOr
rtr6s r�test_textdomainz GettextTestCase2.test_textdomain�s'������+�-�-�y�9�9�9�9�9rc��ttd��5}|�t��5}t	j|��ddd��n#1swxYwY|j}|�|jd��|�|j	d��|�|j
t��ddd��dS#1swxYwYdS)NrgrzBad version number 5)rr%�assertRaises�OSErrorr
rj�	exceptionrO�errno�strerror�filename)r7r.�cmr|s    r�test_bad_major_versionz'GettextTestCase2.test_bad_major_version�sS��
�*�D�
1�
1�	K�R��"�"�7�+�+�
,�r��'��+�+�+�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,����
,�
,�
,�
,���I����Y�_�a�0�0�0����Y�/�1G�H�H�H����Y�/�1I�J�J�J�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K����	K�	K�	K�	K�	K�	Ks5�C�A�C�A	�C�A	�A C�C�Cc��ttd��5}tj|��ddd��dS#1swxYwYdS�Nrg)rr'r
rj�r7r.s  r�test_bad_minor_versionz'GettextTestCase2.test_bad_minor_versions���
�*�D�
1�
1�	(�R��#�B�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	(�	(s�8�<�<c��|j}||�d��d��||�d��d��||�d��d��||�d��d��dSrHrNrQs  rrSz'GettextTestCase2.test_some_translations
���
�
��
��4�6�6�+����,�,�,�
��4�6�6�)���g�&�&�&�
��4�6�6�*�+�+�-E�F�F�F�
��4�6�6�.�!�!�;�/�/�/�/�/rc��|j}|tjdd��d��|tjdd��d��dSrV)rOr
r@rQs  rr[z4GettextTestCase2.test_some_translations_with_contextsa��
�
��
��7��L�-�8�8�(�	*�	*�	*�
��7��.�
�>�>�.�	0�	0�	0�	0�	0rc��|j}|tjddd��d��|tjddd��d��dS)Nr
rWrLrXrYrZ)rOr
�	dpgettextrQs  r�.test_some_translations_with_context_and_domainz?GettextTestCase2.test_some_translations_with_context_and_domainse��
�
��
��7��Y��m�D�D�(�	*�	*�	*�
��7��Y�(:�M�J�J�.�	0�	0�	0�	0�	0rc��|j}||�d��d��||�d��d��||�d��d��||�d��d��dSrHrNrQs  rr]z#GettextTestCase2.test_double_quotes r�rc��|j}||�d��d��||�d��d��||�d��d��||�d��d��dSrHrNrQs  rr_z*GettextTestCase2.test_triple_single_quotes(���
�
��
��4�6�6�/�"�"�K�0�0�0�
��4�6�6�-� � �'�*�*�*�
��4�6�6�.�/�/�1I�J�J�J�
��4�6�6�$�%�%�{�3�3�3�3�3rc��|j}||�d��d��||�d��d��||�d��d��||�d��d��dSrHrNrQs  rrbz*GettextTestCase2.test_triple_double_quotes0r�rc�R�|j}||�d��d��dSrdrNrQs  rrez'GettextTestCase2.test_multiline_strings8sB��
�
��
��4�6�6�$�%�%�$�	%�	%�	%�	%�	%rN)r9r:r;r8rvrxr�r�rSr[r�r]r_rbrerrrrprp�s�������!�!�!�L�L�L�:�:�:�K�K�K�(�(�(�
0�0�0�0�0�0�0�0�0�0�0�0�4�4�4�4�4�4�%�%�%�%�%rrpc�*�eZdZ	dd�Zd�Zd�Zd�ZdS)�PluralFormsTestsTc��|||d��}|�||��|||d��}|�||��||��}|�||��|�r||jjjdz}	|�t
��5}
|||d��}ddd��n#1swxYwY|�|
jt��|�|
j|	dz��|�||��|�t
��5}
|||d��}ddd��n#1swxYwY|�|
jt��|�|
j|	dz��|�||��|�	t��5|||d��ddd��dS#1swxYwYdS|||d��}|�||��dS)N���	��?�皙�����?)rO�_test_plural_forms�__code__�co_firstlineno�assertWarns�DeprecationWarningr�__file__�linenorz�	TypeError)r7rhr
�singular�plural�	tsingular�tplural�numbers_only�xr�r�s           rr�z#PluralFormsTests._test_plural_formsEs���
�H�X�v�q�)�)������I�&�&�&��H�X�v�q�)�)������G�$�$�$��G�H��������I�&�&�&��	)��,�5�D�q�H�F��!�!�"4�5�5�
4���H�X�v�s�3�3��
4�
4�
4�
4�
4�
4�
4�
4�
4�
4�
4����
4�
4�
4�
4����R�[�(�3�3�3����R�Y���
�3�3�3����Q�	�*�*�*��!�!�"4�5�5�
4���H�X�v�s�3�3��
4�
4�
4�
4�
4�
4�
4�
4�
4�
4�
4����
4�
4�
4�
4����R�[�(�3�3�3����R�Y���
�3�3�3����Q��(�(�(��"�"�9�-�-�
1�
1����6�4�0�0�0�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1����
1�
1�
1�
1�
1�
1����6�4�0�0�A����Q��(�(�(�(�(s6�B3�3B7�:B7�,E�E
�
E
�?G�G�!Gc��|�|j|jdddd��|�|j|jdddd��dS)N�There is %s file�There are %s files�Hay %s fichero�Hay %s ficheros�%d file deleted�%d files deleted)r�rhr
r6s r�test_plural_formsz"PluralFormsTests.test_plural_formsash������M�4�<�� 4��/�	1�	1�	1�	
����M�4�<��1��1�	3�	3�	3�	3�	3rc���t|jd��}t|jd��}|�||dddd��|�||dddd��dS)N�With contextr�r��Hay %s fichero (context)�Hay %s ficheros (context)r�r�)r�	npgettextr@r�)r7rhr
s   r�test_plural_context_formsz*PluralFormsTests.test_plural_context_formsks����4�>�>�:�:���$�-��8�8������g�� 4�&�(C�	E�	E�	E�	
����g��1��1�	3�	3�	3�	3�	3rc��|�t|jd��t|jd��dddd��dS)NzUnknown contextr�r�)r�rr�r@r6s r�test_plural_wrong_context_formsz0PluralFormsTests.test_plural_wrong_context_formswsP������D�N�$5�6�6��D�M�#4�5�5�� 4�� 4�		6�	6�	6�	6�	6rN)T)r9r:r;r�r�r�r�rrrr�r�CsZ������)-�)�)�)�)�83�3�3�
3�
3�
3�6�6�6�6�6rr�c��eZdZd�ZdS)�"GNUTranslationsPluralFormsTestCasec�(�t�|��tjdtj��tjd��tj|_tj|_tj|_tj	|_	dSrr)
rr8r
rsrrCrtrhr@r�r6s rr8z(GNUTranslationsPluralFormsTestCase.setUp�sg�����d�#�#�#���y�"�)�4�4�4���9�%�%�%������(��
��(��
� �*����rN)r9r:r;r8rrrr�r�s#������	+�	+�	+�	+�	+rr�c� �eZdZd�Zd�Zd�ZdS)�,GNUTranslationsWithDomainPluralFormsTestCasec�p�t�|��tjdtj��t
tjd��|_t
tjd��|_	t
tj
d��|_t
tjd��|_
dSrr)rr8r
rsrrCr�dgettext�	dngettextrhr�r@�
dnpgettextr�r6s rr8z2GNUTranslationsWithDomainPluralFormsTestCase.setUp�s�����d�#�#�#���y�"�)�4�4�4��w�/��;�;����� 1�9�=�=��
��� 1�9�=�=��
� ��!3�Y�?�?����rc	��|�ttjd��ttjd��ddddd���dS)N�unknownr�r�F�r�)r�rr
r�r�r6s r�test_plural_forms_wrong_domainzKGNUTranslationsWithDomainPluralFormsTestCase.test_plural_forms_wrong_domain�sX������G�%�y�1�1��G�$�i�0�0�� 4�� 4��	 �	 �	 �	 �	 �	 rc	��|�ttjdd��ttjdd��ddddd���dS)Nr�r�r�r�Fr�)r�rr
r�r�r6s r�&test_plural_context_forms_wrong_domainzSGNUTranslationsWithDomainPluralFormsTestCase.test_plural_context_forms_wrong_domain�s\������G�&�	�>�B�B��G�%�y�.�A�A�� 4�� 4��	 �	 �	 �	 �	 �	 rN)r9r:r;r8r�r�rrrr�r��sD������@�@�@� � � � � � � � rr�c� �eZdZd�Zd�Zd�ZdS)�'GNUTranslationsClassPluralFormsTestCasec��t�|��ttd��5}t	j|��}ddd��n#1swxYwY|j|_|j|_|j|_|j|_dSr�)	rr8rr r
rjrhr@r��r7r.rms   rr8z-GNUTranslationsClassPluralFormsTestCase.setUp�s������d�#�#�#�
�&�$�
�
�	,�2��'��+�+�A�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,��y����
��
��
��
������s�A�A�Ac	�x�tj��}|�|j|jddddd���dS)Nr�r�Fr�)r
�NullTranslationsr�rh�r7rms  r�#test_plural_forms_null_translationszKGNUTranslationsClassPluralFormsTestCase.test_plural_forms_null_translations�sO���$�&�&�����
�J��	�� 4�� 4��		 �	 �	 �	 �	 �	 rc	��tj��}|�t|jd��t|jd��ddddd���dS)Nr�r�r�Fr�)r
r�r�rr�r@r�s  r�+test_plural_context_forms_null_translationszSGNUTranslationsClassPluralFormsTestCase.test_plural_context_forms_null_translations�sd���$�&�&������A�K��0�0��A�J��/�/�� 4�� 4��	 �	 �	 �	 �	 �	 rN)r9r:r;r8r�r�rrrr�r��sA������%�%�%� � � � � � � � rr�c��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�PluralFormsInternalTestCasec���|j}tjd���d��fd�t	d��D����}||d��dS)N�0�c�@��g|]}t�|������Sr��str��.0r��fs  �r�
<listcomp>z7PluralFormsInternalTestCase.test_ja.<locals>.<listcomp>��'���5�5�5�A�c�!�!�A�$�$�i�i�5�5�5r����00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000�rOr
�c2py�join�range�r7rR�sr�s   @r�test_jaz#PluralFormsInternalTestCase.test_ja�sq���
�
���L������G�G�5�5�5�5��s���5�5�5�6�6��
��1�Y�	Z�	Z�	Z�	Z�	Zrc���|j}tjd���d��fd�t	d��D����}||d��dS)N�n != 1r�c�@��g|]}t�|������Srr�r�s  �rr�z7PluralFormsInternalTestCase.test_de.<locals>.<listcomp>�r�rr���10111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111r�r�s   @r�test_dez#PluralFormsInternalTestCase.test_de�sq���
�
���L��"�"���G�G�5�5�5�5��s���5�5�5�6�6��
��1�Y�	Z�	Z�	Z�	Z�	Zrc���|j}tjd���d��fd�t	d��D����}||d��dS)Nzn>1r�c�@��g|]}t�|������Srr�r�s  �rr�z7PluralFormsInternalTestCase.test_fr.<locals>.<listcomp>�r�rr���00111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111r�r�s   @r�test_frz#PluralFormsInternalTestCase.test_fr�sq���
�
���L������G�G�5�5�5�5��s���5�5�5�6�6��
��1�Y�	Z�	Z�	Z�	Z�	Zrc���|j}tjd���d��fd�t	d��D����}||d��dS)Nz)n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2r�c�@��g|]}t�|������Srr�r�s  �rr�z7PluralFormsInternalTestCase.test_lv.<locals>.<listcomp>�r�rr���20111111111111111111101111111110111111111011111111101111111110111111111011111111101111111110111111111011111111111111111110111111111011111111101111111110111111111011111111101111111110111111111011111111r�r�s   @r�test_lvz#PluralFormsInternalTestCase.test_lv�sr���
�
���L�D�E�E���G�G�5�5�5�5��s���5�5�5�6�6��
��1�Y�	Z�	Z�	Z�	Z�	Zrc���|j}tjd���d��fd�t	d��D����}||d��dS)Nzn==1 ? 0 : n==2 ? 1 : 2r�c�@��g|]}t�|������Srr�r�s  �rr�z7PluralFormsInternalTestCase.test_gd.<locals>.<listcomp>�r�rr���20122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222r�r�s   @r�test_gdz#PluralFormsInternalTestCase.test_gd�sr���
�
���L�2�3�3���G�G�5�5�5�5��s���5�5�5�6�6��
��1�Y�	Z�	Z�	Z�	Z�	Zrc���|j}tjd���d��fd�t	d��D����}||d��dS)Nzn==1 ? 0 : (n==2 ? 1 : 2)r�c�@��g|]}t�|������Srr�r�s  �rr�z8PluralFormsInternalTestCase.test_gd2.<locals>.<listcomp>�r�rr�r�r�r�s   @r�test_gd2z$PluralFormsInternalTestCase.test_gd2�sr���
�
���L�4�5�5���G�G�5�5�5�5��s���5�5�5�6�6��
��1�Y�	Z�	Z�	Z�	Z�	Zrc���|j}tjd���d��fd�t	d��D����}||d��dS)Nz6n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2r�c�@��g|]}t�|������Srr�r�s  �rr�z7PluralFormsInternalTestCase.test_ro.<locals>.<listcomp>�r�rr���10111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222r�r�s   @r�test_roz#PluralFormsInternalTestCase.test_ro�sr���
�
���L�Q�R�R���G�G�5�5�5�5��s���5�5�5�6�6��
��1�Y�	Z�	Z�	Z�	Z�	Zrc���|j}tjd���d��fd�t	d��D����}||d��dS)NzEn%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2r�c�@��g|]}t�|������Srr�r�s  �rr�z7PluralFormsInternalTestCase.test_lt.<locals>.<listcomp>�r�rr���20111111112222222222201111111120111111112011111111201111111120111111112011111111201111111120111111112011111111222222222220111111112011111111201111111120111111112011111111201111111120111111112011111111r�r�s   @r�test_ltz#PluralFormsInternalTestCase.test_lt�sr���
�
���L�`�a�a���G�G�5�5�5�5��s���5�5�5�6�6��
��1�Y�	Z�	Z�	Z�	Z�	Zrc���|j}tjd���d��fd�t	d��D����}||d��dS)NzPn%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2r�c�@��g|]}t�|������Srr�r�s  �rr�z7PluralFormsInternalTestCase.test_ru.<locals>.<listcomp>�r�rr���20111222222222222222201112222220111222222011122222201112222220111222222011122222201112222220111222222011122222222222222220111222222011122222201112222220111222222011122222201112222220111222222011122222r�r�s   @r�test_ruz#PluralFormsInternalTestCase.test_ru�sr���
�
���L�k�l�l���G�G�5�5�5�5��s���5�5�5�6�6��
��1�Y�	Z�	Z�	Z�	Z�	Zrc���|j}tjd���d��fd�t	d��D����}||d��dS)Nz#(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2r�c�@��g|]}t�|������Srr�r�s  �rr�z7PluralFormsInternalTestCase.test_cs.<locals>.<listcomp>r�rr���20111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222r�r�s   @r�test_csz#PluralFormsInternalTestCase.test_cs�sr���
�
���L�>�?�?���G�G�5�5�5�5��s���5�5�5�6�6��
��1�Y�	Z�	Z�	Z�	Z�	Zrc���|j}tjd���d��fd�t	d��D����}||d��dS)Nz@n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2r�c�@��g|]}t�|������Srr�r�s  �rr�z7PluralFormsInternalTestCase.test_pl.<locals>.<listcomp>r�rr���20111222222222222222221112222222111222222211122222221112222222111222222211122222221112222222111222222211122222222222222222111222222211122222221112222222111222222211122222221112222222111222222211122222r�r�s   @r�test_plz#PluralFormsInternalTestCase.test_plsr���
�
���L�[�\�\���G�G�5�5�5�5��s���5�5�5�6�6��
��1�Y�	Z�	Z�	Z�	Z�	Zrc���|j}tjd���d��fd�t	d��D����}||d��dS)Nz:n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3r�c�@��g|]}t�|������Srr�r�s  �rr�z7PluralFormsInternalTestCase.test_sl.<locals>.<listcomp>r�rr���30122333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333012233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333r�r�s   @r�test_slz#PluralFormsInternalTestCase.test_slsr���
�
���L�U�V�V���G�G�5�5�5�5��s���5�5�5�6�6��
��1�Y�	Z�	Z�	Z�	Z�	Zrc���|j}tjd���d��fd�t	d��D����}||d��dS)NzNn==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5r�c�@��g|]}t�|������Srr�r�s  �rr�z7PluralFormsInternalTestCase.test_ar.<locals>.<listcomp>r�rr���01233333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444445553333333344444444444444444444444444444444444444444444444444444444444444444444444444444444444444444r�r�s   @r�test_arz#PluralFormsInternalTestCase.test_arsr���
�
���L�i�j�j���G�G�5�5�5�5��s���5�5�5�6�6��
��1�Y�	Z�	Z�	Z�	Z�	Zrc�L�|j}|ttjd��|ttjd��|ttjd��|ttjddzdz��|�tjd��d��d	��|ttjd
��|ttjddzdzddzz��|�tjd
��d��d��dS)Nzos.chmod('/etc/passwd',0777)z"(eval(foo) && ""zf"{os.system('sh')}"zn+i'�nz�n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+nr��ez�((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((n))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))�(�)z)((((((((((((((((((((n)))))))))))))))))))))rz�
ValueErrorr
r�rO)r7�raisess  r�
test_securityz)PluralFormsInternalTestCase.test_securitys	���"����z�7�<�)G�H�H�H���z�7�<�)<�=�=�=���z�7�<�)A�B�B�B���z�7�<��e��c�)9�:�:�:����5���n�5�5�a�8�8�#�>�>�>���z�7�<�)@�A�A�A���z�7�<��U��S��3�u�9�)D�E�E�E����<���&;�<�<�Q�?�?��C�C�C�C�Crc���tjd���|�d��fd�t	d��D����d��tjd���|�d��fd�t	d��D����d��tjd	���|�d��fd
�t	d��D����d��tjd���|�d��fd�t	d��D����d
��dS)Nzn == n == nr�c3�H�K�|]}t�|����V��dS�Nr�r�s  �r�	<genexpr>zFPluralFormsInternalTestCase.test_chained_comparison.<locals>.<genexpr>*�1����� =� =�q��Q�Q�q�T�T��� =� =� =� =� =� =r��010z
1 < n == nc3�H�K�|]}t�|����V��dSr!r�r�s  �rr"zFPluralFormsInternalTestCase.test_chained_comparison.<locals>.<genexpr>,r#r�100z
n == n < 2c3�H�K�|]}t�|����V��dSr!r�r�s  �rr"zFPluralFormsInternalTestCase.test_chained_comparison.<locals>.<genexpr>.r#rz	0 < n < 2c3�H�K�|]}t�|����V��dSr!r�r�s  �rr"zFPluralFormsInternalTestCase.test_chained_comparison.<locals>.<genexpr>0r#r�111)r
r�rOr�r��r7r�s @r�test_chained_comparisonz3PluralFormsInternalTestCase.test_chained_comparison's9����L��'�'�������� =� =� =� =�E�!�H�H� =� =� =�=�=�u�E�E�E��L��&�&�������� =� =� =� =�E�!�H�H� =� =� =�=�=�u�E�E�E��L��&�&�������� =� =� =� =�E�!�H�H� =� =� =�=�=�u�E�E�E��L��%�%�������� =� =� =� =�E�!�H�H� =� =� =�=�=�u�E�E�E�E�Erc�h�|�tjd��d��d��dS)N�0123r��{�rOr
r�r6s r�test_decimal_numberz/PluralFormsInternalTestCase.test_decimal_number2s3�����-���f�-�-�a�0�0�#�6�6�6�6�6rc��gd�}|D]H}|�t��5tj|��ddd��n#1swxYwY�IdS)N)zx>1z(n>1zn>1)z
42**42**42�0xaz1.0�1e2zn>0x1z+nz-nzn()zn(1)z1+�nnzn n)rzrr
r�)r7�invalid_expressions�exprs   r�test_invalid_syntaxz/PluralFormsInternalTestCase.test_invalid_syntax5s���
�
�
��(�	#�	#�D��"�"�:�.�.�
#�
#���T�"�"�"�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#����
#�
#�
#�
#��	#�	#s�A�A	�A	c��|�tjd��d��d��|�tjd��d��d��|�tjd��d��d��|�tjd��d��d��dS)Nz	n?1?2:3:4rr�r�r�z	n?1:3?4:5r0r6s r�test_nested_condition_operatorz:PluralFormsInternalTestCase.test_nested_condition_operator>s������2���k�2�2�1�5�5�q�9�9�9����2���k�2�2�1�5�5�q�9�9�9����2���k�2�2�1�5�5�q�9�9�9����2���k�2�2�1�5�5�q�9�9�9�9�9rc�^�tjd��}|�|d��d��|�|d��d��|�|d��d��|�|d��d��|�t|d��dS)	Nz2/n*3r��r�r$r���i����)r
r�rOrz�ZeroDivisionErrorr+s  r�
test_divisionz)PluralFormsInternalTestCase.test_divisionDs����L��!�!�������1���q�!�!�!������1���q�!�!�!������1���q�!�!�!������2����#�#�#����+�Q��2�2�2�2�2rc��tjd��}|�|d��d��|�|d��d��|�t��5|�|d��d��ddd��n#1swxYwY|�t��5|�|d��d��ddd��n#1swxYwY|�t��5|�|d��d��ddd��n#1swxYwY|�t|d��|�t|d	��|�t|g��|�t|t����dS)
Nr�r�rr�r�g@r��2�2)r
r�rOr�r�rzr��objectr+s  r�test_plural_numberz.PluralFormsInternalTestCase.test_plural_numberLsO���L��"�"�������1���q�!�!�!������1���q�!�!�!�
�
�
�0�
1�
1�	(�	(����Q�Q�s�V�V�Q�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�
�
�
�0�
1�
1�	(�	(����Q�Q�s�V�V�Q�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�
�
�
�0�
1�
1�	(�	(����Q�Q�s�V�V�Q�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(����)�Q��,�,�,����)�Q��-�-�-����)�Q��+�+�+����)�Q����1�1�1�1�1s6�- B�B� B�> C*�*C.�1C.� D;�;D?�D?N)r9r:r;r�r�r�r�r�r�r�rrr
rrrrr,r1r8r:r?rDrrrr�r��sm������Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�D�D�D� 	F�	F�	F�7�7�7�#�#�#�:�:�:�3�3�3�
2�
2�
2�
2�
2rr�c��eZdZd�Zd�ZdS)�GNUTranslationParsingTestc�<�ttd��5}|�tjt
����ddd��n#1swxYwYttd��5}t
j|��}ddd��dS#1swxYwYdS)Nrrg)rr r!r"r#�GNU_MO_DATA_ISSUE_17898r
rjr�s   r�!test_plural_form_error_issue17898z;GNUTranslationParsingTest.test_plural_form_error_issue17898]s��
�&�$�
�
�	B�2��H�H�V�'�(?�@�@�A�A�A�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�
�&�$�
�
�	,�2��'��+�+�A�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�	,�	,s#�-A�A�A�/B�B�Bc��ttd��5}|�tjt
����ddd��n#1swxYwYttd��5}t
j|��}|�|�	��dd��ddd��dS#1swxYwYdS)zuChecks that comments like:

            #-#-#-#-#  messages.po (EdX Studio)  #-#-#-#-#

        are ignored.
        rNrgzplural-formsznplurals=2; plural=(n != 1);)
rr r!r"r#rHr
rjrO�infor�s   r�*test_ignore_comments_in_headers_issue36239zDGNUTranslationParsingTest.test_ignore_comments_in_headers_issue36239dsL���&�$�
�
�	B�2��H�H�V�'�(?�@�@�A�A�A�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�
�&�$�
�
�	W�2��'��+�+�A����Q�V�V�X�X�n�5�7U�V�V�V�	W�	W�	W�	W�	W�	W�	W�	W�	W�	W�	W�	W����	W�	W�	W�	W�	W�	Ws$�-A�A�A�/AB?�?C�CN)r9r:r;rIrLrrrrFrF\s7������,�,�,�W�W�W�W�WrrFc�&�eZdZd�Zd�Zd�Zd�ZdS)�UnicodeTranslationsTestc�
�t�|��ttd��5}t	j|��|_ddd��n#1swxYwY|jj|_|jj|_dSr�)	rr8rr)r
rjrmrPr@r�s  rr8zUnicodeTranslationsTest.setUpss������d�#�#�#�
�'�4�
 �
 �	1�B��,�R�0�0�D�F�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1����������
�
�
��A�A�Ac�b�|�|�d��t��dS)Nr�)�assertIsInstancerPr�r6s r�test_unicode_msgidz*UnicodeTranslationsTest.test_unicode_msgidzs(�����d�f�f�R�j�j�#�.�.�.�.�.rc�X�|�|�d��d��dS)N�abÞu¤yzrNr6s r�test_unicode_msgstrz+UnicodeTranslationsTest.test_unicode_msgstr}s*���������)�)�8�4�4�4�4�4rc��|�dd��}|�t|t����|�|d��dS)NumycontextÞrUu¤yz (context version))r@�
assertTrue�
isinstancer�rOr�s  r�test_unicode_context_msgstrz3UnicodeTranslationsTest.test_unicode_context_msgstr�sN���M�M�/�8�4�4�����
�1�c�*�*�+�+�+�����6�7�7�7�7�7rN)r9r:r;r8rSrVrZrrrrNrNrsP������(�(�(�/�/�/�5�5�5�8�8�8�8�8rrNc�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�UnicodeTranslationsPluralTestc�
�t�|��ttd��5}t	j|��|_ddd��n#1swxYwY|jj|_|jj|_dSr�)	rr8rr r
rjrmrhr�r�s  rr8z#UnicodeTranslationsPluralTest.setUp�s������d�#�#�#�
�&�$�
�
�	1�2��,�R�0�0�D�F�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�����
���)����rPc	���|j}|t|�ddd��t����|t|�ddd��t����dS�Nr�r�r�)rXrYrhr��r7�unlesss  rrSz0UnicodeTranslationsPluralTest.test_unicode_msgid�sc�������z�$�-�-��B��2�2�C�8�8�9�9�9���z�$�-�-��B��2�2�C�8�8�9�9�9�9�9rc
���|j}|t|�dddd��t����|t|�dddd��t����dSr_)rXrYr�r�r`s  r�test_unicode_context_msgidz8UnicodeTranslationsPluralTest.test_unicode_context_msgid�sg�������z�$�.�.��R��Q�7�7��=�=�>�>�>���z�$�.�.��R��Q�7�7��=�=�>�>�>�>�>rc�b�|j}|j}|�ddd��}|t|t����||d��|t|t����|�ddd��}|t|t����||d��dS)Nr�r�r�r��r�)rOrXrhrYr��r7rRrarms    rrVz1UnicodeTranslationsPluralTest.test_unicode_msgstr�s���
�
������M�M�,�.B�A�F�F����z�!�S�!�!�"�"�"�
��1�������z�!�S�!�!�"�"�"��M�M�,�.B�A�F�F����z�!�S�!�!�"�"�"�
��1�� � � � � rc�*�|j}|j}|�dddd��}|t|t����||d��|�dddd��}|t|t����||d��dS)Nr�r�r�r�r�rer�)rOrXr�rYr�rfs    r� test_unicode_msgstr_with_contextz>UnicodeTranslationsPluralTest.test_unicode_msgstr_with_context�s���
�
������N�N�>�-�/C�Q�
H�
H����z�!�S�!�!�"�"�"�
��1�(�)�)�)��N�N�>�-�/C�Q�
H�
H����z�!�S�!�!�"�"�"�
��1�)�*�*�*�*�*rN)r9r:r;r8rSrcrVrhrrrr\r\�s_������*�*�*�:�:�:�
?�?�?�
	!�	!�	!�
+�
+�
+�
+�
+rr\c��eZdZd�Zd�ZdS)�WeirdMetadataTestc��t�|��ttd��5}	t	j|��|_n#|����xYw	ddd��dS#1swxYwYdSr�)rr8rr+r
rjrm�tearDownr�s  rr8zWeirdMetadataTest.setUp�s������d�#�#�#�
�'�4�
 �
 �	�B�
� �0��4�4�����
��
�
���������	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s(�A4�A�A4�A#�#A4�4A8�;A8c��|j���}|�t|��d��|�|dd��dS)Nr�zlast-translatorz=John Doe <jdoe@example.com>
Jane Foobar <jfoobar@example.com>)rmrKrO�len)r7rKs  r�test_weird_metadataz%WeirdMetadataTest.test_weird_metadata�s_���v�{�{�}�}������T���A�&�&�&�����/�0�K�	M�	M�	M�	M�	MrN)r9r:r;r8rorrrrjrj�s7���������M�M�M�M�Mrrjc��eZdZd�ZdS)�DummyGNUTranslationsc��dS)N�foorr6s rrszDummyGNUTranslations.foo�s���urN)r9r:r;rsrrrrqrq�s#����������rrqc��eZdZd�ZdS)�GettextCacheTestCasec���tj|_t|_|�t
tj��d��tj	d|j��}|�t
tj��d��tj	d|jt���}|�t
tj��d��|�|jt��tj	d|jt���}|�t
tj��d��|�|jt��dS)Nrr
r�)�class_r�)rrCrDr rErOrnr
r�translationrq�	__class__r�s  r�
test_cachezGettextCacheTestCase.test_cache�s(�������������W�2�3�3�Q�7�7�7���	�4�>�:�:������W�2�3�3�Q�7�7�7���	�4�>�';�
=�
=�
=��	
����W�2�3�3�Q�7�7�7������&:�;�;�;�
��	�4�>�';�
=�
=�
=��	
����W�2�3�3�Q�7�7�7������&:�;�;�;�;�;rN)r9r:r;rzrrrruru�s#������<�<�<�<�<rruc��eZdZd�ZdS)�MiscTestCasec�B�tj|tddh���dS)Nr��ENOENT)�not_exported)r�check__all__r
r6s r�test__all__zMiscTestCase.test__all__�s2����T�7�+1�8�*<�	>�	>�	>�	>�	>�	>rN)r9r:r;r�rrrr|r|�s#������>�>�>�>�>rr|�__main__),rr"r
�unittest�	functoolsr�testr�test.supportrr$r&r(r*r,rr�rr r%r'r)r+r�TestCaserrHr>rpr�r�r�r�r�rFrNr\rjrjrqrur|r9�mainrrr�<module>r�s��	�	�	�	�
�
�
�
���������������������"�"�"�"�"�"���8!��0!��*��	��
�G�L�L��}�-�-�	�	����i��	.�	.���7�<�<�	�3Q�R�R���7�<�<�	�3Q�R�R��
�'�,�,�y�-�
0�
0��
�'�,�,�y�-�
0�
0��"�"�"�'�'�'�'�'�h�'�'�'�'�0��L�L�L�L�L��L�L�L�^U%�U%�U%�U%�U%��U%�U%�U%�p96�96�96�96�96�96�96�96�x
+�
+�
+�
+�
+�)9�?�
+�
+�
+� � � � � �3C�_� � � �8 � � � � �.>�� � � �:T2�T2�T2�T2�T2�T2�T2�T2�nW�W�W�W�W��W�W�W�,8�8�8�8�8�o�8�8�8�('+�'+�'+�'+�'+�O�'+�'+�'+�TM�M�M�M�M��M�M�M�"�����7�2����
<�<�<�<�<�?�<�<�<�4>�>�>�>�>�8�$�>�>�>��z����H�M�O�O�O�G�X�8
�&�r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists