Sindbad~EG File Manager

Current Path : /proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/
Upload File :
Current File : //proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/test_gettext.cpython-312.pyc

�

'Μg����p�ddlZddlZddlZddlZddlmZddlmZddlm	Z	dZ
dZdZdZ
d	Zejj!d
d�Zejj!ed�Zejj!ed
�Zejj!ed�Zejj!ed�Zejj!ed�Zd�ZGd�dej0�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,ejL�Z'Gd-�d.e�Z(Gd/�d0ej0�Z)e*d1k(rejV�			y)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��tjj�dt_tjj�y)N�messages)�gettext�_localedirs�clear�_current_domain�
_translations���./usr/local/lib/python3.12/test/test_gettext.py�
reset_gettextrws.��������(�G�������!rc�"�eZdZed��Zd�Zy)�GettextBaseTestc��|jtjtjjt�d�tjjt�stjt�ttd�5}|jtjt��ddd�ttd�5}|jtjt ��ddd�tt"d�5}|jtjt$��ddd�tt&d�5}|jtjt(��ddd�tt*d�5}|jtjt,��ddd�y#1swY��xYw#1swY��xYw#1swY��xYw#1swY�pxYw#1swYyxYw)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�g�m�m�I�.F�q�.I�J��w�w�}�}�Y�'��K�K�	�"�
�&�$�
�2��H�H�V�'�'��4�5� �
�*�D�
1�R��H�H�V�'�'�(E�F�G�2�
�*�D�
1�R��H�H�V�'�'�(E�F�G�2�
�'�4�
 �B��H�H�V�'�'��1�2�!�
�'�4�
 �B��H�H�V�'�'��1�2�!�
 � �
��
1�
1��
1�
1��
 �
 ��
 �
 �s<�)G�)G�)G �)G,�)G8�G�G� G)�,G5�8Hc��|jtj��|_d|jd<t	�|jt�y)Nr�LANGUAGE)�enterContextr�EnvironmentVarGuard�envr�
addCleanup��selfs r�setUpzGettextBaseTest.setUp�s<���$�$�Y�%B�%B�%D�E���#�����������
�&rN)�__name__�
__module__�__qualname__�classmethodr/r8rrrrr}s���
3��
3�'rrs�3hIElQAAAAABAAAAHAAAACQAAAAAAAAAAAAAAAAAAAAsAAAAggAAAC0AAAAAUGx1cmFsLUZvcm1z
OiBucGx1cmFscz0yOyBwbHVyYWw9KG4gIT0gMSk7CiMtIy0jLSMtIyAgbWVzc2FnZXMucG8gKEVk
WCBTdHVkaW8pICAjLSMtIy0jLSMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVU
Ri04CgA=
c�<�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
y	)
�GettextTestCase1c��tj|�tj|_t
|_tjd|jdg��y)Nr
�pgettext��names)	rr8r�curdir�	localedirr �mofiler
�installr6s rr8zGettextTestCase1.setUp�s8�����d�#������������	�4�>�>�*��Frc��|j}|td�d�|td�d�|td�d�|td�d�y�N�	albatross�mullusk�baconzRaymond Luxury Yach-tzThroatwobbler Mangrove�nudge nudge�	wink wink��assertEqual�_�r7�eqs  r�test_some_translationsz'GettextTestCase1.test_some_translations��I��
�
�
��
�1�[�>�;�'�
�1�Y�<��!�
�1�
%�&�(@�A�
�1�^��k�*rc�h�|j}|tdd�d�|tdd�d�y�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�s6��
�
�
��
�8�L�-�0�(�	*�
�8�&�
�6�.�	0rc��|j}|td�d�|td�d�|td�d�|td�d�yrHrNrQs  r�test_double_quotesz#GettextTestCase1.test_double_quotes�rTrc��|j}|td�d�|td�d�|td�d�|td�d�yrHrNrQs  r�test_triple_single_quotesz*GettextTestCase1.test_triple_single_quotes��L��
�
�
��
�1�_��{�+�
�1�]��W�%�
�1�
)�*�,D�E�
�1�
� �+�.rc��|j}|td�d�|td�d�|td�d�|td�d�yrHrNrQs  r�test_triple_double_quotesz*GettextTestCase1.test_triple_double_quotes�r`rc�@�|j}|td�d�y�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�8�|j}|j}t|jd�5}t	j
|�}ddd�j
�|td�d�|j
�|td�d�ddl}|j
ddg�	�|t|j�||j|j�|t|j�|t|j�|`|`	y#1swY��xYw)
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�
�1�a�i�i��
�8���Q�Y�Y�'�
�8�Q�Z�Z� ��H�a�j�j�!�����!%�
$�s�D�DN)r9r:r;r8rSr[r]r_rbrernrrrr>r>�s+��G�+�0�+�/�/�%�rr>c�T�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zy
)�GettextTestCase2c���tj|�tj|_tjd|j�tjd�t
j
|_y�Nr
)	rr8rrCrDr
�bindtextdomain�
textdomainrPr6s rr8zGettextTestCase2.setUp�sH�����d�#���������y�$�.�.�9����9�%�����rc�b�|jtjd�|j�yrr)rOr
rsrDr6s r�test_bindtextdomainz$GettextTestCase2.test_bindtextdomain�s!������/�/�	�:�D�N�N�Krc�L�|jtj�d�yrr)rOr
rtr6s r�test_textdomainz GettextTestCase2.test_textdomain�s������+�+�-�y�9rc��ttd�5}|jt�5}t	j
|�ddd�j}|j|jd�|j|jd�|j|jt�ddd�y#1swY�vxYw#1swYyxYw)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�s���
�*�D�
1�R��"�"�7�+�r��'�'��+�,����I����Y�_�_�a�0����Y�/�/�1G�H����Y�/�/�1I�J�2�
1�+�+��2�
1�s"�B>�B2�A,B>�2B;	�7B>�>Cc�x�ttd�5}tj|�ddd�y#1swYyxYw�Nrg)rr'r
rj�r7r.s  r�test_bad_minor_versionz'GettextTestCase2.test_bad_minor_versions)��
�*�D�
1�R��#�#�B�'�2�
1�
1�s�0�9c���|j}||jd�d�||jd�d�||jd�d�||jd�d�yrHrNrQs  rrSz'GettextTestCase2.test_some_translations
�[��
�
�
��
�4�6�6�+���,�
�4�6�6�)��g�&�
�4�6�6�*�+�-E�F�
�4�6�6�.�!�;�/rc��|j}|tjdd�d�|tjdd�d�yrV)rOr
r@rQs  rr[z4GettextTestCase2.test_some_translations_with_contextsB��
�
�
��
�7���L�-�8�(�	*�
�7���.�
�>�.�	0rc��|j}|tjddd�d�|tjddd�d�y)Nr
rWrLrXrYrZ)rOr
�	dpgettextrQs  r�.test_some_translations_with_context_and_domainz?GettextTestCase2.test_some_translations_with_context_and_domainsF��
�
�
��
�7���Y��m�D�(�	*�
�7���Y�(:�M�J�.�	0rc���|j}||jd�d�||jd�d�||jd�d�||jd�d�yrHrNrQs  rr]z#GettextTestCase2.test_double_quotes r�rc���|j}||jd�d�||jd�d�||jd�d�||jd�d�yrHrNrQs  rr_z*GettextTestCase2.test_triple_single_quotes(�\��
�
�
��
�4�6�6�/�"�K�0�
�4�6�6�-� �'�*�
�4�6�6�.�/�1I�J�
�4�6�6�$�%�{�3rc���|j}||jd�d�||jd�d�||jd�d�||jd�d�yrHrNrQs  rrbz*GettextTestCase2.test_triple_double_quotes0r�rc�L�|j}||jd�d�yrdrNrQs  rrez'GettextTestCase2.test_multiline_strings8s*��
�
�
��
�4�6�6�$�%�$�	%rN)r9r:r;r8rvrxr�r�rSr[r�r]r_rbrerrrrprp�s@��!�L�:�K�(�
0�0�0�0�4�4�%rrpc�(�eZdZ	dd�Zd�Zd�Zd�Zy)�PluralFormsTestsc��|||d�}|j||�|||d�}|j||�||�}|j||�|�r>|jjjdz}	|j	t
�5}
|||d�}ddd�|j
jt�|j|
j|	dz�|j||�|j	t
�5}
|||d�}ddd�|j|
jt�|j|
j|	dz�|j||�|jt�5|||d�ddd�y|||d�}|j||�y#1swY��xYw#1swY��xYw#1swYyxYw)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���
�X�v�q�)������I�&��X�v�q�)������G�$��H�������I�&���,�,�5�5�D�D�q�H�F��!�!�"4�5���X�v�s�3��6����R�[�[�(�3����R�Y�Y���
�3����Q�	�*��!�!�"4�5���X�v�s�3��6����R�[�[�(�3����R�Y�Y���
�3����Q��(��"�"�9�-���6�4�0�.�-���6�4�0�A����Q��(�6�5��
6�5��
.�-�s$�F1�F>�G
�1F;�>G�
Gc��|j|j|jdddd�|j|j|jdddd�y)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_formsasR������M�M�4�<�<�� 4��/�	1�	
����M�M�4�<�<��1��1�	3rc��t|jd�}t|jd�}|j||dddd�|j||dddd�y)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_formsksc���4�>�>�>�:���$�-�-��8������g�� 4�&�(C�	E�	
����g��1��1�	3rc��|jt|jd�t|jd�dddd�y)NzUnknown contextr�r�)r�rr�r@r6s r�test_plural_wrong_context_formsz0PluralFormsTests.test_plural_wrong_context_formsws:������D�N�N�$5�6��D�M�M�#4�5�� 4�� 4�		6rN)T)r9r:r;r�r�r�r�rrrr�r�Cs��)-�)�83�
3�6rr�c��eZdZd�Zy)�"GNUTranslationsPluralFormsTestCasec�H�tj|�tjdtj
�tjd�tj|_tj|_tj|_tj|_	yrr)
rr8r
rsrrCrtrhr@r�r6s rr8z(GNUTranslationsPluralFormsTestCase.setUp�sd�����d�#����y�"�)�)�4����9�%�������(�(��
��(�(��
� �*�*��rN)r9r:r;r8rrrr�r�s��	+rr�c��eZdZd�Zd�Zd�Zy)�,GNUTranslationsWithDomainPluralFormsTestCasec�n�tj|�tjdtj
�t
tjd�|_t
tjd�|_	t
tjd�|_t
tjd�|_
yrr)rr8r
rsrrCr�dgettext�	dngettextrhr�r@�
dnpgettextr�r6s rr8z2GNUTranslationsWithDomainPluralFormsTestCase.setUp�st�����d�#����y�"�)�)�4��w�/�/��;����� 1� 1�9�=��
��� 1� 1�9�=��
� ��!3�!3�Y�?��rc	��|jttjd�ttjd�ddddd��y)N�unknownr�r�F�r�)r�rr
r�r�r6s r�test_plural_forms_wrong_domainzKGNUTranslationsWithDomainPluralFormsTestCase.test_plural_forms_wrong_domain�sD������G�%�%�y�1��G�$�$�i�0�� 4�� 4��	 �	 rc	��|jttjdd�ttjdd�ddddd��y)Nr�r�r�r�Fr�)r�rr
r�r�r6s r�&test_plural_context_forms_wrong_domainzSGNUTranslationsWithDomainPluralFormsTestCase.test_plural_context_forms_wrong_domain�sH������G�&�&�	�>�B��G�%�%�y�.�A�� 4�� 4��	 �	 rN)r9r:r;r8r�r�rrrr�r��s��@� � rr�c��eZdZd�Zd�Zd�Zy)�'GNUTranslationsClassPluralFormsTestCasec�*�tj|�ttd�5}t	j
|�}ddd�j|_|j|_|j|_|j|_y#1swY�NxYwr�)	rr8rr r
rjrhr@r��r7r.rms   rr8z-GNUTranslationsClassPluralFormsTestCase.setUp�sh�����d�#�
�&�$�
�2��'�'��+�A� ��y�y����
�
��
��
�
��
������
 �
�s�B	�	Bc	��tj�}|j|j|jddddd��y)Nr�r�Fr�)r
�NullTranslationsr�rh�r7rms  r�#test_plural_forms_null_translationszKGNUTranslationsClassPluralFormsTestCase.test_plural_forms_null_translations�s?���$�$�&�����
�J�J��	�	�� 4�� 4��		 �	 rc	��tj�}|jt|jd�t|j
d�ddddd��y)Nr�r�r�Fr�)r
r�r�rr�r@r�s  r�+test_plural_context_forms_null_translationszSGNUTranslationsClassPluralFormsTestCase.test_plural_context_forms_null_translations�sN���$�$�&������A�K�K��0��A�J�J��/�� 4�� 4��	 �	 rN)r9r:r;r8r�r�rrrr�r��s��%� � 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�Zy)�PluralFormsInternalTestCasec
���|j}tjd�}djt	d�D�cgc]}t||����c}�}||d�ycc}w)N�0�����00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000�rOr
�c2py�join�range�str�r7rR�fr��ss     r�test_jaz#PluralFormsInternalTestCase.test_ja�sZ��
�
�
���L�L�����G�G��s��5��A�c�!�A�$�i��5�6��
�1�Y�	Z��6��A#c
���|j}tjd�}djt	d�D�cgc]}t||����c}�}||d�ycc}w)N�n != 1r�r���10111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111r�r�s     r�test_dez#PluralFormsInternalTestCase.test_de�sZ��
�
�
���L�L��"���G�G��s��5��A�c�!�A�$�i��5�6��
�1�Y�	Z��6r�c
���|j}tjd�}djt	d�D�cgc]}t||����c}�}||d�ycc}w)Nzn>1r�r���00111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111r�r�s     r�test_frz#PluralFormsInternalTestCase.test_fr�sZ��
�
�
���L�L�����G�G��s��5��A�c�!�A�$�i��5�6��
�1�Y�	Z��6r�c
���|j}tjd�}djt	d�D�cgc]}t||����c}�}||d�ycc}w)Nz)n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2r�r���20111111111111111111101111111110111111111011111111101111111110111111111011111111101111111110111111111011111111111111111110111111111011111111101111111110111111111011111111101111111110111111111011111111r�r�s     r�test_lvz#PluralFormsInternalTestCase.test_lv�s[��
�
�
���L�L�D�E���G�G��s��5��A�c�!�A�$�i��5�6��
�1�Y�	Z��6r�c
���|j}tjd�}djt	d�D�cgc]}t||����c}�}||d�ycc}w)Nzn==1 ? 0 : n==2 ? 1 : 2r�r���20122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222r�r�s     r�test_gdz#PluralFormsInternalTestCase.test_gd�s[��
�
�
���L�L�2�3���G�G��s��5��A�c�!�A�$�i��5�6��
�1�Y�	Z��6r�c
���|j}tjd�}djt	d�D�cgc]}t||����c}�}||d�ycc}w)Nzn==1 ? 0 : (n==2 ? 1 : 2)r�r�r�r�r�s     r�test_gd2z$PluralFormsInternalTestCase.test_gd2�s[��
�
�
���L�L�4�5���G�G��s��5��A�c�!�A�$�i��5�6��
�1�Y�	Z��6r�c
���|j}tjd�}djt	d�D�cgc]}t||����c}�}||d�ycc}w)Nz6n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2r�r���10111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222r�r�s     r�test_roz#PluralFormsInternalTestCase.test_ro�s[��
�
�
���L�L�Q�R���G�G��s��5��A�c�!�A�$�i��5�6��
�1�Y�	Z��6r�c
���|j}tjd�}djt	d�D�cgc]}t||����c}�}||d�ycc}w)NzEn%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2r�r���20111111112222222222201111111120111111112011111111201111111120111111112011111111201111111120111111112011111111222222222220111111112011111111201111111120111111112011111111201111111120111111112011111111r�r�s     r�test_ltz#PluralFormsInternalTestCase.test_lt�s[��
�
�
���L�L�`�a���G�G��s��5��A�c�!�A�$�i��5�6��
�1�Y�	Z��6r�c
���|j}tjd�}djt	d�D�cgc]}t||����c}�}||d�ycc}w)NzPn%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2r�r���20111222222222222222201112222220111222222011122222201112222220111222222011122222201112222220111222222011122222222222222220111222222011122222201112222220111222222011122222201112222220111222222011122222r�r�s     r�test_ruz#PluralFormsInternalTestCase.test_ru�s[��
�
�
���L�L�k�l���G�G��s��5��A�c�!�A�$�i��5�6��
�1�Y�	Z��6r�c
���|j}tjd�}djt	d�D�cgc]}t||����c}�}||d�ycc}w)Nz#(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2r�r���20111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222r�r�s     r�test_csz#PluralFormsInternalTestCase.test_cs�s[��
�
�
���L�L�>�?���G�G��s��5��A�c�!�A�$�i��5�6��
�1�Y�	Z��6r�c
���|j}tjd�}djt	d�D�cgc]}t||����c}�}||d�ycc}w)Nz@n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2r�r���20111222222222222222221112222222111222222211122222221112222222111222222211122222221112222222111222222211122222222222222222111222222211122222221112222222111222222211122222221112222222111222222211122222r�r�s     r�test_plz#PluralFormsInternalTestCase.test_pls[��
�
�
���L�L�[�\���G�G��s��5��A�c�!�A�$�i��5�6��
�1�Y�	Z��6r�c
���|j}tjd�}djt	d�D�cgc]}t||����c}�}||d�ycc}w)Nz:n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3r�r���30122333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333012233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333r�r�s     r�test_slz#PluralFormsInternalTestCase.test_sls[��
�
�
���L�L�U�V���G�G��s��5��A�c�!�A�$�i��5�6��
�1�Y�	Z��6r�c
���|j}tjd�}djt	d�D�cgc]}t||����c}�}||d�ycc}w)NzNn==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5r�r���01233333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444445553333333344444444444444444444444444444444444444444444444444444444444444444444444444444444444444444r�r�s     r�test_arz#PluralFormsInternalTestCase.test_ars[��
�
�
���L�L�i�j���G�G��s��5��A�c�!�A�$�i��5�6��
�1�Y�	Z��6r�c�<�|j}|ttjd�|ttjd�|ttjd�|ttjddzdz�|j	tjd�d�d	�|ttjd
�|ttjddzdzddzz�|j	tjd
�d�d�y)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��z�7�<�<�)<�=��z�7�<�<�)A�B��z�7�<�<��e��c�)9�:����5����n�5�a�8�#�>��z�7�<�<�)@�A��z�7�<�<��U��S��3�u�9�)D�E����<����&;�<�Q�?��Crc�F��tjd��|jdj�fd�t	d�D��d�tjd��|jdj�fd�t	d�D��d�tjd	��|jdj�fd
�t	d�D��d�tjd��|jdj�fd�t	d�D��d
�y)Nzn == n == nr�c3�@�K�|]}t�|�����y�w�N�r���.0r�r�s  �r�	<genexpr>zFPluralFormsInternalTestCase.test_chained_comparison.<locals>.<genexpr>*������ =�H�q��Q�q�T��H�����010z
1 < n == nc3�@�K�|]}t�|�����y�wrrrs  �rrzFPluralFormsInternalTestCase.test_chained_comparison.<locals>.<genexpr>,rr�100z
n == n < 2c3�@�K�|]}t�|�����y�wrrrs  �rrzFPluralFormsInternalTestCase.test_chained_comparison.<locals>.<genexpr>.rrz	0 < n < 2c3�@�K�|]}t�|�����y�wrrrs  �rrzFPluralFormsInternalTestCase.test_chained_comparison.<locals>.<genexpr>0rr�111)r
r�rOr�r��r7r�s @r�test_chained_comparisonz3PluralFormsInternalTestCase.test_chained_comparison's�����L�L��'�������� =�E�!�H� =�=�u�E��L�L��&�������� =�E�!�H� =�=�u�E��L�L��&�������� =�E�!�H� =�=�u�E��L�L��%�������� =�E�!�H� =�=�u�Erc�Z�|jtjd�d�d�y)N�0123r��{�rOr
r�r6s r�test_decimal_numberz/PluralFormsInternalTestCase.test_decimal_number2s#�����-����f�-�a�0�#�6rc��gd�}|D]5}|jt�5tj|�ddd��7y#1swY�BxYw)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		c�\�|jtjd�d�d�|jtjd�d�d�|jtjd�d�d�|jtjd�d�d�y)Nz	n?1?2:3:4rr�r�r�z	n?1:3?4:5r#r6s r�test_nested_condition_operatorz:PluralFormsInternalTestCase.test_nested_condition_operator>s������2����k�2�1�5�q�9����2����k�2�1�5�q�9����2����k�2�1�5�q�9����2����k�2�1�5�q�9rc��tjd�}|j|d�d�|j|d�d�|j|d�d�|j|d�d�|jt|d�y)	Nz2/n*3r��r�rr���i����)r
r�rOrz�ZeroDivisionErrorrs  r�
test_divisionz)PluralFormsInternalTestCase.test_divisionDss���L�L��!������1��q�!�����1��q�!�����1��q�!�����2���#����+�Q��2rc���tjd�}|j|d�d�|j|d�d�|jt�5|j|d�d�ddd�|jt�5|j|d�d�ddd�|jt�5|j|d�d�ddd�|jt|d�|jt|d	�|jt|g�|jt|t��y#1swY��xYw#1swY��xYw#1swY��xYw)
Nr�r�rr�r�g@r��2�2)r
r�rOr�r�rzr��objectrs  r�test_plural_numberz.PluralFormsInternalTestCase.test_plural_numberLs���L�L��"������1��q�!�����1��q�!�
�
�
�0�
1����Q�s�V�Q�'�2�
�
�
�0�
1����Q�s�V�Q�'�2�
�
�
�0�
1����Q�s�V�Q�'�2����)�Q��,����)�Q��-����)�Q��+����)�Q���1�2�
1��
1�
1��
1�
1�s$�E
�E�E%�
E�E"�%E.N)r9r:r;r�r�r�r�r�r�r�r�r�r�r�rrr
rr$r+r-r2r7rrrr�r��su��Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�D� 	F�7�#�:�3�
2rr�c��eZdZd�Zd�Zy)�GNUTranslationParsingTestc��ttd�5}|jtjt
��ddd�ttd�5}t
j|�}ddd�y#1swY�8xYw#1swYyxYw)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_��
�&�$�
�2��H�H�V�'�'�(?�@�A� �
�&�$�
�2��'�'��+�A� �
� �
��
�
�s�)A1�A=�1A:�=Bc�X�ttd�5}|jtjt
��ddd�ttd�5}t
j|�}|j|j�dd�ddd�y#1swY�[xYw#1swYyxYw)zuChecks that comments like:

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

        are ignored.
        rNrgzplural-formsznplurals=2; plural=(n != 1);)
rr r!r"r#r;r
rjrO�infor�s   r�*test_ignore_comments_in_headers_issue36239zDGNUTranslationParsingTest.test_ignore_comments_in_headers_issue36239ds}���&�$�
�2��H�H�V�'�'�(?�@�A� �
�&�$�
�2��'�'��+�A����Q�V�V�X�n�5�7U�V� �
� �
��
�
�s�)B�9B �B� B)N)r9r:r;r<r?rrrr9r9\s
��,�Wrr9c�$�eZdZd�Zd�Zd�Zd�Zy)�UnicodeTranslationsTestc��tj|�ttd�5}t	j
|�|_ddd�|jj|_|jj|_y#1swY�@xYwr�)	rr8rr)r
rjrmrPr@r�s  rr8zUnicodeTranslationsTest.setUpssZ�����d�#�
�'�4�
 �B��,�,�R�0�D�F�!��������������
�!�
 ���B�B	c�N�|j|jd�t�y)Nr�)�assertIsInstancerPr�r6s r�test_unicode_msgidz*UnicodeTranslationsTest.test_unicode_msgidzs�����d�f�f�R�j�#�.rc�F�|j|jd�d�y)N�abÞu¤yzrNr6s r�test_unicode_msgstrz+UnicodeTranslationsTest.test_unicode_msgstr}s���������)�8�4rc��|jdd�}|jt|t��|j	|d�y)NumycontextÞrHu¤yz (context version))r@�
assertTrue�
isinstancer�rOr�s  r�test_unicode_context_msgstrz3UnicodeTranslationsTest.test_unicode_context_msgstr�s6���M�M�/�8�4�����
�1�c�*�+�����6�7rN)r9r:r;r8rFrIrMrrrrArArs��(�/�5�8rrAc�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�UnicodeTranslationsPluralTestc��tj|�ttd�5}t	j
|�|_ddd�|jj|_|jj|_y#1swY�@xYwr�)	rr8rr r
rjrmrhr�r�s  rr8z#UnicodeTranslationsPluralTest.setUp�s\�����d�#�
�&�$�
�2��,�,�R�0�D�F� �������
����)�)��� �
�rCc	��|j}|t|jddd�t��|t|jddd�t��y�Nr�r�r�)rKrLrhr��r7�unlesss  rrFz0UnicodeTranslationsPluralTest.test_unicode_msgid�sC�������z�$�-�-��B��2�C�8�9��z�$�-�-��B��2�C�8�9rc
��|j}|t|jdddd�t��|t|jdddd�t��yrR)rKrLr�r�rSs  r�test_unicode_context_msgidz8UnicodeTranslationsPluralTest.test_unicode_context_msgid�sG�������z�$�.�.��R��Q�7��=�>��z�$�.�.��R��Q�7��=�>rc�(�|j}|j}|jddd�}|t|t��||d�|t|t��|jddd�}|t|t��||d�y)Nr�r�r�r��r�)rOrKrhrLr��r7rRrTrms    rrIz1UnicodeTranslationsPluralTest.test_unicode_msgstr�s���
�
�
�������M�M�,�.B�A�F���z�!�S�!�"�
�1����z�!�S�!�"��M�M�,�.B�A�F���z�!�S�!�"�
�1�� rc��|j}|j}|jdddd�}|t|t��||d�|jdddd�}|t|t��||d�y)Nr�r�r�r�r�rXr�)rOrKr�rLr�rYs    r� test_unicode_msgstr_with_contextz>UnicodeTranslationsPluralTest.test_unicode_msgstr_with_context�s|��
�
�
�������N�N�>�-�/C�Q�
H���z�!�S�!�"�
�1�(�)��N�N�>�-�/C�Q�
H���z�!�S�!�"�
�1�)�*rN)r9r:r;r8rFrVrIr[rrrrOrO�s��*�:�
?�
	!�
+rrOc��eZdZd�Zd�Zy)�WeirdMetadataTestc���tj|�ttd�5}	t	j
|�|_	ddd�y#|j��xYw#1swYyxYwr�)rr8rr+r
rjrm�tearDownr�s  rr8zWeirdMetadataTest.setUp�sW�����d�#�
�'�4�
 �B�
� �0�0��4���!�
 ��
��
�
����!�
 �s�A"�A�A�A"�"A+c��|jj�}|jt|�d�|j|dd�y)Nr�zlast-translatorz=John Doe <jdoe@example.com>
Jane Foobar <jfoobar@example.com>)rmr>rO�len)r7r>s  r�test_weird_metadataz%WeirdMetadataTest.test_weird_metadata�s?���v�v�{�{�}������T��A�&�����/�0�K�	MrN)r9r:r;r8rbrrrr]r]�s
���Mrr]c��eZdZd�Zy)�DummyGNUTranslationsc��y)N�foorr6s rrfzDummyGNUTranslations.foo�s��rN)r9r:r;rfrrrrdrd�s��rrdc��eZdZd�Zy)�GettextCacheTestCasec���tj|_t|_|jt
tj�d�tjd|j�}|jt
tj�d�tjd|jt��}|jt
tj�d�|j|jt�tjd|jt��}|jt
tj�d�|j|jt�y)Nrr
r�)�class_r�)rrCrDr rErOrar
r�translationrd�	__class__r�s  r�
test_cachezGettextCacheTestCase.test_cache�s���������������W�2�2�3�Q�7����	�4�>�>�:������W�2�2�3�Q�7����	�4�>�>�';�
=��	
����W�2�2�3�Q�7�������&:�;�
���	�4�>�>�';�
=��	
����W�2�2�3�Q�7�������&:�;rN)r9r:r;rmrrrrhrh�s��<rrhc��eZdZd�Zy)�MiscTestCasec�@�tj|tddh��y)Nr��ENOENT)�not_exported)r�check__all__r
r6s r�test__all__zMiscTestCase.test__all__�s�����T�7�+1�8�*<�	>rN)r9r:r;rtrrrroro�s��>rro�__main__),rr"r
�unittest�	functoolsr�testr�test.supportrr$r&r(r*r,rr�rr r%r'r)r+r�TestCaserr;r>rpr�r�r�r�r�r9rArOr]rjrdrhror9�mainrrr�<module>r|s���	�
�����"���8!��0!��*��	��
�G�G�L�L��}�-�	�	�����i��	.���7�7�<�<�	�3Q�R���7�7�<�<�	�3Q�R��
�'�'�,�,�y�-�
0��
�'�'�,�,�y�-�
0��"�'�h�'�'�'�0��L��L�^U%��U%�p96�96�x
+�)9�?�
+� �3C�_� �8 �.>�� �:T2�T2�nW��W�,8�o�8�('+�O�'+�TM��M�"�7�2�2��
<�?�<�4>�8�$�$�>��z���H�M�M�O�G�X�8
�&r

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