Your IP : 216.73.216.85


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

U

i�f��@svddlZddlZddlZddlZddlmZGdd�dej�ZGdd�dej�ZGdd�dej�Z	e
d	krre��dS)
�N)�supportc@sXeZdZdZddd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
ejdd��Z
dS)�	ClearTestz"
    Tests for frame.clear().
    �cKsdddS�N�r�)�self�x�kwargsrr�4/opt/alt/python38/lib64/python3.8/test/test_frame.py�innerszClearTest.innerc
Ks<z|jf|�Wn&tk
r6}z|}W5d}~XYnX|S�N)r�ZeroDivisionError)rr
�e�excrrr�outers
zClearTest.outercCs|dk	r|j��|j}qdS)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@seZdZdS)z&ClearTest.test_clear_locals.<locals>.CN��__name__�
__module__�__qualname__rrrr�C!sr��c)	�weakref�refrrZ
gc_collect�assertIsNotr�
__traceback__�assertIs�rrrZwrrrrr�test_clear_locals s
zClearTest.test_clear_localscs@d��fdd�}|�}t|�|���|j��|���dS)NFc3szdVt�W5d�XdS)NT)rr��endlyrr�g1s
z)ClearTest.test_clear_generator.<locals>.g)�next�assertFalse�gi_framer�
assertTrue)rr'�genrr%r�test_clear_generator/s

zClearTest.test_clear_generatorc
CszzddWn*tk
r6}z|jj}W5d}~XYnX|�t��|��W5QRX|�t��|j��W5QRXdSr�rr!r�assertRaises�RuntimeErrorr�f_back)rr�frrr�test_clear_executing?szClearTest.test_clear_executingcs@d���fdd�}|�}t|�}����|������dS)NFc3s�z�zddWnntk
r|}zP|jj}��t��|��W5QRX��t��|j��W5QRX|VW5d}~XYnXW5d�XdS)NTrrr.)rr2�r&rrrr'Msz3ClearTest.test_clear_executing_generator.<locals>.g)r(r)rr+)rr'r,r2rr4r�test_clear_executing_generatorJs

z(ClearTest.test_clear_executing_generatorc	Cslt���ZGdd�d�}|�}t�|�}|j|d�}~|�d|��|�|j�|�d|��W5QRXdS)Nc@seZdZdS)z)ClearTest.test_clear_refcycles.<locals>.CNrrrrrresrr)	rZ
disable_gcrrrr rr!r"r#rrr�test_clear_refcyclesas

zClearTest.test_clear_refcyclesN)r)rrr�__doc__rrrr$r-r3r5rZcpython_onlyr6rrrrr	s
rc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�FrameAttrsTestc
Cs\dd�}z
|�WnDtk
rV}z&|j}g}|rF|�|j�|j}q.W5d}~XYnX|S)Ncsd�d}�fdd�}|�S)Nr�cs�d}ddd}dS�N�rr�	r��z�t�r	rrrvsz8FrameAttrsTest.make_frames.<locals>.outer.<locals>.innerr��yrrr@rrssz)FrameAttrsTest.make_frames.<locals>.outer)rr!�appendrr)rrrr�framesrrr�make_framesrs
zFrameAttrsTest.make_framescCsV|��\}}}|j}|�|�d�tj�|�|ddd��|j}|�|ddd��dS)Nrrr9)r	rB�)r	r>)rE�f_localsZassertIsInstance�pop�types�FunctionType�assertEqual)rr2rrZouter_localsZinner_localsrrr�test_locals�szFrameAttrsTest.test_localscCs>|��\}}}|��|��|�|ji�|�|ji�dSr
)rErrKrG�rr2rrrrrr$�s
z FrameAttrsTest.test_clear_localscCsJ|��\}}}|j|j|��|��|�|ji�|�|ji�dSr
)rErGrrKrMrrr�test_locals_clear_locals�sz'FrameAttrsTest.test_locals_clear_localsc	Cs,|��\}}}|�t��
|`W5QRXdSr
)rEr/�AttributeError�f_lineno)rr2�_rrr�test_f_lineno_del_segfault�sz)FrameAttrsTest.test_f_lineno_del_segfaultN)rrrrErLr$rNrRrrrrr8ps

r8c@seZdZdZdd�ZdS)�ReprTestz 
    Tests for repr(frame).
    c

Cs�dd�}|jj}z
|�WnDtk
r^}z&|j}g}|rN|�|j�|j}q6W5d}~XYnX|�d�|\}}}t�	t
t��}	|�t
|�d|	|df�|�t
|�d|	|df�|�t
|�d|	|d	f�dS)
Ncsd�d}�fdd�}|�S)Nrr9cs�d}ddd}dSr:rr=r@rrr�sz0ReprTest.test_repr.<locals>.outer.<locals>.innerrrArr@rr�sz!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>$rFz9^<frame at 0x[0-9a-fA-F]+, file %s, line %d, code inner>$r)
�__code__�co_firstlinenorr!rCrrZfail�re�escape�repr�__file__ZassertRegex)
rr�offsetrrrDZf_thisZf_outerZf_innerZ	file_reprrrr�	test_repr�s8	




��

��

��zReprTest.test_reprN)rrrr7r\rrrrrS�srS�__main__)rWrIZunittestrZtestrZTestCaserr8rSr�mainrrrr�<module>sg5(