Your IP : 216.73.216.196


Current Path : /opt/alt/python37/lib64/python3.7/test/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib64/python3.7/test/__pycache__/test_utf8_mode.cpython-37.opt-1.pyc

B

� f�$�@s|dZddlZddlZddlZddlZddlZddlmZddlm	Z	m
Z
ejdkZdZ
Gdd�dej�Zed	krxe��dS)
z9
Test the implementation of the PEP 540: the UTF-8 Mode.
�N)�support)�assert_python_ok�assert_python_failureZwin32)�CZPOSIXc@s�eZdZdddd�Zdd�Zdd�dd	�Ze�ed
�dd��Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zd&dd�Zdd�Zdd�Zdd�Zdd �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/python37/lib64/python3.7/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
CsJd}x@tD]8}|j|d��"|jd||d�}|�|d�WdQRXq
WdS)Nz&import sys; print(sys.flags.utf8_mode))�LC_ALLz-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)
Nz&import sys; print(sys.flags.utf8_mode)z-X�utf8z-cr zutf8=1zutf8=0r)r
)rr"�
MS_WINDOWS)rr#rrrr�test_xoption0s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)Nz&import sys; print(sys.flags.utf8_mode)z-cr )r	rz-Xzutf8=0r%)r	r
z-EZxxxT)r	rz-invalid PYTHONUTF8 environment variable value)rr"r&rZassertInr)rr#rrrr�test_env_varDs"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/surrogateescapez-Xr%z-c�strictr )r	r
zmbcs/replace)�textwrap�dedentr&rr")rr#�expectedrrrr�test_filesystemencodingds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}")
        z-Xr%z-cr)ZPYTHONIOENCODINGzstdin: utf-8/surrogateescapezstdout: utf-8/surrogateescapezstderr: utf-8/backslashreplace�latin1zstdin: latin1/strictzstdout: latin1/strictzstderr: latin1/backslashreplacez:namereplacezstdin: utf-8/namereplacezstdout: utf-8/namereplace)r*r+rr"�
splitlines)rr#rrrr�
test_stdio{s(


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}")
        z-cr )r	zUTF-8/strict)r*r+�__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, z-cr )r	zUTF-8r)�/)r1�appendr*r+�joinrr")r�module�encoding�errorsr2rr#rrrr�_check_io_encoding�s
z UTF8ModeTests._check_io_encodingcCs0|j|dd�|j|dd�|j|ddd�dS)Nr.)r8�namereplace)r9)r8r9)r:)rr7rrr�check_io_encoding�szUTF8ModeTests.check_io_encodingcCs|�d�dS)N�io)r<)rrrr�test_io_encoding�szUTF8ModeTests.test_io_encodingcCs|�d�dS)NZ_pyio)r<)rrrrr>�sc
Csjd}|�ddd|�}|�|d�xDtD]<}|j|d��&|jddd||d�}|�|d�WdQRXq&WdS)Nz[import locale; print(locale.getpreferredencoding(False), locale.getpreferredencoding(True))z-Xr%z-czUTF-8 UTF-8)r)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�x4tD],}�j|d	��|d|g|d	�WdQRXqFWtjd
ks�tjr�|}ntj�d�r���d�}n|}x4tD],}�j|d	��|d
|g|d	�WdQRXq�WdS)Nuhé€zutf-8�ascii�surrogateescapezYimport locale, sys; print("%s:%s" % (locale.getpreferredencoding(), ascii(sys.argv[1:])))cs>�jd|d��f|�}|�d�d��}��|t|�|�dS)Nz-Xz-c�:r)r�	partitionrr"r@)Zutf8_optr,rrr)�argr#rrr�check�sz*UTF8ModeTests.test_cmd_line.<locals>.checkr%)r�darwinZaixz
iso-8859-1zutf8=0)	�encoderrr!�sys�platformrZ
is_android�
startswith)rZarg_utf8Z	arg_asciirErZc_argr)rDr#rr�
test_cmd_line�s"



zUTF8ModeTests.test_cmd_linecCsfd}|�dddd|�}|�|d�|�dddd|�}|�|d�d	}|�ddd
d|�}|�|d�dS)Nz%import sys; print(sys.flags.optimize)z-Xr%z-Oz-cr z-OO�2z/import sys; print(sys.flags.ignore_environment)z-E)rr")rr#rrrr�test_optim_level�szUTF8ModeTests.test_optim_level)NN)�__name__�
__module__�__qualname__rrr�unittestZskipIfr&r$r'r(r-r0r3r:r<r>r?rKrMrrrrrs$
	 

r�__main__)�__doc__r�osrHr*rQZtestrZtest.support.script_helperrrrIr&rZTestCaserrN�mainrrrr�<module>s
n