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.10/test/__pycache__/test_sys.cpython-310.pyc
o

�iB��@s*ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
ZddlmZddl
m
Z
ddlmZmZddl
mZddlZddlZddlZdaGdd�dej�ZGdd	�d	ej�ZGd
d�dej�ZejjGdd
�d
ej��ZejjGdd�dej��Zedkr�e��dSdS)�N)�support)�	os_helper)�assert_python_ok�assert_python_failure)�threading_helperc@�$eZdZdd�Zdd�Zdd�ZdS)�DisplayHookTestcCs�tj}t���}|d�Wd�n1swY|�|��d�|�tjd�t`t���}|d�Wd�n1s?wY|�|��d�|�t	td��|�
t|�tj}zt`|�
t
|d�W|t_dS|t_w)N�*z42
��_)�sys�__displayhook__rZcaptured_stdout�assertEqual�getvalue�builtinsr�
assertTrue�hasattr�assertRaises�	TypeError�stdout�RuntimeError)�selfZdh�outr�r�*/usr/local/lib/python3.10/test/test_sys.py�test_original_displayhooks$

�

�z)DisplayHookTest.test_original_displayhookcCs:tj}zt`tddd�}|�tt|�W|t_dS|t_w)N�42�<string>�single)r�displayhook�compilerr�eval)rr�coderrr�test_lost_displayhook7sz%DisplayHookTest.test_lost_displayhookcCsVdd�}t�td|��tddd�}|�tt|�Wd�dS1s$wYdS)NcS�t��N��
ValueError)�objrrr�baddisplayhookA�z?DisplayHookTest.test_custom_displayhook.<locals>.baddisplayhookrrrr)r�	swap_attrrr rr'r!)rr)r"rrr�test_custom_displayhook@s
"�z'DisplayHookTest.test_custom_displayhookN)�__name__�
__module__�__qualname__rr#r,rrrrrs	rc@r)�ExceptHookTestcCs�ztd��ty1}z!t���}tjt���Wd�n1s"wYWYd}~nd}~ww|�|���d��|�	t
tj�dS)Nr	�ValueError: 42
)r'r�captured_stderrr�__excepthook__�exc_inforr�endswithrr�r�exc�errrrr�test_original_excepthookKs
���z'ExceptHookTest.test_original_excepthookcCs�t���At�dt�ztdd��ty=}z!t���}tjt�	��Wd�n1s.wYWYd}~nd}~wwWd�n1sHwY|�
�}|�d|�|�d|�|�|�
d��dS)N�ignore�msg)sbytes_filename�{r�textz%  File "b'bytes_filename'", line 123
z	    text
zSyntaxError: msg
)�warnings�catch_warnings�simplefilter�BytesWarning�SyntaxErrorrr2rr3r4r�assertInrr5r6rrr�test_excepthook_bytes_filenameVs 


�����	z-ExceptHookTest.test_excepthook_bytes_filenamecCsPtj�d��}t�ddd�Wd�n1swY|�d|��v�dS)N�stderr��1zETypeError: print_exception(): Exception expected for value, str found)�testr�captured_outputr�
excepthookrr)rrErrr�test_excepthookgs�
�zExceptHookTest.test_excepthookN)r-r.r/r9rDrKrrrrr0Isr0c@s(eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Ze	j
jd
d��Zdd�Z
dd�Ze�eed�d�dd��Ze	j
jdd��Zdd�Zejdd��Zejdd��Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Z d+d,�Z!d-d.�Z"d/d0�Z#e	j
jd1d2��Z$d3d4�Z%e�e&j'd5�e�e�(�e)�*d6�kd7�d8d9���Z+e�,ej-ej.kd:�d;d<��Z/dhd>d?�Z0d@dA�Z1didBdC�Z2dDdE�Z3dFdG�Z4dHdI�Z5dJdK�Z6e	j
jdLdM��Z7e�eedN�dO�dPdQ��Z8dRdS�Z9dTdU�Z:dVdW�Z;e�eedX�dY�dZd[��Z<d\d]�Z=d^d_�Z>e�eed`�da�dbdc��Z?ddde�Z@dfdg�ZAd=S)j�
SysModuleTestcCstj��dSr%)rHr�
reap_children�rrrr�tearDowns�zSysModuleTest.tearDowncs���ttjdd���t��}t��Wd�n1swY��|jj�tdd�\}}}��	|d���	|d���	|d���t��
}t�d�Wd�n1sXwY��	|jjd���t��
}t�d�Wd�n1szwY��	|jjd���t��
}t�d�Wd�n1s�wY��	|jjd���t��
}t�d�Wd�n1s�wY��	|jjd�t
dd	�\}}}��	|d
���	|d���	|d��fdd�}|d
d�|dd�|dddd�dS)Nr	�-czimport sys; sys.exit()r�)r	�exit)��zraise SystemExit(47)�/csVtd|fi|��\}}}��|d���|d���|�|�dt|�t|�f�dS)NrQrFrRz%s doesn't start with %s)rrr�
startswith�ascii)r"�expectedZenv_vars�rcrr8rNrr�check_exit_message�s�z3SysModuleTest.test_exit.<locals>.check_exit_messagez?import sys; sys.stderr.write("unflushed,"); sys.exit("message")sunflushed,messagez)import sys; sys.exit("surrogates:\uDCFF")ssurrogates:\udcffzimport sys; sys.exit("h\xe9")sh�zlatin-1)�PYTHONIOENCODING)rrrrS�
SystemExit�assertIsNone�	exceptionr"rrr)r�cmrZrr8r[rrNr�	test_exitvsT
�����	��
�zSysModuleTest.test_exitcCs$|�ttjd�|�t��t�dS)Nr	)rrr�getdefaultencoding�assertIsInstance�strrNrrr�test_getdefaultencoding�sz%SysModuleTest.test_getdefaultencodingc	Cs�|�ttj�|�ttjd�|�ttjd�|�ttjd�t��}|�|dk|�zddd|fD]}t�|�|�t��|�q2Wt�|�dSt�|�w)N�ag�gg�?g�h㈵��>g�������?g@)rrr�setswitchintervalr'�getswitchintervalrZassertAlmostEqual)rZorig�nrrr�test_switchinterval�s
�z!SysModuleTest.test_switchintervalcCs^|�ttjd�t��}|�ttj�|�ttjd�t�d�|�t��d�t�|�dS)Nr	i���i')rrr�getrecursionlimit�setrecursionlimitr'r)r�oldlimitrrr�test_recursionlimit�s
z!SysModuleTest.test_recursionlimitc	s�ttd�rt��r|�d�t��}�fdd��zNdD]C}zt�|�Wn	ty-Yqw|�t����Wd�n1sAwY|�t����Wd�n1sYwYqWt�|�dSt�|�w)N�gettracez(fatal error if run with a trace functionc�
��dSr%rr��frrrr��
z5SysModuleTest.test_recursionlimit_recovery.<locals>.f)�2�K�d���)rrroZskipTestrkrl�RecursionErrorr)rrm�depthrrqr�test_recursionlimit_recovery�s(
�����z*SysModuleTest.test_recursionlimit_recoveryc	s`ddlm����fdd��t��}zt�d�dD]}�||�qWt�|�dSt�|�w)Nr)�get_recursion_depthcsf��}||kr,��t��
}t�|�Wd�n1swY��t|j�d�dS�||�dS)Nz\cannot set the recursion limit to [0-9]+ at the recursion depth [0-9]+: the limit is too low)rryrrlZassertRegexrdr_)rz�limit�recursion_depthr`�r|r�set_recursion_limit_at_depthrrr��s��zZSysModuleTest.test_setrecursionlimit_recursion_depth.<locals>.set_recursion_limit_at_depthrx)�
�rtrurv���)�_testinternalcapir|rrkrl)rrmr}rrr�&test_setrecursionlimit_recursion_depth�s
�z4SysModuleTest.test_setrecursionlimit_recursion_depthcCsvtj�td�t��}|�t|�d�|�|dt�|�|dt�|�|dt�|�|dt�|�|dt	�|�
ttj
|d�|�|jt�|�|jt�|�|jt�|�|jt�|�|jt	�|�|jt�|�|jt�|�|jt�|�|jt�|�|d|j�|�|d|j�|�|d|j�|�|d|j�|�|d|j�t��\}}}}}dS)N�getwindowsversion�rrF���)rHr�
get_attributerr�r�lenrc�intrdr�
IndexError�operator�getitem�major�minorZbuild�platformZservice_packZservice_pack_minorZservice_pack_majorZ
suite_maskZproduct_type)r�vZmaj�minZbuildnoZplatZcsdrrr�test_getwindowsversion
s0z$SysModuleTest.test_getwindowsversioncCs|�ttjtd�dS)Nr�)rrr�call_tracing�typerNrrr�test_call_tracing+�zSysModuleTest.test_call_tracing�setdlopenflagsztest needs sys.setdlopenflags()cCsf|�ttd��|�ttjd�t��}|�ttj�t�|d�|�t��|d�t�|�dS)N�getdlopenflagsr	rF)rrrrrr�r�r)rZoldflagsrrr�test_dlopenflags.szSysModuleTest.test_dlopenflagscCsh|�ttj�t�d�}da|�t�d�|d�b|�t�d�|�ttd�r2|�t��t	�dSdS)NrF�gettotalrefcount)
rrr�getrefcountrirrrcr�r�)r�crrr�
test_refcount9s

�zSysModuleTest.test_refcountcCs>|�ttjdd�|�ttjd�|�tjjt��j	u�dS)Nr	i�5w)
rrr�	_getframer'rrL�
test_getframe�__code__�f_coderNrrrr�Is��zSysModuleTest.test_getframecspddl�ddl}��������g��fdd�}����fdd���j|d�}|�����|�t��d��d}t�	�}|D]}|�
|t�|�|d�qA��
�}|�||�|�||�|�|�}|�|t��u�|�|�}|�|�}	t|	�D]\}
\}}}
}|
dkr�nq||�d	�|�|d
�|	|
d\}}}
}|�|
d�|�|dd
g����|��dS)Nrcrpr%rr��g456rr�f123^rsz/SysModuleTest.test_current_frames.<locals>.f123cs"������������dSr%)�append�	get_ident�set�waitr��	entered_g�leave_g�thread_info�	threadingrrr�asz/SysModuleTest.test_current_frames.<locals>.g456��targetrFr��)didn't find f123() on thread's call stack�g456()r�zleave_g.wait()zentered_g.set())r��	traceback�Event�Thread�startr�rr�r�_current_framesrcr��
assertGreaterr�rC�poprr��
extract_stack�	enumerate�failr��join)rr�r��t�	thread_id�d�tid�main_id�frame�stack�i�filename�lineno�funcname�
sourceliner�r�r�r�r�r�r�test_current_framesRsD


�
z!SysModuleTest.test_current_framescsnddl�ddl}��������g��fdd�}����fdd���j|d�}|�����|�t��d��d}t�	�}|D]}|�
|t�|�|d�qA��
�}|�||�|�||�|�d|�|��|�|�\}}	}
|�|
j�}t|�D]\}\}
}}}|d	kr�nq{|�d
�|�|d�||d\}
}}}|�|d�|�|�d
�����|��dS)Nrcrpr%rrr�rrr��rsz3SysModuleTest.test_current_exceptions.<locals>.f123csJ���������	ztd��ty#�jtjd�r!YdSYnwq)NTZoops)�timeout)r�r�r�r'r�rZLONG_TIMEOUTrr�rrr��s���z3SysModuleTest.test_current_exceptions.<locals>.g456r�rF)NNNr�r�r�r�zif leave_g.wait()r�r�r�r�r�r�rr�r�_current_exceptionsrcr�r�r�rCr�r��tb_framer�r�rrWr�r�)rr�r�r�r�r�r�r��exc_type�	exc_value�exc_tbr�r�r�r�r�r�rr�r�test_current_exceptions�sB
�
z%SysModuleTest.test_current_exceptionscCs�|�tjt�|�tjt�tjD]}|�|t�q|�tjt�tjD]}|�|t�q$|�tj	d�|�tj
t�|�tjt�|�tj
t�|�tjt�|�tjt�|�ttj�d�|�tjjd�|�ttj�d�|�tjjddk�|�tjjdk�|�tjjd�|�tjjd	�|�tjjtjj�|�ttjj�t�|�ttjj�t�|�tjjt�|�tjjt�|�tjt�|�ttj�d
�|�tjj dtjj!�t"dd	�D]}|�t#|tjj dtjj �dd�$tjj ��q�|�tjj%t�|�tjj&t�|�tjj't�t(�)d�}tjj*d
v�r\|�tjj+ddh�|�tjj,hd��|dk�rC|�tjj*d�n|dk�rQ|�tjj*d�n|�tjj*ddh�n|�|d�|�tjj-d�|�tjj-d�|�tj.t�|�tj/t�|�tj/d�|�tj0t�|�tj1t�|�tj2t�|�tj3t�|�tj4t�tj5}|�|dd�t�|�t|�d�|�|dt�|�|dt�|�|dt�|�|dd�|�|dt�|�|j6t�|�|j7t�|�|j8t�|�|j9d�|�|j:t�|�|d|j6�|�|d|j7�|�|d|j8�|�|d|j9�|�|d|j:�|�|dk�|�tj;t�|�tj;d�tj0�<d��s\|�tj=t�dSdS)N)�little�big�r�r�r�rrFi�rv�	z'sys.hash_info.modulus {} is a non-primeZPy_HASH_ALGORITHM>�	siphash24�fnv� �@>r�r��r�r��i��r���alpha�beta�	candidate�final)rFrr)Zshort�legacy�win)>rcr�api_versionr��argv�listrd�	orig_argvrC�	byteorder�builtin_module_names�tuple�	copyright�exec_prefix�base_exec_prefix�
executablerr��
float_info�radix�int_infor�bits_per_digit�sizeof_digit�assertGreaterEqual�default_max_str_digits�str_digits_check_thresholdr�r��
hexversion�	hash_info�
assertLess�modulus�width�range�pow�format�inf�nan�imag�	sysconfigZget_config_var�	algorithm�	hash_bits�	seed_bits�cutoff�maxsize�
maxunicoder��prefix�base_prefix�
platlibdir�version�version_infor�r��micro�releaselevel�serial�float_repr_stylerW�abiflags)r�arg�xZalgo�virrr�test_attributes�s�


���


�zSysModuleTest.test_attributescCs6tj}|�t|�d�|�|jd�|�|jd�dS)Nr�)�ntZpthreadZsolarisN)�	semaphorez
mutex+condN)rr�rr�rC�name�lock)r�inforrr�test_thread_info3szSysModuleTest.test_thread_infocCs|�tjjtjj�dSr%)rr�
__stdout__�encoding�
__stderr__rNrrr�
test_435819szSysModuleTest.test_43581cCs~td7a|�ttj�dtt�}|�t�|�|u�|����}|�t�|�|u�Gdd�dt�}|�ttj|d��dS)NrFznever interned beforec@�eZdZdd�ZdS)z$SysModuleTest.test_intern.<locals>.ScS�dS)Nr<rrNrrr�__hash__Mr*z-SysModuleTest.test_intern.<locals>.S.__hash__N)r-r.r/r'rrrr�SL�r(�abc)�INTERN_NUMRUNSrrr�internrdr�swapcase)r�s�s2r(rrr�test_intern>szSysModuleTest.test_interncCs�|�tj�d}|D]!}|�ttj|�|�|dkrtnt}|�tttj|��||�q
|�t	tj��|�t
tj�t
|��|�tjjhd��dS)N)�debug�inspect�interactive�optimize�dont_write_bytecode�no_user_site�no_site�ignore_environment�verbose�
bytes_warning�quiet�hash_randomization�isolated�dev_mode�	utf8_mode�warn_default_encoding�int_max_str_digitsr>>rrFr�)
rr�flagsr�boolr�rr��getattr�reprr�rCr?)rZattrs�attr�	attr_typerrr�test_sys_flagsRszSysModuleTest.test_sys_flagscCsz|}t|�}|�t��||�Wd�n1swY|�t��|�||�Wd�dS1s6wYdSr%)r�rr�__new__)rZsys_attrrrGrrr�assert_raise_on_new_sys_typecs
�"�z*SysModuleTest.assert_raise_on_new_sys_typecC�|�tj�dSr%)rJrrBrNrrr�test_sys_flags_no_instantiationm�z-SysModuleTest.test_sys_flags_no_instantiationcCrKr%)rJrrrNrrr�&test_sys_version_info_no_instantiationprMz4SysModuleTest.test_sys_version_info_no_instantiationcCs tj�td�|�t���dS)Nr�)rHrr�rrJr�rNrrr�+test_sys_getwindowsversion_no_instantiationssz9SysModuleTest.test_sys_getwindowsversion_no_instantiationcCst��dSr%)r�_clear_type_cacherNrrr�test_clear_type_cachexsz#SysModuleTest.test_clear_type_cachecCs�ttj�}d|d<tjtjddgtj|d�}|��d�	�}dtj
�d�}|�||�d|d<tjtjddgtj|d�}|��d�	�}|�|d	�d
|d<tjtjddgtjtj|d�}|��\}}|�|d�|�
d
|�|�
d|�d|d<tjtjddgtjtj|d�}|��\}}|�|d�|�
d
|�|�
d|�d|d<tjtjddgtj|d�}|��d�	�}|�|d�dS)N�cp424r\rQzprint(chr(0xa2))�r�envr�¢z
ascii:replace�?rX)rrErTrRsUnicodeEncodeError:s'\xa2'zascii:z:surrogateescapezprint(chr(0xdcbd))��)�dict�os�environ�
subprocess�Popenrr��PIPE�communicate�strip�linesep�encoderrC)rrT�prrYr8rrr�test_ioencoding|sL
�����zSysModuleTest.test_ioencodingz*requires OS support of non-ASCII encodingsFz$requires FS encoding to match localecCsZttj�}d|d<tjtjddtjgtj	|d�}|�
�d��}|�|t�
tj��dS)Nr
r\rQz	print(%a)rSr)rXrYrZr[r\rr�r�FS_NONASCIIr]r^r_r�fsencode)rrTrbrrrr�test_ioencoding_nonascii�s

��z&SysModuleTest.test_ioencoding_nonasciizTest is not venv-compatiblec	Cs�|�tj�tj�tj�tj�tj�tj��}tj	gd�tjtj
|d�}|��d}|���
d�}|��|�|dttj�dd��g�dS)N)ZnonexistentrQzEimport sys; print(sys.executable.encode("ascii", "backslashreplace")))r�r�cwdr�ASCIIzb''rX�backslashreplace)rrY�path�abspathrr��dirname�realpathr[r\r]r^r_�decoder�rCrEra)rZ
python_dirrbrr�rrr�test_executable�s
�"zSysModuleTest.test_executableNcCs,|�|�t�|�|r|�||�dSdSr%)ZassertIsNotNone�codecs�lookupr�rZfs_encodingrYrrr�check_fsencoding�s


�zSysModuleTest.check_fsencodingcCs,t��}tjdkrd}nd}|�||�dS)N�darwinzutf-8)r�getfilesystemencodingr�rsrrrrr�test_getfilesystemencoding�s

z(SysModuleTest.test_getfilesystemencodingc
Cs�tj��}||d<d|d<d�d�}tjddd|g}|r!|�d	�|dur*||d
<n|�d
d�tj	|tj
tj|dd�}|��\}}	|S)
N�LC_ALL�0ZPYTHONCOERCECLOCALE�
)�
import syszdef dump(name):z    std = getattr(sys, name)z(    print("%s: %s" % (name, std.errors))z
dump("stdin")zdump("stdout")zdump("stderr")�-Xzutf8=0rQ�-Ir\T)rrErT�universal_newlines)
rYrZ�copyr�rr�r�r�r[r\r]�STDOUTr^)
r�localer=r"rTr"�argsrbrrErrr�c_locale_get_error_handler�s$

	

�z(SysModuleTest.c_locale_get_error_handlercCs�|j|dd�}|�|d�|j|dd�}|�|d�|j|dd�}|�|d�|j|d	d�}|�|d�|j|d
d�}|�|d�|j|dd�}|�|d�dS)NT)r=zHstdin: surrogateescape
stdout: surrogateescape
stderr: backslashreplace
z:ignore)r"z6stdin: ignore
stdout: ignore
stderr: backslashreplace
z	iso8859-1z6stdin: strict
stdout: strict
stderr: backslashreplace
z
iso8859-1:�:r
)r�r)rr�rrrr�check_locale_surrogateescape�s0������z*SysModuleTest.check_locale_surrogateescapecC�|�d�dS)N�C�r�rNrrr�test_c_locale_surrogateescaperPz+SysModuleTest.test_c_locale_surrogateescapecCr�)NZPOSIXr�rNrrr�!test_posix_locale_surrogateescaperPz/SysModuleTest.test_posix_locale_surrogateescapecCs�ddddd�}|�ttjd��|�ttjd��|�ttjd��|�ttjd	��tjj}|�|dd
�|j|jf�|jd>|jd>B|jd
>B||j	d>B|j
d>B}|�tjj|�|�tjjtjj�
��dS)Nr�r���r�rrr��	cache_tagr���r�r�r)rrr�implementationrrr�r�rrrr�r�lower)rZlevelsrr�rrr�test_implementation"s$���

�z!SysModuleTest.test_implementationcCsBddlm}ddg}||�\}}}|�d|�|�ttjd�dS)Nr)rrQz#import sys; sys._debugmallocstats()sfree PyDictObjectsT)�test.support.script_helperrrCrrr�_debugmallocstats)rrr��retrr8rrr�test_debugmallocstats8s
z#SysModuleTest.test_debugmallocstats�getallocatedblocksz0sys.getallocatedblocks unavailable on this buildc
Cszddl}Wn
tyt��}Yn wz|��}Wnty.}zd}WYd}~n	d}~ww|dv}t��}|�t	|�t
�|rH|�|d�n|�|d�z
|�
|t���Wn	tyaYnwt��t��}|�||�t��t��}|�|t|d|d��dS)NrT)ZpymallocZpymalloc_debugrt)�	_testcapi�ImportErrorr�
with_pymallocZpymem_getallocatorsnamerrr��assertIsr�r�r�r�r�r��AttributeError�gcZcollectZassertLessEqualrCr)rr�r�Z
alloc_namer7rf�br�rrr�test_getallocatedblocksCs8����z%SysModuleTest.test_getallocatedblockscCs8|�t��d�d}td|�\}}}|�|��d�dS)NFa�if 1:
            import sys

            class AtExit:
                is_finalizing = sys.is_finalizing
                print = print

                def __del__(self):
                    self.print(self.is_finalizing(), flush=True)

            # Keep a reference in the __main__ module namespace, so the
            # AtExit destructor will be called at Python exit
            ref = AtExit()
        rQsTrue)r�r�
is_finalizingrr�rstrip�rr"rZrrErrr�test_is_finalizinglsz SysModuleTest.test_is_finalizingcCs@d}td|�\}}}|��}|�d|d�|�d|d�dS)Nz�if 1:
            import sys
            class A:
                def __del__(self, sys=sys):
                    print(sys.flags)
                    print(sys.float_info)
            a = A()
            rQs	sys.flagsrssys.float_inforF)r�
splitlinesrC�rr"rZrr8rrr�test_issue20602�s
zSysModuleTest.test_issue20602cCsDd}td|�\}}}|�|d�|�|��d�|�|��d�dS)Nz�if 1:
            import struct, sys

            class C:
                def __init__(self):
                    self.pack = struct.pack
                def __del__(self):
                    self.pack('I', -42)

            sys.x = C()
            rQrrR)rrr�r�rrr�&test_sys_ignores_cleaning_up_user_data�s
z4SysModuleTest.test_sys_ignores_cleaning_up_user_data�getandroidapilevelzneed sys.getandroidapilevel()cCs$t��}|�|t�|�|d�dS)Nr)rr�rcr�r�)r�levelrrr�test_getandroidapilevel�sz%SysModuleTest.test_getandroidapilevelcs�d���fdd�}gd�}|d|�|d|�|d|dd�|dd��|d|dd�|dd��|d	|d
g�|d
|d
g�|dd>|�|d
d>|d
g�|d|�dS)Nz�if 1:
            import sys
            def f1():
                1 / 0
            def f2():
                f1()
            sys.tracebacklimit = %r
            f2()
        cs<tjtjd�|gtjd�}|��d}��|��|�dS)NrQ)rErF)r[r\rr�r]r^rr�)�tracebacklimitrYrbr�r"rrr�check�s
�z4SysModuleTest.test_sys_tracebacklimit.<locals>.check)s"Traceback (most recent call last):s&  File "<string>", line 8, in <module>s   File "<string>", line 6, in f2s   File "<string>", line 4, in f1s#ZeroDivisionError: division by zeror�r�r�rFr���rxr)rr�r�rr�r�test_sys_tracebacklimit�s	

z%SysModuleTest.test_sys_tracebacklimitcCs |�ttj�tttj���dSr%)rr�r�	meta_pathr�rNrrr�test_no_duplicates_in_meta_path�s z-SysModuleTest.test_no_duplicates_in_meta_pathZ_enablelegacywindowsfsencodingz*needs sys._enablelegacywindowsfsencoding()cCs:d}tdd�|��\}}}|�dd���}|�|d�dS)N)rzz$sys._enablelegacywindowsfsencoding()zCprint(sys.getfilesystemencoding(), sys.getfilesystemencodeerrors())rQz; rX�replacezmbcs replace)rr�rnr�rr�rrr�#test__enablelegacywindowsfsencoding�sz1SysModuleTest.test__enablelegacywindowsfsencodingcCs`t�d�}tjdddd|dg}tj|dddd�}tddg�t|�g}|�|j�	��
�||�dS)	Nz]
            import sys
            print(sys.argv)
            print(sys.orig_argv)
        r|r{�utf8rQrT)r��capture_outputr=)�textwrap�dedentrr�r[�runrErrr�r�)rr"r��procrYrrr�test_orig_argv�s

��zSysModuleTest.test_orig_argvcCs*|�tjt�tjD]}|�|t�q
dSr%)rcr�stdlib_module_names�	frozensetrd)rrrrr�test_module_names�s
�zSysModuleTest.test_module_namesr%)FN)Br-r.r/rOrarerjrnr{rHr�cpython_onlyr�r�r��unittestZ
skipUnlessrrr�Z
refcount_testr�r�rZreap_threadsr�r�rr r$r0rHrJrLrNrOrQrcrrdrur��getpreferredencodingrfZskipIfrr
rorsrvr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrLqs�B	
�
	
	
@
B]

+��
�


&

�
'�
!�
rLc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�UnraisableHookTestcCsPddl}ddl}d|��}z|�|||�|jt|�||j||d�Wd}Sd}w)Nr�Exception ignored )r�r��
exc_traceback�err_msg�object)r��types�write_unraisable_exc�SimpleNamespacer��
__traceback__)rr7r�r(r�r�Zerr_msg2rrrr��s

�z'UnraisableHookTest.write_unraisable_exccCsdD]~}|j|d��nd}tj�d��*}tj�tdtj��|�td�||�Wd�n1s1wYWd�n1s@wY|�	�}|dur[|�
d|�d|�d	�|�n
|�
d
|�d	�|�|�
d|�|�
d|�Wd�n1s{wYqdS)
N)Nz
original hook)r�z	an objectrE�unraisablehookr	r�z: ryzException ignored in: �#Traceback (most recent call last):
r1)�subTestrHrrIr+r�__unraisablehook__r�r'rrC)rr�r(rEr8rrr�test_original_unraisablehook�s(
�������z/UnraisableHookTest.test_original_unraisablehookcsVGdd�d�}Gdd�dt��G�fdd�d�}||fD]�}|�|��}|�}tj���"}tj�tdtj��	~Wd�n1sBwYWd�n1sQwY|��}|�	d|�|�	|j
j|�|�	d	|�|�	d
|�||ur�|�	d|�|�	d|�n|�	d|�|�	d
|�|�|�
d��Wd�n1s�wYqdS)Nc@r%)zFUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenDelcSstd�}|�)N�
del is brokenr&�rr7rrr�__del__szNUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenDel.__del__N�r-r.r/r�rrrr�	BrokenDelr)r�c@r%)zOUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenStrExceptioncS�td��)Nzstr() is broken��	ExceptionrNrrr�__str__�zWUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenStrException.__str__N)r-r.r/r�rrrr�BrokenStrExceptionr)r�cseZdZ�fdd�ZdS)zOUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenExceptionDelcs
��}|�r%rr��r�rrr�szWUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenExceptionDel.__del__Nr�rr�rr�BrokenExceptionDelsr�r�zException ignoredztest_sys.pyz	raise excz<exception str() failed>r'r�ry)r�r�rHrr2r+rr�rrCr�r/rr5)rr�r�Z
test_classr(rE�reportrr�r� test_original_unraisablehook_errs:
�������z3UnraisableHookTest.test_original_unraisablehook_errc	Cs�Gdd�d�}tj���+}tj�tdtj��|�|j��dd�}Wd�n1s+wYWd�n1s:wY|�	�}d}|�
|�d�|�dS)Nc@seZdZGdd�d�ZdS)zMUnraisableHookTest.test_original_unraisablehook_exception_qualname.<locals>.Ac@seZdZGdd�de�ZdS)zOUnraisableHookTest.test_original_unraisablehook_exception_qualname.<locals>.A.Bc@�eZdZdS)zQUnraisableHookTest.test_original_unraisablehook_exception_qualname.<locals>.A.B.XN�r-r.r/rrrr�X9sr�N)r-r.r/r�r�rrrr�B8sr�N)r-r.r/r�rrrr�A7sr�r�r;r(�/test_original_unraisablehook_exception_qualnamez.<locals>.A.B.X)rHrr2r+rr�r�r�r�rrC)rr�rErYr�ZtestNamerrrr�6s
�����zBUnraisableHookTest.test_original_unraisablehook_exception_qualnamec	Cs�td�}tj�tdtj��+|�t��
t�|�Wd�n1s#wYWd�dSWd�dS1s;wYdS)Nr	r�)	r'rHrr+rr�rrr�r�rrr�'test_original_unraisablehook_wrong_typeEs
���"�z:UnraisableHookTest.test_original_unraisablehook_wrong_typecs�d��fdd�}t�}zEtj�td|��'|�td�d|�}d��D]}|�t	�|�t	||��|f�q"Wd�n1s>wYWd}d�dSWd}d�dSd}d�w)Ncs|�dSr%r�r��Z	hook_argsrr�	hook_funcOsz@UnraisableHookTest.test_custom_unraisablehook.<locals>.hook_funcr�r	zcustom hookz/exc_type exc_value exc_traceback err_msg object)
r�rHrr+rr�r'�splitrrD)rr�r(rYrFrr�r�test_custom_unraisablehookLs,
����	�	�z-UnraisableHookTest.test_custom_unraisablehookc	Cs�dd�}tj�d��)}tj�td|��|�td�dd�Wd�n1s'wYWd�n1s6wY|��}|�d|�d�|�|�d	|�|�d
|�dS)NcWr�)Nzhook_func failedr�r�rrrr�br�zEUnraisableHookTest.test_custom_unraisablehook_fail.<locals>.hook_funcrEr�r	zcustom hook failz)Exception ignored in sys.unraisablehook: ryr�zException: hook_func failed
)	rHrrIr+rr�r'rrC)rr�rEr8rrr�test_custom_unraisablehook_failas"
������z2UnraisableHookTest.test_custom_unraisablehook_failN)
r-r.r/r�r�r�r�r�r�r�rrrrr��s(r�csleZdZdd�ZejjZdd�Zdd�Zdd�Z	�fd	d
�Z
dd�Zd
d�Zdd�Z
dd�Zdd�Z�ZS)�
SizeofTestcCs*t�d�|_tjj|_ddl}|j|_	dS)N�Pr)
�struct�calcsizer�rr�r��	longdigitr�ZSIZEOF_PYGC_HEAD�gc_headsize)rr�rrr�setUpus
zSizeofTest.setUpcCsHtjj}|j}|�t�d�|d�|j�|�t�g�|d�|�dS)NTr
�Pn)rHr�calcvobjsizer�rr�	getsizeofr�)r�vsizeZgc_header_sizerrr�test_gc_head_size}szSizeofTest.test_gc_head_sizecCs�Gdd�d�}|�ttj|��Gdd�d�}|�ttj|��dg}|�t�|�|�|�Gdd�d�}|�ttj|��|�t�|�|�|�Gdd	�d	t�}|�t�|tj��tj|j	�|�t
��t�|tjd
��Wd�n1s{wY|�t��t�|d��Wd�n1s�wY|�tt
f��t�|tjd
��Wd�dS1s�wYdS)Nc@r%)z)SizeofTest.test_errors.<locals>.BadSizeofcSr$r%r&rNrrr�
__sizeof__�r*z4SizeofTest.test_errors.<locals>.BadSizeof.__sizeof__N�r-r.r/r�rrrr�	BadSizeof�r)r�c@r%)z-SizeofTest.test_errors.<locals>.InvalidSizeofcS�dSr%rrNrrrr��r*z8SizeofTest.test_errors.<locals>.InvalidSizeof.__sizeof__Nr�rrrr�
InvalidSizeof�r)r��sentinelc@r%)z+SizeofTest.test_errors.<locals>.FloatSizeofcSr&)Ng@rrNrrrr��r*z6SizeofTest.test_errors.<locals>.FloatSizeof.__sizeof__Nr�rrrr�FloatSizeof�r)r�c@r%)z.SizeofTest.test_errors.<locals>.OverflowSizeofcSst|�Sr%)r�rNrrrr��r�z9SizeofTest.test_errors.<locals>.OverflowSizeof.__sizeof__Nr�rrrr�OverflowSizeof�r)r�rFr�)rr'rr�rr�r�rrr��
OverflowError)rr�r�r�r�r�rrr�test_errors�s,
���"�zSizeofTest.test_errorscCsFtjj}|�t�d�|d�|j�|�t�dd�|d�|j�dS)NTr
r�)rHrr�rrr�r�)r�sizerrr�test_default�s"zSizeofTest.test_defaultc'	s�	tj}tjj�tjj}�j��d|d��j��t�d��dddg}|D]}t	|�}�||d�|�
��q'�tt	���d���d|d	�d
��d|d	�d�d
d�}�|�jd�d���fdd�}||�j
�d��||j
�d��dd�}||j
�d�|d	���tdd
��d���tj�d��ddl}	�|	jj�d��ddl}
�|
jj�d���tj�d���ij�d���i�d���dd
i�d�|d�dd|d ��d
d!d"d#dd$d%dd&�}�|�d�|d�d'd(|d ���i���d���i���d���i���d���ti��d)���ti����d)���ti����d)���ti����d)��Gd*d+�d+t�}�|j�d���t��d,���t ddddd��d-���t!ddddd��d-���t"ddd
d��d-���t#�d��ddl$}
ddl%}|
�&|j'j(�}�|�d.���t)g��d/���t*d��d���t+d��d0���t,j-|d��j.tt,j-��ddl/}d1}|�0�}t|j1j2�}t|j1j3�}|j1j4|j1j5||d
}�||d2|d3d|d��d4d5�}�|�d6��G��fd7d8�d8�}d9d:�}�|��d;���td<��d=��ddl6}�|�7dd��d���t8g�|d>���t8d
g�|d>�d!�j.��t8d
d!g�|d>�d!�j.��t8gd?��|d>�d#�j.��tg��d=���t*g��d���d|d���d
|d��j��d@|d��j�d!t,j9j:}�t|�|d�d!�j��t|d!d
�|d�d!�j��t|d!�|d�d"�j��t;�dA���d�d���t<�d���t��d��G��fdBd+�d+t�}�tt=d
���dC���t*d��d���t=d
��dD���t=dE��dD��d}gt=d(�t=dF�g}�dG|ddH�}|D]Q}t|�}|dk�rGd
}|d!}|}||k�r[|d
>}||k�sR|dk�rp�t>|�|��t?|�|��q:�t>|�|||d���t?|�|||d���q:�tt>���dI���t@d��dJ���tAt��dJ���dK|d���d?|d�d"�j.�dL}||�}�t|�||dM�}GdNdO�dOt�}�|||dP�dd|d ���|�j�d�d�j.�|�} d
| _B| _C| _D| _E| _F| _G| _H| _I�|||dP�d'd(|d ���|�j�d�d(�j.�gdQ�}dR}!|!dS}"|"d}#|D]L}tJtK|��}$|$dTk�rU�|!�t|�d
}%n.|$dUk�re�|"�t|�d
}%n|$dVk�rw�|"�d!t|�d
}%n�|"�d#t|�d
}%�||%��q=tLdW�}�|�|"�d#�tM|dXdY��|�|"�d#d#�ddlN}&�|&�Ot��dZ���|&�Pt��dZ��dS)[NTr
Z5PrR�ui��Zn2PiZnPrirFs
xxxxxxxxxxr�csd��fdd�}|S)Nr	c��Sr%rr�rrr�inner�r*z<SizeofTest.test_objecttypes.<locals>.get_cell.<locals>.innerr)rrrr�get_cell�sz-SizeofTest.test_objecttypes.<locals>.get_cellrr�cs��t�|�|�dSr%)r�rr�)rfZ
expected_sizerNrr�check_code_size�r�z4SizeofTest.test_objecttypes.<locals>.check_code_sizeZ6i13Pcs�fdd�}|S)Ncrr%rrrrrr�r*z=SizeofTest.test_objecttypes.<locals>.get_cell2.<locals>.innerr)rrrrr�	get_cell2�sz.SizeofTest.test_objecttypes.<locals>.get_cell2Z2dZ3PPPZ3PPZ3P2PZ2PZnQ2PrfZ2nP2nr�r�Zn2Pr�r�r���)rFr�r�r�r�r	r
r�r�r�ZP2nPnc@r�)�&SizeofTest.test_objecttypes.<locals>.CNr�rrrrr���r�Z5Pbz	5Pb 2P2nPZ32B2iBZn3Pr��Z
4Pi2c4P3icZ3icSr�r%rrrrr�func�z)SizeofTest.test_objecttypes.<locals>.funcZ14Pcs@eZdZedd��Zedd��Z�e�d���e�d��dS)z&SizeofTest.test_objecttypes.<locals>.ccSr�r%rrrrr�foo�z*SizeofTest.test_objecttypes.<locals>.c.foocSr�r%r)�clsrrr�barrz*SizeofTest.test_objecttypes.<locals>.c.barZPPN)r-r.r/�staticmethodr�classmethodrr�r�rrrr�s

r�css�dVdS)NrFrrrrr�get_gen&s�
z,SizeofTest.test_objecttypes.<locals>.get_genZP2PPP4Pr*ZlPr�)rFr�r�r�ZPnPPPcs@eZdZdd�Zdd�Zdd�Zeeeed�Z�e�d��d	S)
rcSs|jSr%�Z_C__xrNrrr�getxLsz+SizeofTest.test_objecttypes.<locals>.C.getxcSs
||_dSr%r)r�valuerrr�setxMs
z+SizeofTest.test_objecttypes.<locals>.C.setxcSs|`dSr%rrNrrr�delxNsz+SizeofTest.test_objecttypes.<locals>.C.delxr
Z5PiN)r-r.r/rrr�propertyrrrrrr�KsZ4lZ4Pi�rtZ3nPZ2nPZP3n�3PrZP2nPI13Pl4Pn9Pn11PIPPZ4P36P3P10P2P5Pc@r�)z2SizeofTest.test_objecttypes.<locals>.newstyleclassNr�rrrr�
newstyleclass�rrZ2nP2n0P)Zd1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111udÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuPĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀu,￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿ux𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀u�􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿ZnnbPZnPnr��ii@z<stdin>r!Z2Pn2P)Qr�r�rHr�calcobjsizer��check_sizeofr�r��	bytearray�	__alloc__�iter�__closure__r��complexrdr��datetimeZ	timedeltaZdays�collections�defaultdict�default_factoryr��__add__�__iter__�keys�values�itemsr��__dict__�
BaseException�UnicodeEncodeError�UnicodeDecodeError�UnicodeTranslateError�EllipsisrpZencodings.iso8859_3�
charmap_build�	iso8859_3Zdecoding_tabler��reversed�floatrr�r�r2�currentframer��co_cellvars�co_freevars�co_stacksize�
co_nlocals�re�finditerr�r�r�r��NotImplementedrr�r��slice�superrfr�r�r��err�g�h�ord�max�chrr �weakref�ref�proxy)'rr�r�Zsamples�samplerrrrr(r)Zlongdictr�rp�	encodingsr2ZCO_MAXBLOCKSZncellsZnfrees�extrasrr�rr@ZPyLong_BASEZ
PySet_MINSIZEr.Zminused�tmpZnewsize�fmtr�oZasciifieldsZ
compactfieldsZ
unicodefieldsZmaxchar�LrK��	__class__)r�rrr�test_objecttypes�s.*& ���"  $ 	

�

�"0"


zSizeofTest.test_objecttypescCsHt�|�t�|�}t�|�rt�|�s||j7}|�t�|�|�dSr%)rr�r�r�r�Z
is_trackedr�r)rr(�base�extrarYrrr�check_slots�s
zSizeofTest.check_slotsc	Cs�|j}Gdd�dt�}||�t�d�Gdd�dt�}||gd�dgid�Gdd	�d	t�}||�gd�Gd
d�dt�}||�t�d�Gdd
�d
t�}||�t�d�ddlm}Gdd�d|�}||gd�|gd�d�dS)Nc@�eZdZdZdS)z!SizeofTest.test_slots.<locals>.BA�rfr�r�N�r-r.r/�	__slots__rrrr�BA��r_rc@r[)z SizeofTest.test_slots.<locals>.Dr\Nr]rrrr�D�r`rarrc@r[)z SizeofTest.test_slots.<locals>.Lr\Nr]rrrrrT�r`rTc@r[)z SizeofTest.test_slots.<locals>.Sr\Nr]rrrrr(�r`r(c@r[)z!SizeofTest.test_slots.<locals>.FSr\Nr]rrrr�FS�r`rbr)�OrderedDictc@r[)z!SizeofTest.test_slots.<locals>.ODr\Nr]rrrr�OD�r`rd)rZr#rXr�r�r�r)rc)	rr�r_rarTr(rbrcrdrrr�
test_slots�szSizeofTest.test_slotscCs�tjj}tjj}|j}ddl}||��|d��zt�ty4t�	�d}|dur2|||d��Ynw|tj
|d�|jttj
��dS)Nrr�r�Z2P2ir
)
rHrr!r�r"�_astZASTrrr4rBr�r�)rrr�r�rf�tbrrr�test_pythontypes�s��$zSizeofTest.test_pythontypescCs�t��}|�|j�|�|j�dd�}tj|d�t��}|�|j|�|�|d|�|�|jd�|�|dd�dd�}tj|d�t��}|�|j|�|�|d|�|�|j|�|�|d|�tj|�t��}|�|j�|�|j�dS)NcWr�r%r�rfrrr�<lambda>�rz0SizeofTest.test_asyncgen_hooks.<locals>.<lambda>)�	firstiterrrFcWr�r%rrirrrrj�r)�	finalizer)r�get_asyncgen_hooksr^rkrl�set_asyncgen_hooksr�)r�oldrkZhooksrlZcurrrr�test_asyncgen_hooks�s*
zSizeofTest.test_asyncgen_hookscCs6t�d�}td|�\}}}|�|d�|�|d�dS)Nz�
            import sys
            class MyStderr:
                def write(self, s):
                    sys.stderr = None
            sys.stderr = MyStderr()
            1/0
        rQrR)r�r�rrr�rrr�/test_changing_sys_stderr_and_removing_references
z:SizeofTest.test_changing_sys_stderr_and_removing_reference)r-r.r/r�rHrr"r�r�rrWrZrerhrprq�
__classcell__rrrUrr�rs	
r��__main__)rrpr�r�r�rYr�r[rrZtest.supportrHrrr�rrrr�r�r>r+ZTestCaserr0rLr�r�r�r-�mainrrrr�<module>sP/(!�