Your IP : 216.73.216.52


Current Path : /opt/alt/python38/lib64/python3.8/test/__pycache__/
Upload File :
Current File : //opt/alt/python38/lib64/python3.8/test/__pycache__/test_utf8_mode.cpython-38.opt-1.pyc

U

i�f�$�@s~dZddlZddlZddlZddlZddlmZddlmZm	Z	ej
dkZdZej
dkZ
Gdd	�d	ej�Zed
krze��dS)z9
Test the implementation of the PEP 540: the UTF-8 Mode.
�N)�support)�assert_python_ok�assert_python_failureZwin32)�CZPOSIXZvxworksc@s�eZdZdddd�Zdd�Zdd�dd	�Ze�ed
�dd��Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zd'dd�Zdd�Zdd�Zdd�Zd d!�Ze�ed"�d#d$��Zd%d&�ZdS)(�
UTF8ModeTests��0)�
PYTHONUTF8�PYTHONLEGACYWINDOWSFSENCODINGZPYTHONCOERCECLOCALEcCst�tjd�}|tkS)N)�locale�	setlocale�LC_CTYPE�
POSIX_LOCALES)�self�loc�r�8/opt/alt/python38/lib64/python3.8/test/test_utf8_mode.py�posix_localeszUTF8ModeTests.posix_localeF)�failurecOsFt|jf|�}|r&t||�}|d}nt||�}|d}|���d�S)N��z

)�dict�DEFAULT_ENVrr�decode�rstrip)rr�args�kw�outrrr�
get_outputs


zUTF8ModeTests.get_outputzWindows has no POSIX localec
CsFd}tD]8}|j|d��"|jd||d�}|�|d�W5QRXqdS)N�&import sys; print(sys.flags.utf8_mode)��LC_ALL�-c�1)r�subTestr�assertEqual)r�coderrrrr�test_posix_locale&s
zUTF8ModeTests.test_posix_localecCs�d}|�ddd|�}|�|d�|�ddd|�}|�|d�|�ddd|�}|�|d�tr||jddd|dd	�}|�|d�dS)
Nr�-X�utf8r"r#zutf8=1�utf8=0r)r
)rr%�
MS_WINDOWS�rr&rrrr�test_xoption/s�zUTF8ModeTests.test_xoptioncCs�d}|jd|dd�}|�|d�|jd|dd�}|�|d�|jddd|dd�}|�|d�tr�|jddd|ddd	�}|�|d�|��s�|jd
d|dd�}|�|d�|jd|ddd
�}|�d|���dS)Nrr"r#�r	rr(r*r)�r	r
�-EZxxxT)r	rz-invalid PYTHONUTF8 environment variable value)rr%r+rZassertInrr,rrr�test_env_varCs&��zUTF8ModeTests.test_env_varcCs^t�d�}trd}nd}|�ddd|�}|�||�trZ|jddd|ddd	�}|�|d
�dS)Nz�
            import sys
            print("{}/{}".format(sys.getfilesystemencoding(),
                                 sys.getfilesystemencodeerrors()))
        zutf-8/surrogatepasszutf-8/surrogateescaper(r)r"�strictr#r/zmbcs/replace)�textwrap�dedentr+rr%)rr&�expectedrrrr�test_filesystemencodingcs
�z%UTF8ModeTests.test_filesystemencodingcCs�t�d�}|jddd|dd�}|�|��ddd	g�|jddd|d
d�}|�|��ddd
g�|jddd|dd�}|�|��ddd	g�dS)Nz�
            import sys
            print(f"stdin: {sys.stdin.encoding}/{sys.stdin.errors}")
            print(f"stdout: {sys.stdout.encoding}/{sys.stdout.errors}")
            print(f"stderr: {sys.stderr.encoding}/{sys.stderr.errors}")
        r(r)r"r)ZPYTHONIOENCODINGzstdin: utf-8/surrogateescapezstdout: utf-8/surrogateescapezstderr: utf-8/backslashreplace�latin1zstdin: iso8859-1/strictzstdout: iso8859-1/strictz"stderr: iso8859-1/backslashreplacez:namereplacezstdin: utf-8/namereplacezstdout: utf-8/namereplace)r3r4rr%�
splitlinesr,rrr�
test_stdiozs8
�
���
���
��zUTF8ModeTests.test_stdiocCs0t�d�}t}|jd||dd�}|�|d�dS)Nz�
            import sys
            filename = sys.argv[1]
            with open(filename) as fp:
                print(f"{fp.encoding}/{fp.errors}")
        r"r#r.zUTF-8/strict)r3r4�__file__rr%)rr&�filenamerrrr�test_io�s
zUTF8ModeTests.test_ioNcCs�t}g}|r|�d|���|r0|�d|���t�d�|d�|�f}|jd||dd�}|sbd}|sjd	}|�||�d
|���dS)Nz	encoding=zerrors=z�
            import sys
            from %s import open
            filename = sys.argv[1]
            with open(filename, %s) as fp:
                print(f"{fp.encoding}/{fp.errors}")
        z, r"r#r.zUTF-8r2�/)r:�appendr3r4�joinrr%)r�module�encoding�errorsr;rr&rrrr�_check_io_encoding�s"�
�z UTF8ModeTests._check_io_encodingcCs0|j|dd�|j|dd�|j|ddd�dS)Nr7)rA�namereplace)rB)rArB)rC)rr@rrr�check_io_encoding�s�zUTF8ModeTests.check_io_encodingcCs|�d�dS)N�io�rE�rrrr�test_io_encoding�szUTF8ModeTests.test_io_encodingcCs|�d�dS)NZ_pyiorGrHrrr�test_pyio_encoding�sz UTF8ModeTests.test_pyio_encodingc
Csfd}|�ddd|�}|�|d�tD]<}|j|d��&|jddd||d�}|�|d�W5QRXq$dS)Nz[import locale; print(locale.getpreferredencoding(False), locale.getpreferredencoding(True))r(r)r"zUTF-8 UTF-8r )rr%rr$)rr&rrrrr� test_locale_getpreferredencoding�sz.UTF8ModeTests.test_locale_getpreferredencodingztest specific to Unixc
s�d�d����d�}��dd�}d����fdd�}|d|g�tD],}�j|d	��|d|g|d	�W5QRXqDtjd
ks�tjs�tr�|}ntj�	d�r���d�}n|}tD],}�j|d	��|d
|g|d	�W5QRXq�dS)Nuhé€zutf-8�ascii�surrogateescapezYimport locale, sys; print("%s:%s" % (locale.getpreferredencoding(), ascii(sys.argv[1:])))cs>�jd|d��f|�}|�d�d��}��|t|�|�dS)Nr(r"�:r)r�	partitionrr%rL)Zutf8_optr5rrr��argr&rrr�check�sz*UTF8ModeTests.test_cmd_line.<locals>.checkr)r �darwinZaixz
iso-8859-1r*)
�encoderrr$�sys�platformrZ
is_android�VXWORKS�
startswith)rZarg_utf8Z	arg_asciirRrZc_argrrPr�
test_cmd_line�s"

zUTF8ModeTests.test_cmd_linecCsfd}|�dddd|�}|�|d�|�dddd|�}|�|d�d	}|�ddd
d|�}|�|d�dS)Nz%import sys; print(sys.flags.optimize)r(r)z-Or"r#z-OO�2z/import sys; print(sys.flags.ignore_environment)r0)rr%r,rrr�test_optim_level�szUTF8ModeTests.test_optim_level)NN)�__name__�
__module__�__qualname__rrr�unittestZskipIfr+r'r-r1r6r9r<rCrErIrJrKrYr[rrrrrs*�


 



r�__main__)�__doc__rrUr3r_ZtestrZtest.support.script_helperrrrVr+rrWZTestCaserr\�mainrrrr�<module>s

n