Your IP : 216.73.216.196


Current Path : /opt/alt/python312/lib64/python3.12/test/__pycache__/
Upload File :
Current File : //opt/alt/python312/lib64/python3.12/test/__pycache__/test_gettext.cpython-312.opt-2.pyc

�

�#�jէ���ddlZddlZddlZddlZddlZddlmZddlmZddl	m
Z
dZejd�Z
dZdZejegd	���Zd
ZdZej(j+dd
�Zej(j+ed�Zej(j+ed�Zej(j+ed�Zej(j+ed�Zej(j+ed�Zej(j+ed�Zej(j+ed�Zd�ZGd�dej>�Z dZ!Gd�de �Z"Gd�de �Z#Gd�d�Z$Gd�d e$e �Z%Gd!�d"e$e �Z&Gd#�d$e$e �Z'Gd%�d&ej>�Z(Gd'�d(e �Z)Gd)�d*e �Z*Gd+�d,e �Z+Gd-�d.e �Z,Gd/�d0ejZ�Z.Gd1�d2e �Z/Gd3�d4ej>�Z0Gd5�d6ej>�Z1Gd7�d8ej>�Z2e3d9k(rejh�			y):�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
sABCDs3hIElQAABQAGAAAAHAAAAEwAAAALAAAAfAAAAAAAAACoAAAAFQAAAKkAAAAjAAAAvwAAAKEAAADj
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==
)4�����rrrr�rrr�rrr�$rrrrrrr�,rrr�rrrr
rrrrrrr�rrr�f�orr�b�a�rrs3hIElQAAAAADAAAAHAAAADQAAAAAAAAAAAAAAAAAAABMAAAABAAAAE0AAAAQAAAAUgAAAA8BAABj
AAAABAAAAHMBAAAWAAAAeAEAAABhYsOeAG15Y29udGV4dMOeBGFiw54AUHJvamVjdC1JZC1WZXJz
aW9uOiAyLjAKUE8tUmV2aXNpb24tRGF0ZTogMjAwMy0wNC0xMSAxMjo0Mi0wNDAwCkxhc3QtVHJh
bnNsYXRvcjogQmFycnkgQS4gV0Fyc2F3IDxiYXJyeUBweXRob24ub3JnPgpMYW5ndWFnZS1UZWFt
OiBYWCA8cHl0aG9uLWRldkBweXRob24ub3JnPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5
cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzog
N2JpdApHZW5lcmF0ZWQtQnk6IG1hbnVhbGx5CgDCpHl6AMKkeXogKGNvbnRleHQgdmVyc2lvbikA
sL3hIElQAAAAABAAAAHAAAACQAAAADAAAALAAAAAAAAAA4AAAAeAEAADkAAAABAAAAAAAAAAAAAAAA
UHJvamVjdC1JZC1WZXJzaW9uOiBObyBQcm9qZWN0IDAuMApQT1QtQ3JlYXRpb24tRGF0ZTogV2Vk
IERlYyAxMSAwNzo0NDoxNSAyMDAyClBPLVJldmlzaW9uLURhdGU6IDIwMDItMDgtMTQgMDE6MTg6
NTgrMDA6MDAKTGFzdC1UcmFuc2xhdG9yOiBKb2huIERvZSA8amRvZUBleGFtcGxlLmNvbT4KSmFu
ZSBGb29iYXIgPGpmb29iYXJAZXhhbXBsZS5jb20+Ckxhbmd1YWdlLVRlYW06IHh4IDx4eEBleGFt
cGxlLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy
c2V0PWlzby04ODU5LTE1CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFi
bGUKR2VuZXJhdGVkLUJ5OiBweWdldHRleHQucHkgMS4zCgA=
�xx�LC_MESSAGESz
gettext.mozgettext_bad_magic_number.mozgettext_bad_major_version.mozgettext_bad_minor_version.mozgettext_corrupt.mozugettext.mozmetadata.moc��tjj�dt_tjj�y)N�messages)�gettext�_localedirs�clear�_current_domain�
_translations���8/opt/alt/python312/lib64/python3.12/test/test_gettext.py�
reset_gettextr!�s.��������(�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�tt.d�5}|jtjt0��ddd�tt2d�5}|jtjt4��ddd�y#1swY���xYw#1swY��]xYw#1swY��)xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swYyxYw)Nr�wb)�addClassCleanupr�rmtree�os�path�split�	LOCALEDIR�isdir�makedirs�open�MOFILE�write�base64�decodebytes�GNU_MO_DATA�MOFILE_BAD_MAGIC_NUMBER�GNU_MO_DATA_BAD_MAGIC_NUMBER�MOFILE_BAD_MAJOR_VERSION�GNU_MO_DATA_BAD_MAJOR_VERSION�MOFILE_BAD_MINOR_VERSION�GNU_MO_DATA_BAD_MINOR_VERSION�MOFILE_CORRUPT�GNU_MO_DATA_CORRUPT�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� �
�)�4�
0�B��H�H�V�'�'�(D�E�F�1�
�*�D�
1�R��H�H�V�'�'�(E�F�G�2�
�*�D�
1�R��H�H�V�'�'�(E�F�G�2�
�.�$�
'�2��H�H�V�'�'�(;�<�=�(�
�'�4�
 �B��H�H�V�'�'��1�2�!�
�'�4�
 �B��H�H�V�'�'��1�2�!�
 � �
��
0�
0��
1�
1��
1�
1��
'�
'��
 �
 ��
 �
 �sT�)I	�)I�)I#�)I0�)I<�)J�)J�	I�I �#I-�0I9�<J�J�Jc��|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__�classmethodrBrKrrr r#r#�s���3��3�&'rr#s�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)	r#rKr(�curdir�	localedirr/�mofiler�installrIs r rKzGettextTestCase1.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�_�rJ�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 contextr_�wink wink (in "my context")�my other context�!wink wink (in "my other context"))rbrSrds  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�yr[rards  r �test_double_quotesz#GettextTestCase1.test_double_quotes�rgrc��|j}|td�d�|td�d�|td�d�|td�d�yr[rards  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�yr[rards  r �test_triple_double_quotesz*GettextTestCase1.test_triple_double_quotes�rsrc�@�|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.rards  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�rbr_r`r]r^rr�ngettextrT)rb�assertNotEqualr.rXr�GNUTranslationsrYrc�builtinsr{rS)rJre�neqrA�tr~s      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)rLrMrNrKrfrnrprrrurxr�rrr rQrQ�s+��G�+�0�+�/�/�%�rrQc�`�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zy)�GettextTestCase2c���tj|�tj|_tjd|j�tjd�t
j
|_y�Nr)	r#rKr(rVrWr�bindtextdomain�
textdomainrcrIs r rKzGettextTestCase2.setUpsH�����d�#���������y�$�.�.�9����9�%�����rc�b�|jtjd�|j�yr�)rbrr�rWrIs r �test_bindtextdomainz$GettextTestCase2.test_bindtextdomains!������/�/�	�:�D�N�N�Krc�L�|jtj�d�yr�)rbrr�rIs r �test_textdomainz GettextTestCase2.test_textdomains������+�+�-�y�9rc��ttd�5}|jt�5}t	j
|�ddd�j}|j|jd�|j|jd�|j|jt�ddd�y#1swY�vxYw#1swYyxYw)NrzrzBad magic number)r.r4�assertRaises�OSErrorrr}�	exceptionrb�errno�strerror�filename�rJrA�cmr�s    r �test_bad_magic_numberz&GettextTestCase2.test_bad_magic_numbers���
�)�4�
0�B��"�"�7�+�r��'�'��+�,����I����Y�_�_�a�0����Y�/�/�1C�D����Y�/�/�1H�I�1�
0�+�+��1�
0��"�B>�B2�A,B>�2B;	�7B>�>Cc��ttd�5}|jt�5}t	j
|�ddd�j}|j|jd�|j|jd�|j|jt�ddd�y#1swY�vxYw#1swYyxYw)NrzrzBad version number 5)r.r6r�r�rr}r�rbr�r�r�r�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�r�c�x�ttd�5}tj|�ddd�y#1swYyxYw�Nrz)r.r8rr}�rJrAs  r �test_bad_minor_versionz'GettextTestCase2.test_bad_minor_version3s)��
�*�D�
1�R��#�#�B�'�2�
1�
1�s�0�9c��ttd�5}|jt�5}t	j
|�ddd�j}|j|jd�|j|jd�|j|jt�ddd�y#1swY�vxYw#1swYyxYw)NrzrzFile is corrupt)r.r:r�r�rr}r�rbr�r�r�r�s    r �test_corrupt_filez"GettextTestCase2.test_corrupt_file8s���
�.�$�
'�2��"�"�7�+�r��'�'��+�,����I����Y�_�_�a�0����Y�/�/�1B�C����Y�/�/��@�(�
'�+�+��(�
'�r�c���|j}||jd�d�||jd�d�||jd�d�||jd�d�yr[rards  r rfz'GettextTestCase2.test_some_translationsB�[��
�
�
��
�4�6�6�+���,�
�4�6�6�)��g�&�
�4�6�6�*�+�-E�F�
�4�6�6�.�!�;�/rc��|j}|tjdd�d�|tjdd�d�yri)rbrrSrds  r rnz4GettextTestCase2.test_some_translations_with_contextJsB��
�
�
��
�7���L�-�8�(�	*�
�7���.�
�>�.�	0rc��|j}|tjddd�d�|tjddd�d�y)Nrrjr_rkrlrm)rbr�	dpgettextrds  r �.test_some_translations_with_context_and_domainz?GettextTestCase2.test_some_translations_with_context_and_domainQsF��
�
�
��
�7���Y��m�D�(�	*�
�7���Y�(:�M�J�.�	0rc���|j}||jd�d�||jd�d�||jd�d�||jd�d�yr[rards  r rpz#GettextTestCase2.test_double_quotesXr�rc���|j}||jd�d�||jd�d�||jd�d�||jd�d�yr[rards  r rrz*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�yr[rards  r ruz*GettextTestCase2.test_triple_double_quoteshr�rc�L�|j}||jd�d�yrwrards  r rxz'GettextTestCase2.test_multiline_stringsps*��
�
�
��
�4�6�6�$�%�$�	%rN)rLrMrNrKr�r�r�r�r�r�rfrnr�rprrrurxrrr r�r�sL��!�L�:�J�K�(�
A�0�0�0�0�4�4�%rr�c�(�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)Nr
��	��?r皙�����?)rb�_test_plural_forms�__code__�co_firstlineno�assertWarns�DeprecationWarningr��__file__�linenor��	TypeError)rJr{r�singular�plural�	tsingular�tplural�numbers_only�xr�r�s           r r�z#PluralFormsTests._test_plural_forms}s���
�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�r{rrIs r �test_plural_formsz"PluralFormsTests.test_plural_forms�sR������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�	npgettextrSr�)rJr{rs   r �test_plural_context_formsz*PluralFormsTests.test_plural_context_forms�sc���4�>�>�>�:���$�-�-��8������g�� 4�&�(C�	E�	
����g��1��1�	3rc��|jt|jd�t|jd�dddd�y)NzUnknown contextr�r�)r�rr�rSrIs r �test_plural_wrong_context_formsz0PluralFormsTests.test_plural_wrong_context_forms�s:������D�N�N�$5�6��D�M�M�#4�5�� 4�� 4�		6rN)T)rLrMrNr�r�r�r�rrr r�r�{s��)-�)�83�
3�6rr�c��eZdZd�Zy)�"GNUTranslationsPluralFormsTestCasec�H�tj|�tjdtj
�tjd�tj|_tj|_tj|_tj|_	yr�)
r#rKrr�r(rVr�r{rSr�rIs r rKz(GNUTranslationsPluralFormsTestCase.setUp�sd�����d�#����y�"�)�)�4����9�%�������(�(��
��(�(��
� �*�*��rN)rLrMrNrKrrr r�r��s��	+rr�c��eZdZd�Zd�Zd�Zy)�,GNUTranslationsWithDomainPluralFormsTestCasec�n�tj|�tjdtj
�t
tjd�|_t
tjd�|_	t
tjd�|_t
tjd�|_
yr�)r#rKrr�r(rVr�dgettext�	dngettextr{r�rS�
dnpgettextr�rIs r rKz2GNUTranslationsWithDomainPluralFormsTestCase.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�rrr�r�rIs 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�rrr�r�rIs r �&test_plural_context_forms_wrong_domainzSGNUTranslationsWithDomainPluralFormsTestCase.test_plural_context_forms_wrong_domain�sH������G�&�&�	�>�B��G�%�%�y�.�A�� 4�� 4��	 �	 rN)rLrMrNrKr�r�rrr r�r��s��@� � rr�c��eZdZd�Zd�Zd�Zy)�'GNUTranslationsClassPluralFormsTestCasec�*�tj|�ttd�5}t	j
|�}ddd�j|_|j|_|j|_|j|_y#1swY�NxYwr�)	r#rKr.r/rr}r{rSr��rJrAr�s   r rKz-GNUTranslationsClassPluralFormsTestCase.setUp�sh�����d�#�
�&�$�
�2��'�'��+�A� ��y�y����
�
��
��
�
��
������
 �
�s�B	�	Bc	��tj�}|j|j|jddddd��y)Nr�r�Fr�)r�NullTranslationsr�r{�rJr�s  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�)rr�r�rr�rSr�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)rLrMrNrKr�r�rrr r�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�Zd�Zy)�PluralFormsInternalTestCasec
���|j}tjd�}djt	d�D�cgc]}t||����c}�}||d�ycc}w)N�0�����00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000�rbr�c2py�join�range�str�rJre�fr��ss     r �test_jaz#PluralFormsInternalTestCase.test_jasZ��
�
�
���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_desZ��
�
�
���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_lvs[��
�
�
���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_gds[��
�
�
���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�rr�r�s     r �test_gd2z$PluralFormsInternalTestCase.test_gd2s[��
�
�
���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_ru1s[��
�
�
���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_cs7s[��
�
�
���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_pl=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%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3r�r���30122333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333012233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333r�r�s     r �test_slz#PluralFormsInternalTestCase.test_slCs[��
�
�
���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_arIs[��
�
�
���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)))))))))))))))))))))r��
ValueErrorrr�rb)rJ�raisess  r �
test_securityz)PluralFormsInternalTestCase.test_securityOs����"�"���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>b������ =�H�q��Q�q�T��H���r�010z
1 < n == nc3�@�K�|]}t�|�����y�wr'r(r)s  �r r+zFPluralFormsInternalTestCase.test_chained_comparison.<locals>.<genexpr>dr,r-�100z
n == n < 2c3�@�K�|]}t�|�����y�wr'r(r)s  �r r+zFPluralFormsInternalTestCase.test_chained_comparison.<locals>.<genexpr>fr,r-z	0 < n < 2c3�@�K�|]}t�|�����y�wr'r(r)s  �r r+zFPluralFormsInternalTestCase.test_chained_comparison.<locals>.<genexpr>hr,r-�111)rr�rbr�r��rJr�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
�{�rbrr�rIs r �test_decimal_numberz/PluralFormsInternalTestCase.test_decimal_numberjs#�����-����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 nzn ? 1 2)r�r"rr�)rJ�invalid_expressions�exprs   r �test_invalid_syntaxz/PluralFormsInternalTestCase.test_invalid_syntaxms?��
��(�D��"�"�:�.����T�"�/�.�(�.�.�s�A�A		c��tjd�}|j|d�d�|j|d�d�|j|d�d�y)Nz!!!nrr
r�)rr�rbr4s  r �
test_negationz)PluralFormsInternalTestCase.test_negationvsL���L�L�� ������1��q�!�����1��q�!�����1��q�!rc�\�|jtjd�d�d�|jtjd�d�d�|jtjd�d�d�|jtjd�d�d�y)Nz	n?1?2:3:4rrr
r�z	n?1:3?4:5r9rIs 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����)rr�rbr��ZeroDivisionErrorr4s  r �
test_divisionz)PluralFormsInternalTestCase.test_division�ss���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)rr�rbr�r�r�r��objectr4s  r �test_plural_numberz.PluralFormsInternalTestCase.test_plural_number�s���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)rLrMrNr�r�r�rrrr
r
rrrrrr$r5r:rArCrErJrOrrr r�r��sz��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)Nr%rz)r.r/r0r1r2�GNU_MO_DATA_ISSUE_17898rr}r�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�Z�	ttd�5}|jtjt
��ddd�ttd�5}t
j|�}|j|j�dd�ddd�y#1swY�[xYw#1swYyxYw)Nr%rzzplural-formsznplurals=2; plural=(n != 1);)
r.r/r0r1r2rSrr}rb�infor�s   r �*test_ignore_comments_in_headers_issue36239zDGNUTranslationParsingTest.test_ignore_comments_in_headers_issue36239�s���	��&�$�
�2��H�H�V�'�'�(?�@�A� �
�&�$�
�2��'�'��+�A����Q�V�V�X�n�5�7U�V� �
� �
��
�
�s�)B�9B!�B�!B*N)rLrMrNrTrWrrr rQrQ�s
��,�WrrQc�$�eZdZd�Zd�Zd�Zd�Zy)�UnicodeTranslationsTestc��tj|�ttd�5}t	j
|�|_ddd�|jj|_|jj|_y#1swY�@xYwr�)	r#rKr.r<rr}r�rcrSr�s  r rKzUnicodeTranslationsTest.setUp�sZ�����d�#�
�'�4�
 �B��,�,�R�0�D�F�!��������������
�!�
 ���B�B	c�N�|j|jd�t�y)Nr�)�assertIsInstancercr�rIs r �test_unicode_msgidz*UnicodeTranslationsTest.test_unicode_msgid�s�����d�f�f�R�j�#�.rc�F�|j|jd�d�y)N�abÞu¤yzrarIs r �test_unicode_msgstrz+UnicodeTranslationsTest.test_unicode_msgstr�s���������)�8�4rc��|jdd�}|jt|t��|j	|d�y)NumycontextÞr`u¤yz (context version))rS�
assertTrue�
isinstancer�rbr�s  r �test_unicode_context_msgstrz3UnicodeTranslationsTest.test_unicode_context_msgstr�s6���M�M�/�8�4�����
�1�c�*�+�����6�7rN)rLrMrNrKr^rarerrr rYrY�s��(�/�5�8rrYc�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�UnicodeTranslationsPluralTestc��tj|�ttd�5}t	j
|�|_ddd�|jj|_|jj|_y#1swY�@xYwr�)	r#rKr.r/rr}r�r{r�r�s  r rKz#UnicodeTranslationsPluralTest.setUp�s\�����d�#�
�&�$�
�2��,�,�R�0�D�F� �������
����)�)��� �
�r[c	��|j}|t|jddd�t��|t|jddd�t��y�Nr�r
r�)rcrdr{r��rJ�unlesss  r r^z0UnicodeTranslationsPluralTest.test_unicode_msgid�sC�������z�$�-�-��B��2�C�8�9��z�$�-�-��B��2�C�8�9rc
��|j}|t|jdddd�t��|t|jdddd�t��yrj)rcrdr�r�rks  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�)rbrcr{rdr��rJrerlr�s    r raz1UnicodeTranslationsPluralTest.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�rpr�)rbrcr�rdr�rqs    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)rLrMrNrKr^rnrarsrrr rgrg�s��*�:�
?�
	!�
+rrgc��eZdZd�Zd�Zy)�WeirdMetadataTestc���tj|�ttd�5}	t	j
|�|_	ddd�y#|j��xYw#1swYyxYwr�)r#rKr.r>rr}r��tearDownr�s  r rKzWeirdMetadataTest.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>)r�rVrb�len)rJrVs  r �test_weird_metadataz%WeirdMetadataTest.test_weird_metadata�s?���v�v�{�{�}������T��A�&�����/�0�K�	MrN)rLrMrNrKrzrrr ruru�s
���Mrruc��eZdZd�Zy)�DummyGNUTranslationsc��y)N�foorrIs r r~zDummyGNUTranslations.foos��rN)rLrMrNr~rrr r|r|�s��rr|c��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)Nrrr
)�class_r�)r(rVrWr/rXrbryrr�translationr|�	__class__r�s  r �
test_cachezGettextCacheTestCase.test_caches���������������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)rLrMrNr�rrr r�r�s��<rr�c��eZdZd�Zy)�ExpandLangTestCasec	�l�dgddgddgddggd�gd�gd�gd�d	�}|j�D]o\}}|j|�
�5tjj	d|��5|jt
j|�|�ddd�ddd��qy#1swY�xYw#1swY��xYw)
N�cs�cs_CZ�cs.ISO8859-2�cs@euro)�cs_CZ.ISO8859-2r�r�r�)�
cs_CZ@euror�r�r�)�cs.ISO8859-2@euror�r�r�)�cs_CZ.ISO8859-2@euror�r�r�r�r�r�r�)r�r�r�r�r�r�r�r�)�localezlocale.normalize)�return_value)�items�subTest�unittest�mock�patchrbr�_expand_lang)rJ�localesr��expandeds    r �test_expand_langz#ExpandLangTestCase.test_expand_langs����&��t�_�+�T�2�!�4�(� &�B�"8�%;�
��!(�
�
���F�H����V��,��]�]�(�(�);�6<�)�>��$�$�W�%9�%9�&�%A�8�L�>�-�,�!0�>�>��-�,�s$�"B*�%&B�B*�B'�#B*�*B3	N)rLrMrNr�rrr r�r�s��Mrr�c��eZdZd�Zd�Zd�Zd�Zejjd�d��Z
ejjd�d��Zd�Zd	�Z
y
)�FindTestCasec���|jtj��|_|jtj��|_dD]}|jj
|��y)N�rD�LC_ALLr�LANG)rErrFrG�temp_cwd�tempdir�unset)rJ�keys  r rKzFindTestCase.setUp:sS���$�$�Y�%B�%B�%D�E����(�(��);�);�)=�>���@�C��H�H�N�N�3��Arc�t�tjj|jd�}tjj||d�}tj|�tjj|d�}t|d�5}|j
t�ddd�|S#1swY|SxYw)Nr�rz	mofile.mor%)r(r)r�r�r-r.r0r3)rJ�lang�
locale_dir�
mofile_dir�mo_filer�s      r �create_mo_filezFindTestCase.create_mo_fileAs}���W�W�\�\�$�,�,��9�
��W�W�\�\�*�d�M�B�
�
���J���'�'�,�,�z�;�7��
�'�4�
 �A�
�G�G�K� �!���!���s�
B-�-B7c�D�|jd�}dD]�}|jj|d�tjdt
jj|jd���}|j||�|jj|���y)N�ga_IEr�rXr�)rW)r�rG�setr�findr(r)r�r�rbr�)rJr��var�results    r �test_find_with_env_varsz$FindTestCase.test_find_with_env_varsJsx���%�%�g�.��@�C��H�H�L�L��g�&��\�\�(�,.�G�G�L�L����x�,P�R�F����V�W�-��H�H�N�N�3��Arc��|jjdd�|jd�}tjdt
jj|jd�dg��}|j||�y)NrD�pt_BRr�rXr�)rW�	languages)
rGr�r�rr�r(r)r�r�rb�rJr�r�s   r �test_find_with_languagesz%FindTestCase.test_find_with_languagesUsa�������Z��)��%�%�g�.�����h�(*�����T�\�\�8�(L�)0�	�3��	
�����)rzgettext._expand_langc�P�tjd�|jd�y)Nr~�C)rr��assert_called_with�rJ�patch_expand_langs  r �test_find_with_no_langz#FindTestCase.test_find_with_no_lang_s��	���U���,�,�S�1rc��|jjdd�tjd�|j	d�y)NrDr�r~)rGr�rr�r�r�s  r �test_find_with_czFindTestCase.test_find_with_ces0��	
�����Z��%����U���,�,�S�1rc�$�g}dD]"}|j|j|���$tjdtj
j
|jd�ddgd��}|jt|�t|��y)N)r��es_ESrXr�r�r�T�rWr��all)
�appendr�rr�r(r)r�r�rb�sorted)rJ�pathsr�r�s    r �
test_find_allzFindTestCase.test_find_alllss����&�D��L�L��,�,�T�2�3�'����h�(*�����T�\�\�8�(L�)0�'�(:��F��	
���������7rc���|jd�g}tjdtjj|jd�ddgd��}|j||�y)Nr�rXr�Tr�)r�rr�r(r)r�r�rbr�s   r �test_find_deduplicationz$FindTestCase.test_find_deduplicationvsU���&�&�w�/�0�����h�"�'�'�,�,�t�|�|�X�2V�)0�'�(:��F�������)rN)rLrMrNrKr�r�r�r�r�r�r�r�r�r�rrr r�r�8sh�� ��	 �*��]�]���/�0�2�1�2�
�]�]���/�0�2�1�2�8�*rr�c��eZdZd�Zy)�MiscTestCasec�@�tj|tddh��y)Nr��ENOENT)�not_exported)r�check__all__rrIs r �test__all__zMiscTestCase.test__all__s�����T�7�+1�8�*<�	>rN)rLrMrNr�rrr r�r�~s��>rr��__main__)5r(r1rr��
unittest.mock�	functoolsr�testr�test.supportrr3�	b64encoder5r7r9�bytesr;r=r?r)r�r+r/r4r6r8r:r<r>r!�TestCaser#rSrQr�r�r�r�r�r�rQrYrgrur}r|r�r�r�r�rL�mainrrr �<module>r�sd��	�
������"���2 0�v�/�/��8��!��0!��>'�f�&�&�u�.�(��� ��	��
�G�G�L�L��}�-�	�	�����i��	.���'�'�,�,�y�2O�P���7�7�<�<�	�3Q�R���7�7�<�<�	�3Q�R�������i�)=�>��
�'�'�,�,�y�-�
0��
�'�'�,�,�y�-�
0��"�'�h�'�'�'�8��L��L�^i%��i%�X96�96�x
+�)9�?�
+� �3C�_� �8 �.>�� �:Z2�(�"3�"3�Z2�zW��W�,8�o�8�('+�O�'+�TM��M�"�7�2�2��
<�?�<�4M��*�*�M�4C*�8�$�$�C*�L>�8�$�$�>��z���H�M�M�O�G�X�8
�&r