Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_gettext.cpython-311.opt-2.pyc
�

�KeB����ddlZddlZddlZddlZddlmZddlmZdZdZ	dZ
dZdZej
�d	d
��Zej
�ed��Zej
�ed��Zej
�ed
��Zej
�ed��Zej
�ed��ZGd�dej��ZdZGd�de��ZGd�de��ZGd�de��ZGd�de��ZGd�de��ZGd�de��ZGd�d e��ZGd!�d"ej��Z Gd#�d$e��Z!Gd%�d&ej��Z"e#d'krej$��			dS)(�N)�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��eZdZd�ZdS)�GettextBaseTestc�0�|�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��n#1swxYwY|�tj����|_d|jd<t4j���dS)Nr�wbr�LANGUAGE)�
addCleanupr�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�enterContext�EnvironmentVarGuard�env�gettext�
_translations�clear��self�fps  �;/usr/local/apps/python3/lib/python3.11/test/test_gettext.py�setUpzGettextBaseTest.setUpws6�����	�(�"�'�-�-�	�*B�*B�1�*E�F�F�F��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��$�$�Y�%B�%D�%D�E�E���#�������#�#�%�%�%�%�%sZ�-C�C�C�4-D-�-D1�4D1�
-F�F
�
F
�&-G�G#�&G#�?-H8�8H<�?H<N)�__name__�
__module__�__qualname__r,��r+rrvs#������&�&�&�&�&r1rs�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)	rr,r�curdir�	localedirr�mofiler%�install�r)s r+r,zGettextTestCase1.setUp�sG�����d�#�#�#����������	�4�>�*��F�F�F�F�F�Fr1c���|j}|td��d��|td��d��|td��d��|td��d��dS�N�	albatross�mullusk�baconzRaymond Luxury Yach-tzThroatwobbler Mangrove�nudge nudge�	wink wink��assertEqual�_�r)�eqs  r+�test_some_translationsz'GettextTestCase1.test_some_translations��v��
�
��
��1�[�>�>�;�'�'�'�
��1�Y�<�<��!�!�!�
��1�
%�&�&�(@�A�A�A�
��1�^���k�*�*�*�*�*r1c�|�|j}|tdd��d��|tdd��d��dS�N�
my contextrB�wink wink (in "my context")�my other context�!wink wink (in "my other context"))rEr5rGs  r+�#test_some_translations_with_contextz4GettextTestCase1.test_some_translations_with_context�s[��
�
��
��8�L�-�0�0�(�	*�	*�	*�
��8�&�
�6�6�.�	0�	0�	0�	0�	0r1c���|j}|td��d��|td��d��|td��d��|td��d��dSr>rDrGs  r+�test_double_quotesz#GettextTestCase1.test_double_quotes�rJr1c���|j}|td��d��|td��d��|td��d��|td��d��dSr>rDrGs  r+�test_triple_single_quotesz*GettextTestCase1.test_triple_single_quotes��{��
�
��
��1�_���{�+�+�+�
��1�]���W�%�%�%�
��1�
)�*�*�,D�E�E�E�
��1�
� � �+�.�.�.�.�.r1c���|j}|td��d��|td��d��|td��d��|td��d��dSr>rDrGs  r+�test_triple_double_quotesz*GettextTestCase1.test_triple_double_quotes�rVr1c�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.rDrGs  r+�test_multiline_stringsz'GettextTestCase1.test_multiline_strings�s>��
�
��
��1�$�%�%�$�	%�	%�	%�	%�	%r1c�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�rbrBrCr@rArr%�ngettextr6)rE�assertNotEqualrr:r%�GNUTranslationsr;rF�builtinsr^r5)r)rH�neqr*�tras      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)r-r.r/r,rIrQrSrUrXr[rdr0r1r+r3r3�s�������G�G�G�+�+�+�0�0�0�+�+�+�/�/�/�/�/�/�%�%�%�����r1r3c�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%)	rr,rr8r9r%�bindtextdomain�
textdomainrFr<s r+r,zGettextTestCase2.setUp�sR�����d�#�#�#�������y�$�.�9�9�9���9�%�%�%������r1c�`�|�tjd��|j��dSrh)rEr%rir9r<s r+�test_bindtextdomainz$GettextTestCase2.test_bindtextdomain�s+������/�	�:�:�D�N�K�K�K�K�Kr1c�T�|�tj��d��dSrh)rEr%rjr<s r+�test_textdomainz GettextTestCase2.test_textdomain�s'������+�-�-�y�9�9�9�9�9r1c��ttd��5}|�t��5}t	j|��ddd��n#1swxYwY|j}|�|jd��|�|j	d��|�|j
t��ddd��dS#1swxYwYdS)Nr]rzBad version number 5)rr�assertRaises�OSErrorr%r`�	exceptionrE�errno�strerror�filename)r)r*�cmrrs    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�Nr])rrr%r`r(s  r+�test_bad_minor_versionz'GettextTestCase2.test_bad_minor_version�s���
�*�D�
1�
1�	(�R��#�B�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	(�	(s�8�<�<c��|j}||�d��d��||�d��d��||�d��d��||�d��d��dSr>rDrGs  r+rIz'GettextTestCase2.test_some_translations����
�
��
��4�6�6�+����,�,�,�
��4�6�6�)���g�&�&�&�
��4�6�6�*�+�+�-E�F�F�F�
��4�6�6�.�!�!�;�/�/�/�/�/r1c��|j}|tjdd��d��|tjdd��d��dSrL)rEr%r5rGs  r+rQz4GettextTestCase2.test_some_translations_with_contextsa��
�
��
��7��L�-�8�8�(�	*�	*�	*�
��7��.�
�>�>�.�	0�	0�	0�	0�	0r1c��|j}|tjddd��d��|tjddd��d��dS)Nr%rMrBrNrOrP)rEr%�	dpgettextrGs  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�	0r1c��|j}||�d��d��||�d��d��||�d��d��||�d��d��dSr>rDrGs  r+rSz#GettextTestCase2.test_double_quotesr|r1c��|j}||�d��d��||�d��d��||�d��d��||�d��d��dSr>rDrGs  r+rUz*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�3r1c��|j}||�d��d��||�d��d��||�d��d��||�d��d��dSr>rDrGs  r+rXz*GettextTestCase2.test_triple_double_quotes%r�r1c�R�|j}||�d��d��dSrZrDrGs  r+r[z'GettextTestCase2.test_multiline_strings-sB��
�
��
��4�6�6�$�%�%�$�	%�	%�	%�	%�	%r1N)r-r.r/r,rlrnrwrzrIrQr�rSrUrXr[r0r1r+rfrf�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�%�%�%�%�%r1rfc��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�Zd�Zd�Zd�Zd�ZdS)�PluralFormsTestCasec�R�t�|��t|_dS�N)rr,rr:r<s r+r,zPluralFormsTestCase.setUp9s!�����d�#�#�#�����r1c��|j}tjddd��}||d��tjddd��}||d��dS)N�There is %s file�There are %s files��Hay %s fichero��Hay %s ficheros)rEr%r^�r)rH�xs   r+�test_plural_forms1z&PluralFormsTestCase.test_plural_forms1=sb��
�
����/�1E�q�I�I��
��1�������/�1E�q�I�I��
��1�� � � � � r1c��|j}tjdddd��}||d��tjdddd��}||d��dS)N�With contextr�r�r��Hay %s fichero (context)r��Hay %s ficheros (context))rEr%�	npgettextr�s   r+�test_plural_context_forms1z.PluralFormsTestCase.test_plural_context_forms1Dsr��
�
����n�0�2F��
K�
K��
��1�(�)�)�)���n�0�2F��
K�
K��
��1�)�*�*�*�*�*r1c�"�|j}t|jd��5}tj|��}ddd��n#1swxYwY|�ddd��}||d��|�ddd��}||d��dS)Nr]r�r�r�r�r�r�)rErr:r%r`r^�r)rHr*rcr�s     r+�test_plural_forms2z&PluralFormsTestCase.test_plural_forms2Ms���
�
��
�$�+�t�
$�
$�	,���'��+�+�A�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�
�J�J�)�+?��C�C��
��1�����
�J�J�)�+?��C�C��
��1�� � � � � ��>�A�Ac�&�|j}t|jd��5}tj|��}ddd��n#1swxYwY|�dddd��}||d��|�dddd��}||d��dS)	Nr]r�r�r�r�r�r�r�)rErr:r%r`r�r�s     r+�test_plural_context_forms2z.PluralFormsTestCase.test_plural_context_forms2Vs���
�
��
�$�+�t�
$�
$�	,���'��+�+�A�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�
�K�K��*�,@�!�
E�
E��
��1�(�)�)�)�
�K�K��*�,@�!�
E�
E��
��1�)�*�*�*�*�*r�c���|j}tjd���d��fd�t	d��D����}||d��dS)N�0�c�@��g|]}t�|������Sr0��str��.0r��fs  �r+�
<listcomp>z/PluralFormsTestCase.test_ja.<locals>.<listcomp>f�'���5�5�5�A�c�!�!�A�$�$�i�i�5�5�5r1����00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000�rEr%�c2py�join�range�r)rH�sr�s   @r+�test_jazPluralFormsTestCase.test_jacsq���
�
���L������G�G�5�5�5�5��s���5�5�5�6�6��
��1�Y�	Z�	Z�	Z�	Z�	Zr1c���|j}tjd���d��fd�t	d��D����}||d��dS)N�n != 1r�c�@��g|]}t�|������Sr0r�r�s  �r+r�z/PluralFormsTestCase.test_de.<locals>.<listcomp>lr�r1r���10111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111r�r�s   @r+�test_dezPluralFormsTestCase.test_deisq���
�
���L��"�"���G�G�5�5�5�5��s���5�5�5�6�6��
��1�Y�	Z�	Z�	Z�	Z�	Zr1c���|j}tjd���d��fd�t	d��D����}||d��dS)Nzn>1r�c�@��g|]}t�|������Sr0r�r�s  �r+r�z/PluralFormsTestCase.test_fr.<locals>.<listcomp>rr�r1r���00111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111r�r�s   @r+�test_frzPluralFormsTestCase.test_frosq���
�
���L������G�G�5�5�5�5��s���5�5�5�6�6��
��1�Y�	Z�	Z�	Z�	Z�	Zr1c���|j}tjd���d��fd�t	d��D����}||d��dS)Nz)n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2r�c�@��g|]}t�|������Sr0r�r�s  �r+r�z/PluralFormsTestCase.test_lv.<locals>.<listcomp>xr�r1r���20111111111111111111101111111110111111111011111111101111111110111111111011111111101111111110111111111011111111111111111110111111111011111111101111111110111111111011111111101111111110111111111011111111r�r�s   @r+�test_lvzPluralFormsTestCase.test_lvusr���
�
���L�D�E�E���G�G�5�5�5�5��s���5�5�5�6�6��
��1�Y�	Z�	Z�	Z�	Z�	Zr1c���|j}tjd���d��fd�t	d��D����}||d��dS)Nzn==1 ? 0 : n==2 ? 1 : 2r�c�@��g|]}t�|������Sr0r�r�s  �r+r�z/PluralFormsTestCase.test_gd.<locals>.<listcomp>~r�r1r���20122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222r�r�s   @r+�test_gdzPluralFormsTestCase.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�	Zr1c���|j}tjd���d��fd�t	d��D����}||d��dS)Nzn==1 ? 0 : (n==2 ? 1 : 2)r�c�@��g|]}t�|������Sr0r�r�s  �r+r�z0PluralFormsTestCase.test_gd2.<locals>.<listcomp>�r�r1r�r�r�r�s   @r+�test_gd2zPluralFormsTestCase.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�	Zr1c���|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�|������Sr0r�r�s  �r+r�z/PluralFormsTestCase.test_ro.<locals>.<listcomp>�r�r1r���10111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222r�r�s   @r+�test_rozPluralFormsTestCase.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�	Zr1c���|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�|������Sr0r�r�s  �r+r�z/PluralFormsTestCase.test_lt.<locals>.<listcomp>�r�r1r���20111111112222222222201111111120111111112011111111201111111120111111112011111111201111111120111111112011111111222222222220111111112011111111201111111120111111112011111111201111111120111111112011111111r�r�s   @r+�test_ltzPluralFormsTestCase.test_lt�sr���
�
���L�`�a�a���G�G�5�5�5�5��s���5�5�5�6�6��
��1�Y�	Z�	Z�	Z�	Z�	Zr1c���|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�|������Sr0r�r�s  �r+r�z/PluralFormsTestCase.test_ru.<locals>.<listcomp>�r�r1r���20111222222222222222201112222220111222222011122222201112222220111222222011122222201112222220111222222011122222222222222220111222222011122222201112222220111222222011122222201112222220111222222011122222r�r�s   @r+�test_ruzPluralFormsTestCase.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�	Zr1c���|j}tjd���d��fd�t	d��D����}||d��dS)Nz#(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2r�c�@��g|]}t�|������Sr0r�r�s  �r+r�z/PluralFormsTestCase.test_cs.<locals>.<listcomp>�r�r1r���20111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222r�r�s   @r+�test_cszPluralFormsTestCase.test_cs�sr���
�
���L�>�?�?���G�G�5�5�5�5��s���5�5�5�6�6��
��1�Y�	Z�	Z�	Z�	Z�	Zr1c���|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�|������Sr0r�r�s  �r+r�z/PluralFormsTestCase.test_pl.<locals>.<listcomp>�r�r1r���20111222222222222222221112222222111222222211122222221112222222111222222211122222221112222222111222222211122222222222222222111222222211122222221112222222111222222211122222221112222222111222222211122222r�r�s   @r+�test_plzPluralFormsTestCase.test_pl�sr���
�
���L�[�\�\���G�G�5�5�5�5��s���5�5�5�6�6��
��1�Y�	Z�	Z�	Z�	Z�	Zr1c���|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�|������Sr0r�r�s  �r+r�z/PluralFormsTestCase.test_sl.<locals>.<listcomp>�r�r1r���30122333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333012233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333r�r�s   @r+�test_slzPluralFormsTestCase.test_sl�sr���
�
���L�U�V�V���G�G�5�5�5�5��s���5�5�5�6�6��
��1�Y�	Z�	Z�	Z�	Z�	Zr1c���|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�|������Sr0r�r�s  �r+r�z/PluralFormsTestCase.test_ar.<locals>.<listcomp>�r�r1r���01233333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444445553333333344444444444444444444444444444444444444444444444444444444444444444444444444444444444444444r�r�s   @r+�test_arzPluralFormsTestCase.test_ar�sr���
�
���L�i�j�j���G�G�5�5�5�5��s���5�5�5�6�6��
��1�Y�	Z�	Z�	Z�	Z�	Zr1c�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)))))))))))))))))))))rp�
ValueErrorr%r�rE)r)�raisess  r+�
test_securityz!PluralFormsTestCase.test_security�s	���"����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�Cr1c���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��dSr�r�r�s  �r+�	<genexpr>z>PluralFormsTestCase.test_chained_comparison.<locals>.<genexpr>��1����� =� =�q��Q�Q�q�T�T��� =� =� =� =� =� =r1��010z
1 < n == nc3�H�K�|]}t�|����V��dSr�r�r�s  �r+r�z>PluralFormsTestCase.test_chained_comparison.<locals>.<genexpr>�r�r1�100z
n == n < 2c3�H�K�|]}t�|����V��dSr�r�r�s  �r+r�z>PluralFormsTestCase.test_chained_comparison.<locals>.<genexpr>�r�r1z	0 < n < 2c3�H�K�|]}t�|����V��dSr�r�r�s  �r+r�z>PluralFormsTestCase.test_chained_comparison.<locals>.<genexpr>�r�r1�111)r%r�rEr�r��r)r�s @r+�test_chained_comparisonz+PluralFormsTestCase.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�Er1c�h�|�tjd��d��d��dS)N�0123r��{�rEr%r�r<s r+�test_decimal_numberz'PluralFormsTestCase.test_decimal_number�s3�����-���f�-�-�a�0�0�#�6�6�6�6�6r1c��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)rpr�r%r�)r)�invalid_expressions�exprs   r+�test_invalid_syntaxz'PluralFormsTestCase.test_invalid_syntax�s���
�
�
��(�	#�	#�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:4r�r�r�z	n?1:3?4:5r�r<s r+�test_nested_condition_operatorz2PluralFormsTestCase.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�9r1c�^�tjd��}|�|d��d��|�|d��d��|�|d��d��|�|d��d��|�t|d��dS)	Nz2/n*3r��r�r�r���i����)r%r�rErp�ZeroDivisionErrorr�s  r+�
test_divisionz!PluralFormsTestCase.test_division�s����L��!�!�������1���q�!�!�!������1���q�!�!�!������1���q�!�!�!������2����#�#�#����+�Q��2�2�2�2�2r1c��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�g�?g@g�������?�2�2)r%r�rE�assertWarns�DeprecationWarningrp�	TypeError�objectr�s  r+�test_plural_numberz&PluralFormsTestCase.test_plural_number�sO���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)r-r.r/r,r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr0r1r+r�r�8s����������!�!�!�+�+�+�!�!�!�	+�	+�	+�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�
2r1r�c��eZdZd�Zd�ZdS)�GNUTranslationParsingTestc�<�ttd��5}|�tjt
����ddd��n#1swxYwYttd��5}t
j|��}ddd��dS#1swxYwYdS)Nr
r])rrrrr�GNU_MO_DATA_ISSUE_17898r%r`�r)r*rcs   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)Nr
r]zplural-formsznplurals=2; plural=(n != 1);)
rrrrrrr%r`rE�infors   r+�*test_ignore_comments_in_headers_issue36239zDGNUTranslationParsingTest.test_ignore_comments_in_headers_issue36239�sQ��	��&�$�
�
�	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�0AC�C�CN)r-r.r/rrr0r1r+rr�s7������,�,�,�W�W�W�W�Wr1rc�&�eZdZd�Zd�Zd�Zd�ZdS)�UnicodeTranslationsTestc�
�t�|��ttd��5}t	j|��|_ddd��n#1swxYwY|jj|_|jj|_dSry)	rr,rrr%r`rcrFr5r(s  r+r,zUnicodeTranslationsTest.setUps������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�)�assertIsInstancerFr�r<s r+�test_unicode_msgidz*UnicodeTranslationsTest.test_unicode_msgids(�����d�f�f�R�j�j�#�.�.�.�.�.r1c�X�|�|�d��d��dS)N�abÞu¤yzrDr<s r+�test_unicode_msgstrz+UnicodeTranslationsTest.test_unicode_msgstrs*���������)�)�8�4�4�4�4�4r1c��|�dd��}|�t|t����|�|d��dS)NumycontextÞr&u¤yz (context version))r5�
assertTrue�
isinstancer�rE�r)rcs  r+�test_unicode_context_msgstrz3UnicodeTranslationsTest.test_unicode_context_msgstrsN���M�M�/�8�4�4�����
�1�c�*�*�+�+�+�����6�7�7�7�7�7r1N)r-r.r/r,r$r'r,r0r1r+rr
sP������(�(�(�/�/�/�5�5�5�8�8�8�8�8r1rc�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�UnicodeTranslationsPluralTestc�
�t�|��ttd��5}t	j|��|_ddd��n#1swxYwY|jj|_|jj|_dSry)	rr,rrr%r`rcr^r�r(s  r+r,z#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�����
���)����r!c	���|j}|t|�ddd��t����|t|�ddd��t����dS�Nr�r�r�)r)r*r^r��r)�unlesss  r+r$z0UnicodeTranslationsPluralTest.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�9r1c
���|j}|t|�dddd��t����|t|�dddd��t����dSr1)r)r*r�r�r2s  r+�test_unicode_context_msgidz8UnicodeTranslationsPluralTest.test_unicode_context_msgid.sg�������z�$�.�.��R��Q�7�7��=�=�>�>�>���z�$�.�.��R��Q�7�7��=�=�>�>�>�>�>r1c�b�|j}|j}|�ddd��}|t|t����||d��|t|t����|�ddd��}|t|t����||d��dS)Nr�r�r�r��r�)rEr)r^r*r��r)rHr3rcs    r+r'z1UnicodeTranslationsPluralTest.test_unicode_msgstr3s���
�
������M�M�,�.B�A�F�F����z�!�S�!�!�"�"�"�
��1�������z�!�S�!�!�"�"�"��M�M�,�.B�A�F�F����z�!�S�!�!�"�"�"�
��1�� � � � � r1c�*�|j}|j}|�dddd��}|t|t����||d��|�dddd��}|t|t����||d��dS)Nr�r�r�r�r�r7r�)rEr)r�r*r�r8s    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�)�*�*�*�*�*r1N)r-r.r/r,r$r5r'r:r0r1r+r.r.!s_������*�*�*�:�:�:�
?�?�?�
	!�	!�	!�
+�
+�
+�
+�
+r1r.c��eZdZd�Zd�ZdS)�WeirdMetadataTestc��t�|��ttd��5}	t	j|��|_n#|����xYw	ddd��dS#1swxYwYdSry)rr,rr r%r`rc�tearDownr(s  r+r,zWeirdMetadataTest.setUpLs������d�#�#�#�
�'�4�
 �
 �	�B�
� �0��4�4�����
��
�
���������	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s(�A4�A�A4�A#�#A4�4A8�;A8c��|j���}|�t|��d��|�|dd��dS)N�	zlast-translatorz=John Doe <jdoe@example.com>
Jane Foobar <jfoobar@example.com>)rcrrE�len)r)rs  r+�test_weird_metadataz%WeirdMetadataTest.test_weird_metadataUs_���v�{�{�}�}������T���A�&�&�&�����/�0�K�	M�	M�	M�	M�	Mr1N)r-r.r/r,rBr0r1r+r<r<Ks7���������M�M�M�M�Mr1r<c��eZdZd�ZdS)�DummyGNUTranslationsc��dS)N�foor0r<s r+rFzDummyGNUTranslations.foo]s���ur1N)r-r.r/rFr0r1r+rDrD\s#����������r1rDc��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�)rr8r9rr:rErAr%r&�translationrD�	__class__r+s  r+�
test_cachezGettextCacheTestCase.test_cachebs(�������������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������&:�;�;�;�;�;r1N)r-r.r/rMr0r1r+rHrHas#������<�<�<�<�<r1rHc��eZdZd�ZdS)�MiscTestCasec�B�tj|tddh���dS)Nr��ENOENT)�not_exported)r�check__all__r%r<s r+�test__all__zMiscTestCase.test__all__|s2����T�7�+1�8�*<�	>�	>�	>�	>�	>�	>r1N)r-r.r/rTr0r1r+rOrO{s#������>�>�>�>�>r1rO�__main__)%rrr%�unittest�testr�test.supportrrrrrr!rr�rrrrrr �TestCaserrr3rfr�rrr.r<r`rDrHrOr-�mainr0r1r+�<module>r[s6��	�	�	�	�
�
�
�
���������������"�"�"�"�"�"���8!��0!��*��	��
�G�L�L��}�-�-�	�	����i��	.�	.���7�<�<�	�3Q�R�R���7�<�<�	�3Q�R�R��
�'�,�,�y�-�
0�
0��
�'�,�,�y�-�
0�
0��&�&�&�&�&�h�'�&�&�&�(��L�L�L�L�L��L�L�L�^U%�U%�U%�U%�U%��U%�U%�U%�p|2�|2�|2�|2�|2�/�|2�|2�|2�~W�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
�&�r1