Your IP : 216.73.217.32


Current Path : /opt/alt/python310/lib64/python3.10/test/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/test/__pycache__/test_frame.cpython-310.pyc

o

0�i��@s�ddlZddlZddlZddlZddlZddlmZGdd�dej�ZGdd�dej�Z	Gdd�dej�Z
ed	kr?e��dSdS)
�N)�supportc@s`eZdZdZddd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zej
dd��ZdS)�	ClearTestz"
    Tests for frame.clear().
    �cKsdddS�N�r�)�self�x�kwargsrr�6/opt/alt/python310/lib64/python3.10/test/test_frame.py�innerszClearTest.innerc
KsBz|jdi|��W|Sty }z	|}WYd}~|Sd}~ww)Nr)r�ZeroDivisionError)rr
�e�excrrr�outers���zClearTest.outercCs(|dur|j��|j}|dusdSdS)z2
        Clear all frames in a traceback.
        N)�tb_frame�clear�tb_next)r�tbrrr�clear_traceback_framess
�z ClearTest.clear_traceback_framescCshGdd�d�}|�}t�|�}|j|d�}~t��|�d|��|�|j�t��|�d|��dS)Nc@�eZdZdS)z&ClearTest.test_clear_locals.<locals>.CN��__name__�
__module__�__qualname__rrrr�C"�r��c)	�weakref�refrrZ
gc_collect�assertIsNotr�
__traceback__�assertIs�rrrZwrrrrr�test_clear_locals!s
zClearTest.test_clear_localscsBd���fdd�}|�}t|�����|j������dS)NFc3s"�zdV���Wd�dSd�w)NT)rr�Zendlyrrr�g2s
�
z)ClearTest.test_clear_generator.<locals>.g)�next�assertFalse�gi_framer�
assertTrue)rr'�genrr&r�test_clear_generator0s

zClearTest.test_clear_generatorc
Cs�zddWnty}z
|jj}WYd}~nd}~ww|�t��|��Wd�n1s1wY|�t��|j��Wd�dS1sLwYdSr�r
r"r�assertRaises�RuntimeErrorr�f_back)rr�frrr�test_clear_executing@s��
�"�zClearTest.test_clear_executingcs@d���fdd�}|�}t|�}����|������dS)NFc3s��z]zddWnLtyT}z@|jj}��t��|��Wd�n1s(wY��t��
|j��Wd�n1sBwY|VWYd}~n
d}~wwWd�dSWd�dSd�w)NrrTr.)rr2r&rrr'Ns$�
�����	�z3ClearTest.test_clear_executing_generator.<locals>.g)r(r)rr+)rr'r,r2rr&r�test_clear_executing_generatorKs

z(ClearTest.test_clear_executing_generatorcsT�fdd���fdd�}gd�}g�|d�|��|�g�|d�|��|�dS)Ncs"t�d�}��|j|jj�dS)Nr)�sys�	_getframe�append�f_lineno�f_code�co_firstlineno)r2)�linesrr�record_linecs
z7ClearTest.test_lineno_with_tracing.<locals>.record_linecs&��|rdt�d�_����dS)NTr)r5r6�f_trace)Ztrace)r<rr�testgs

z0ClearTest.test_lineno_with_tracing.<locals>.test)r�rFT)�assertEqual)rr>Zexpected_linesr)r;r<r�test_lineno_with_tracingbsz"ClearTest.test_lineno_with_tracingcCs�t���3Gdd�d�}|�}t�|�}|j|d�}~|�d|��|�|j�|�d|��Wd�dS1s:wYdS)Nc@r)z)ClearTest.test_clear_refcycles.<locals>.CNrrrrrrzrrr)	rZ
disable_gcrr rr!rr"r#r$rrr�test_clear_refcyclesvs

"�zClearTest.test_clear_refcyclesN)r)rrr�__doc__rrrr%r-r3r4rArZcpython_onlyrBrrrrr
s
rc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�FrameAttrsTestc
Csndd�}z|�W|Sty6}z |j}g}|r+|�|j�|j}|sWYd}~|SWYd}~|Sd}~ww)Nc�d�d}�fdd�}|�S)Nr�c��d}ddd}dS�N�rr�	r��z�t�r	rrr��z8FrameAttrsTest.make_frames.<locals>.outer.<locals>.innerr��yrrrNrr��z)FrameAttrsTest.make_frames.<locals>.outer)r
r"r7rr)rrrr�framesrrr�make_frames�s ��
���zFrameAttrsTest.make_framescCsV|��\}}}|j}|�|�d�tj�|�|ddd��|j}|�|ddd��dS)NrrrF)r	rQ�)r	rL)rT�f_localsZassertIsInstance�pop�types�FunctionTyper@)rr2rrZouter_localsZinner_localsrrr�test_locals�szFrameAttrsTest.test_localscCs>|��\}}}|��|��|�|ji�|�|ji�dS�N)rTrr@rV�rr2rrrrrr%�s
z FrameAttrsTest.test_clear_localscCsJ|��\}}}|j|j|��|��|�|ji�|�|ji�dSr[)rTrVrr@r\rrr�test_locals_clear_locals�sz'FrameAttrsTest.test_locals_clear_localscCsB|��\}}}|�t��|`Wd�dS1swYdSr[)rTr/�AttributeErrorr8)rr2�_rrr�test_f_lineno_del_segfault�s"�z)FrameAttrsTest.test_f_lineno_del_segfaultN)rrrrTrZr%r]r`rrrrrD�s
rDc@seZdZdZdd�ZdS)�ReprTestz 
    Tests for repr(frame).
    c

Cs�dd�}|jj}z|�Wn$ty1}z|j}g}|r'|�|j�|j}|sWYd}~n
d}~ww|�d�|\}}}t�	t
t��}	|�t
|�d|	|df�|�t
|�d|	|df�|�t
|�d|	|d	f�dS)
NcrE)NrrFcrGrHrrKrNrrr�rOz0ReprTest.test_repr.<locals>.outer.<locals>.innerrrPrrNrr�rRz!ReprTest.test_repr.<locals>.outerzshould have raisedz=^<frame at 0x[0-9a-fA-F]+, file %s, line %d, code test_repr>$�z9^<frame at 0x[0-9a-fA-F]+, file %s, line %d, code outer>$rUz9^<frame at 0x[0-9a-fA-F]+, file %s, line %d, code inner>$r)
�__code__r:r
r"r7rrZfail�re�escape�repr�__file__ZassertRegex)
rr�offsetrrrSZf_thisZf_outerZf_innerZ	file_reprrrr�	test_repr�s>	
���



��

��

��zReprTest.test_reprN)rrrrCrirrrrra�sra�__main__)
rdr5rXZunittestrr>rZTestCaserrDrar�mainrrrr�<module>s{5(�