HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/test_tools/__pycache__/test_i18n.cpython-37.opt-2.pyc
B

"��gV#�@slddlZddlZddlZddlmZddlmZddlmZm	Z	ddl
mZmZe�Gdd�dej
�ZdS)�N)�dedent)�assert_python_ok)�skip_if_missing�toolsdir)�temp_cwd�temp_dirc@s�eZdZej�edd�Zdd�Zdd�Z	dd�Z
d	d
�Ze�
ej�d�d�d
d��Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Z d-S).�Test_pygettextZi18nzpygettext.pycCsRi}xH|�d�D]:}|r|�d�r$q|�d�}|�dd�\}}|��||<qW|S)N�
)�#�msgidZmsgstr�"�:�)�split�
startswith�strip)�self�dataZheaders�line�key�val�r�5/usr/local/lib/python3.7/test/test_tools/test_i18n.py�
get_headers
zTest_pygettext.get_headercCs�g}d}g}x�|�d�D]l}|rV|�d�r<|�|�d��n|�d�|��g}d}q|�d�r|td�d�}|�|�d��d}qW|r�|�d�|��|S)NFr	rzmsgid T)rr�appendr�join�len)rr�msgidsZ
reading_msgidZ	cur_msgidrrrr�
get_msgids s$

zTest_pygettext.get_msgidsc
Csld}td��P}t|d��}|�|�WdQRXt|jd|�td��}|��}WdQRXWdQRX|�|�S)Nztest_docstrings.py�wz-Dzmessages.pot)r�open�writer�script�readr)rZmodule_content�filename�cwd�fprrrr�extract_docstrings_from_str8s

z*Test_pygettext.extract_docstrings_from_strc
Cs�td���}t|j�td��}|��}WdQRX|�|�}|�d|�|�d|�|�d|�|�d|�|�d|�|�d|�|�d|�|�d	|�|�d
|�WdQRXdS)Nzmessages.potzProject-Id-VersionzPOT-Creation-DatezPO-Revision-DatezLast-Translatorz
Language-TeamzMIME-VersionzContent-TypezContent-Transfer-EncodingzGenerated-By)rrr"r r#r�assertIn)rr%r&r�headerrrr�test_headerCs



zTest_pygettext.test_headerZaixzbpo-29972: broken test on AIXc
Cs�ddlm}td��f}t|j�td��}|��}WdQRX|�|�}|d}|�d�rj|dtd��}|�	|d�WdQRXdS)Nr)�datetimezmessages.potzPOT-Creation-Datez\nz%Y-%m-%d %H:%M%z)
r+rrr"r r#r�endswithrZstrptime)rr+r%r&rr)ZcreationDaterrr�test_POT_Creation_Date]s




z%Test_pygettext.test_POT_Creation_Datec
CsFx@dD]8}|�|��$|�td|��}|�d|�WdQRXqWdS)N)z	"""doc"""z
r'''doc'''zR'doc'zu"doc"zE                def foo(bar):
                    %s
                �doc)�subTestr'rr()rr.rrrr�test_funcdocstringps

z!Test_pygettext.test_funcdocstringcCs&|�td��}|�dd�|D��dS)Nz5        def foo(bar):
            b"""doc"""
        cSsg|]}d|kr|�qS)r.r)�.0rrrr�
<listcomp>~sz;Test_pygettext.test_funcdocstring_bytes.<locals>.<listcomp>)r'r�assertFalse)rrrrr�test_funcdocstring_bytesysz'Test_pygettext.test_funcdocstring_bytescCs&|�td��}|�dd�|D��dS)Nz5        def foo(bar):
            f"""doc"""
        cSsg|]}d|kr|�qS)r.r)r1rrrrr2�sz=Test_pygettext.test_funcdocstring_fstring.<locals>.<listcomp>)r'rr3)rrrrr�test_funcdocstring_fstring�sz)Test_pygettext.test_funcdocstring_fstringc
CsFx@dD]8}|�|��$|�td|��}|�d|�WdQRXqWdS)N)z	"""doc"""z
r'''doc'''zR'doc'zu"doc"z@                class C:
                    %s
                r.)r/r'rr()rr.rrrr�test_classdocstring�s

z"Test_pygettext.test_classdocstringcCs&|�td��}|�dd�|D��dS)Nz0        class C:
            b"""doc"""
        cSsg|]}d|kr|�qS)r.r)r1rrrrr2�sz<Test_pygettext.test_classdocstring_bytes.<locals>.<listcomp>)r'rr3)rrrrr�test_classdocstring_bytes�sz(Test_pygettext.test_classdocstring_bytescCs&|�td��}|�dd�|D��dS)Nz0        class C:
            f"""doc"""
        cSsg|]}d|kr|�qS)r.r)r1rrrrr2�sz>Test_pygettext.test_classdocstring_fstring.<locals>.<listcomp>)r'rr3)rrrrr�test_classdocstring_fstring�sz*Test_pygettext.test_classdocstring_fstringcCs|�d�}|�d|�dS)Nz_("""doc""" r'str' u"ing")Z	docstring)r'r()rrrrr�
test_msgid�szTest_pygettext.test_msgidcCs"|�d�}|�dd�|D��dS)Nz
_(b"""doc""")cSsg|]}d|kr|�qS)r.r)r1rrrrr2�sz3Test_pygettext.test_msgid_bytes.<locals>.<listcomp>)r'r3)rrrrr�test_msgid_bytes�s
zTest_pygettext.test_msgid_bytescCs"|�d�}|�dd�|D��dS)Nz
_(f"""doc""")cSsg|]}d|kr|�qS)r.r)r1rrrrr2�sz5Test_pygettext.test_msgid_fstring.<locals>.<listcomp>)r'r3)rrrrr�test_msgid_fstring�s
z!Test_pygettext.test_msgid_fstringcCs|�td��}|�d|�dS)Nz9        def foo(bar: str):
            """doc"""
        r.)r'rr()rrrrr�!test_funcdocstring_annotated_args�sz0Test_pygettext.test_funcdocstring_annotated_argscCs|�td��}|�d|�dS)Nz;        def foo(bar) -> str:
            """doc"""
        r.)r'rr()rrrrr�#test_funcdocstring_annotated_return�sz2Test_pygettext.test_funcdocstring_annotated_returncCs|�td��}|�d|�dS)Nz7        def foo(bar=()):
            """doc"""
        r.)r'rr()rrrrr� test_funcdocstring_defvalue_args�sz/Test_pygettext.test_funcdocstring_defvalue_argscCs6|�td��}|�d|�|�d|�|�d|�dS)Nz�        def foo1(bar: tuple=()) -> str:
            """doc1"""

        def foo2(bar: List[1:2]) -> (lambda x: x):
            """doc2"""

        def foo3(bar: 'func'=lambda x: x) -> {1: 2}:
            """doc3"""
        Zdoc1Zdoc2Zdoc3)r'rr()rrrrr�!test_funcdocstring_multiple_funcs�s
	z0Test_pygettext.test_funcdocstring_multiple_funcscCs|�td��}|�d|�dS)Nz\        class D(L[1:2], F({1: 2}), metaclass=M(lambda x: x)):
            """doc"""
        r.)r'rr()rrrrr�test_classdocstring_early_colon�sz.Test_pygettext.test_classdocstring_early_coloncCspd}d}d}td���Ptd���:}t�tj�|d��ttj�|dd�d��}|�d|�d��WdQRXt�tj�|d	��ttj�|d	d
�d��}|�d|�d��WdQRXt�tj�|d��ttj�|dd�d��}|�d|�d��WdQRXt|j	|�td
��}|�
�}WdQRX|�d|�d�|�|�d|�d�|�|�||�WdQRXWdQRXdS)NzText to translate1zText to translate2zText to ignoreZpypkgzpymod.pyrz_(�)zpkg.pyz	pymod2.pyZCVSz	pymod3.pyzmessages.potzmsgid "r)
rr�os�mkdir�pathrr r!rr"r#r(ZassertNotIn)rZtext1Ztext2Ztext3ZsdirZsfiler&rrrr�test_files_list�s&
zTest_pygettext.test_files_listN)!�__name__�
__module__�__qualname__rBrDrrr"rrr'r*�unittestZskipIf�sys�platformrr-r0r4r5r6r7r8r9r:r;r<r=r>r?r@rErrrrrs,		
r)rBrJrI�textwraprZtest.support.script_helperrZtest.test_toolsrrZtest.supportrrZTestCaserrrrr�<module>s