python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_utf8_mode.cpython-312.opt-2.pyc

ΑeZ)	ddlZddlZddlZddlZddlZddlmZddlmZm	Z	ddl
mZejdk(Z
dZejdk(ZGdd	ej Zed
k(rej&yy)N)support)assert_python_okassert_python_failure)	os_helperwin32)CPOSIXvxworksc,eZdZddddZdZdddZejedd	Z	d
Z
dZdZd
Z
dZddZdZdZdZdZejeddZdZejedej.dZy)
UTF8ModeTests0)
PYTHONUTF8PYTHONLEGACYWINDOWSFSENCODINGPYTHONCOERCECLOCALEcZtjtjd}|tvS)N)locale	setlocaleLC_CTYPE
POSIX_LOCALES)selflocs  G/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_utf8_mode.pyposix_localezUTF8ModeTests.posix_locales#v5}$%F)failurect|jfi|}|rt|i|}|d}nt|i|}|d}|j	jdS)Nz

)dictDEFAULT_ENVrrdecoderstrip)rrargskwouts     r
get_outputzUTF8ModeTests.get_outputsa
$""
)b
)'44Ca&C"D/B/Ca&Czz|""6**rzWindows has no POSIX localecd}tD]C}|j|5|jd||}|j|ddddEy#1swYPxYw)N&import sys; print(sys.flags.utf8_mode)LC_ALL-c1)rsubTestr'assertEqual)rcoderr&s    rtest_posix_localezUTF8ModeTests.test_posix_locale(sb7 	+CS)
+oodDo=  c*
+
+	+
+
+s'AA	cJd}|jddd|}|j|d|jddd|}|j|d|jddd|}|j|dtr)|jddd|d	}|j|dyy)
Nr)-Xutf8r,r-zutf8=1utf8=0r)r)r'r/
MS_WINDOWSrr0r&s   rtest_xoptionzUTF8ModeTests.test_xoption1s7oodFD$7c"oodHdD9c"oodHdD9c"//$d@C"ECS#&rc&d}|jd|d}|j|d|jd|d}|j|d|jddd|d}|j|dtr)|jddd|dd	}|j|d|js'|jd
d|d}|j|d|jd|dd
}|j	d|jy)Nr)r,r-rrr3r5r4rr-ExxxT)rrz-invalid PYTHONUTF8 environment variable value)r'r/r6rassertInr#r7s   rtest_env_varzUTF8ModeTests.test_env_varEs7oodDSo9c"oodDSo9c"oodHdDSoIc"//$ds@C"ECS#&  "//$ds/CCS#&oodDUDoI

Ejjl	$rctjd}trd}nd}|jddd|}|j	||tr*|jddd|dd	}|j	|d
yy)Nz
            import sys
            print("{}/{}".format(sys.getfilesystemencoding(),
                                 sys.getfilesystemencodeerrors()))
        zutf-8/surrogatepasszutf-8/surrogateescaper3r4r,strictr-r;zmbcs/replace)textwrapdedentr6r'r/)rr0expectedr&s    rtest_filesystemencodingz%UTF8ModeTests.test_filesystemencodinges 
,H.HoodFD$7h'//$d-5@C"EC
S.1
rc~tjd}|jddd|d}|j|j	gd|jddd|d}|j|j	gd	|jddd|d
}|j|j	gdy)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}")
        r3r4r,r
)PYTHONIOENCODING)zstdin: utf-8/surrogateescapezstdout: utf-8/surrogateescapestderr: utf-8/backslashreplacelatin1)zstdin: iso8859-1/strictzstdout: iso8859-1/strictz"stderr: iso8859-1/backslashreplacez:namereplace)zstdin: utf-8/namereplacezstdout: utf-8/namereplacerH)rBrCr'r/
splitlinesr7s   r
test_stdiozUTF8ModeTests.test_stdio|s 
oodFD$/13)<	=oodFD$/79)@	A
oodFD$/=?)<	=rctjd}t}|jd||d}|j	|jdy)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)rBrC__file__r'r/lower)rr0filenamer&s    rtest_iozUTF8ModeTests.test_iosH 
oodD(soCn5rNcBt}g}|r|jd||r|jd|tjd|dj	|fz}|jd||d}|sd}|sd	}|j
|j|d
|y)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:utf-8rA/)rMappendrBrCjoinr'r/rN)rmoduleencodingerrorsrOr$r0r&s        r_check_io_encodingz UTF8ModeTests._check_io_encodingsKK)H<01KK'&,- 
		$(
)oodD(),.HF
!F8&<=rcx|j|d|j|d|j|ddy)NrIrWnamereplace)rX)rWrX)rY)rrVs  rcheck_io_encodingzUTF8ModeTests.check_io_encodingsC:}=)1-	 	Irc&|jdy)Nior]rs rtest_io_encodingzUTF8ModeTests.test_io_encodingst$rc&|jdy)N_pyior`ras rtest_pyio_encodingz UTF8ModeTests.test_pyio_encodingsw'rc	d}|jddd|}|j|dtD]E}|j|5|jddd||}|j|ddddGy#1swYRxYw)Nz[import locale; print(locale.getpreferredencoding(False), locale.getpreferredencoding(True))r3r4r,zutf-8 utf-8r*)r'r/rr.)rr0r&rs    r test_locale_getpreferredencodingz.UTF8ModeTests.test_locale_getpreferredencodingsloodFD$7m, 	5CS)
5oodFD$soK  m4
5
5	5
5
5s)A88B	ztest specific to UnixcNdjdjd}jdd}dfd}|d|gtD])}j|5|d|g|ddd+tj
d	k(stjstr|}n3tj
jd
rjd}n|}tD])}j|5|d|g|ddd+y#1swYxYw#1swYBxYw)
Nuhé€rRasciisurrogateescapezYimport locale, sys; print("%s:%s" % (locale.getpreferredencoding(), ascii(sys.argv[1:])))cjd|dfi|}|jddj}j|t	||y)Nr3r,:r)r'	partitionr#r/ri)utf8_optrDr%r&r$argr0rs     rcheckz*UTF8ModeTests.test_cmd_line.<locals>.checksR!$//$$cHRHC==%a(//1DT5?C8rr4r*darwinaixz
iso-8859-1r5)
encoder"rr.sysplatformr
is_androidVXWORKS
startswith)rarg_utf8	arg_asciirprc_argror0s`     @@r
test_cmd_linezUTF8ModeTests.test_cmd_lines""7+::g&JJw(9:	j	9
	fxj! 	6CS)
6fxj5
6
6	6<<8#w'9'9WE
\\
$
$U
+JJ|,EE 	5CS)
5h4
5
5	5
6
6
5
5s&
D7
DD	D$	cd}|jdddd|}|j|d|jdddd|}|j|dd	}|jddd
d|}|j|dy)Nz%import sys; print(sys.flags.optimize)r3r4z-Or,r-z-OO2z/import sys; print(sys.flags.ignore_environment)r<)r'r/r7s   rtest_optim_levelzUTF8ModeTests.test_optim_levels
7oodFD$=c"oodFE4>c"@oodFD$=c"rz@os.device_encoding() doesn't implement the UTF-8 Mode on Windowsctjjs|jdd}|j	t
j|d|d}tjddd|g}tj|d	}|j|jd
|t|d5}|jj}ddd|jdy#1swYxYw)
Nzsys.stdout is not a TTYzout.txtz5import os, sys; fd = sys.stdout.fileno(); out = open(z], "w", encoding="utf-8"); print(os.isatty(fd), os.device_encoding(fd), file=out); out.close()r3r4r,T)textrr[z
True utf-8)rtstdoutisattyskipTest
addCleanuprunlink
executable
subprocessrunr/
returncodeopenreadr#)rrOr0cmdprocfpr&s       rtest_device_encodingz"UTF8ModeTests.test_device_encodingszz  "MM34	(((3&\*~~tVT48~~c-!T2(V
,	%'')""$C	%l+	%	%s.C((C1)NN)__name__
__module____qualname__r!rr'unittestskipIfr6r1r8r?rErKrPrYr]rbrergr|rrrequires_subprocessrrrrrs)+"K&).+X__Z!>?+@+'($@2.=<
6>2I%(5X__Z!895:54
#X__Z12!W  ",#2,rr__main__)rrrtrBrtestrtest.support.script_helperrrtest.supportrrur6rrwTestCaserrmainrrr<module>rsv
N"llg%

<<9$D,H%%D,NzHMMOr