HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/test/__pycache__/test_frame.cpython-311.pyc
�

��Vcr'���ddlZddlZddlZddlZddlZddlZddlmZGd�dej��Z	Gd�dej��Z
Gd�dej��ZGd	�d
ej��Ze
dkrej��dSdS)�N)�supportc�j�eZdZdZdd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Ze
jd���Zd
S)�	ClearTestz"
    Tests for frame.clear().
    �c��ddzdS�N�r�)�self�x�kwargss   �#D:\Python311\Lib\test\test_frame.py�innerzClearTest.inners��	�!�����c�V�	|jdi|��n#t$r}|}Yd}~nd}~wwxYw|S)Nr
)r�ZeroDivisionError)rr
�e�excs    r�outerzClearTest.outersU��	��D�J� � �� � � � �� �	�	�	��C�C�C�C�C�C�����	�����
s�
�
&�!�&c�R�|�$|j���|j}|�"dSdS)z2
        Clear all frames in a traceback.
        N)�tb_frame�clear�tb_next)r�tbs  r�clear_traceback_framesz ClearTest.clear_traceback_framessE���	��K��������B��	�	�	�	�	rc��Gd�d��}|��}tj|��}|�|���}~tj��|�d|����|�|j��tj��|�d|����dS)Nc��eZdZdS)�&ClearTest.test_clear_locals.<locals>.CN��__name__�
__module__�__qualname__r
rr�Cr#��������Drr#��c)	�weakref�refrr�
gc_collect�assertIsNotr�
__traceback__�assertIs�rr#r&�wrrs     r�test_clear_localszClearTest.test_clear_locals"s���	�	�	�	�	�	�	�	�
�A�C�C��
�[��^�^���j�j�1�j�o�o��
����������r�r�t�t�$�$�$��#�#�C�$5�6�6�6�������
�
�d�B�B�D�D�!�!�!�!�!rc�z�Gd�d��}|��}|�|���}~|jj}|���|�|jd��|�|jd��|�|jd��|�|jd��dS)Nc��eZdZdS)�7ClearTest.test_clear_does_not_clear_specials.<locals>.CNrr
rrr#r22r$rr#r%)	rr+rrr*�f_code�f_locals�
f_builtins�	f_globals)rr#r&r�fs     r�"test_clear_does_not_clear_specialsz,ClearTest.test_clear_does_not_clear_specials1s���	�	�	�	�	�	�	�	�
�A�C�C���j�j�1�j�o�o��
���&��	���	�	�	������4�(�(�(������T�*�*�*������t�,�,�,������d�+�+�+�+�+rc�����d���fd�}|��}t|�������|j��������dS)NFc3�P�K�	dV�����d�dS#d�wxYw)NT)r)�endlyrs��r�gz)ClearTest.test_clear_generator.<locals>.g@s8�����
������
�
��������������s�!�%)�next�assertFalse�gi_framer�
assertTrue)rr<�genr;s`  @r�test_clear_generatorzClearTest.test_clear_generator>s������	�	�	�	�	�	��a�c�c���S�	�	�	�����������������������rc�~�	ddzn##t$r}|jj}Yd}~nd}~wwxYw|�t��5|���ddd��n#1swxYwY|�t��5|j���ddd��dS#1swxYwYdSr�rr+r�assertRaises�RuntimeErrorr�f_back)rrr7s   r�test_clear_executingzClearTest.test_clear_executingNsE��	)�
�a�C�C�C�� �	)�	)�	)���(�A�A�A�A�A�A�����	)����
�
�
�|�
,�
,�	�	�
�G�G�I�I�I�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�|�
,�
,�	�	�
�H�N�N����	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s4��
(�#�(�A&�&A*�-A*�B2�2B6�9B6c�����d���fd�}|��}t|��}�����|��������dS)NFc3��K�	ddzn�#t$r�}|jj}��t��5|���ddd��n#1swxYwY��t��5|j���ddd��n#1swxYwY|V�Yd}~nd}~wwxYwd�dS#d�wxYw)Nr	rTrD)rr7r;rs  ��rr<z3ClearTest.test_clear_executing_generator.<locals>.g\s\�����

��!�����$�
�
�
��O�,���&�&�|�4�4����G�G�I�I�I��������������������&�&�|�4�4�%�%��H�N�N�$�$�$�%�%�%�%�%�%�%�%�%�%�%����%�%�%�%��������������

��������������sr��C�
C�&B;�A�B;�A 	� B;�#A 	�$B;�B'�B;�'B+	�+B;�.B+	�/B;�6C�;C�C�C)r=r>rr@)rr<rAr7r;s`   @r�test_clear_executing_generatorz(ClearTest.test_clear_executing_generatorYsx������	�	�	�	�	�	��a�c�c����I�I���������	���	�	�	���������rc�����fd���fd�}gd�}g�|d��|��|��g�|d��|��|��dS)Nc�~��tjd��}��|j|jjz
��dS)Nr	)�sys�	_getframe�append�f_linenor3�co_firstlineno)r7�liness �r�record_linez7ClearTest.test_lineno_with_tracing.<locals>.record_lineqs6����
�a� � �A��L�L���A�H�$;�;�<�<�<�<�<rc�z�����|rdtjd��_������dS)NTr)rNrO�f_trace)�tracerTs �r�testz0ClearTest.test_lineno_with_tracing.<locals>.testusB����K�M�M�M��
0�+/��
�a� � �(��K�M�M�M��K�M�M�M�M�Mr)r	�rFT)�assertEqual)rrX�expected_linesrSrTs   @@r�test_lineno_with_tracingz"ClearTest.test_lineno_with_tracingps�����	=�	=�	=�	=�	=�	�	�	�	�	�#��������U���������/�/�/�����T�
�
�
������/�/�/�/�/rc��tj��5Gd�d��}|��}tj|��}|�|���}~|�d|����|�|j��|�d|����ddd��dS#1swxYwYdS)Nc��eZdZdS)�)ClearTest.test_clear_refcycles.<locals>.CNrr
rrr#r_�s�������rr#r%)	r�
disable_gcr'r(rr*rr+r,r-s     r�test_clear_refcycleszClearTest.test_clear_refcycles�s���
�
!�
!�		&�		&�
�
�
�
�
�
�
�
�����A���Q���B��*�*�q�*�/�/�C�����T�2�2�4�4�(�(�(��'�'��(9�:�:�:��M�M�$�����%�%�%�		&�		&�		&�		&�		&�		&�		&�		&�		&�		&�		&�		&����		&�		&�		&�		&�		&�		&s�BB:�:B>�B>N)r)r r!r"�__doc__rrrr/r8rBrHrKr\r�cpython_onlyrar
rrrrs�������������������
"�
"�
"�,�,�,���� 	�	�	����.0�0�0�(
��&�&���&�&�&rrc�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�FrameAttrsTestc��d�}	|��nE#t$r8}|j}g}|r#|�|j��|j}|�#Yd}~nd}~wwxYw|S)Nc�*��d�d}�fd�}|��S)Nr�c� ���dz}ddzd}dS�N�r	r�	r
��z�trs  �rrz8FrameAttrsTest.make_frames.<locals>.outer.<locals>.inner�������E���!������rr
��yrrs  @rrz)FrameAttrsTest.make_frames.<locals>.outer��3����A��A�
�
�
�
�
��5�7�7�Nr)rr+rPrr)rrrr�framess     r�make_frameszFrameAttrsTest.make_frames�s���	�	�	�	 ��E�G�G�G�G�� �	 �	 �	 ���B��F��
 ��
�
�b�k�*�*�*��Z���
 ����������	 �����
s�
�
A�.A
�
Ac��|���\}}}|j}|�|�d��tj��|�|ddd���|j}|�|ddd���dS)Nrrrh)rrr�)rrn)rur4�assertIsInstance�pop�types�FunctionTyperZ)rr7rr�outer_locals�inner_localss      r�test_localszFrameAttrsTest.test_locals�s����*�*�,�,���5�%��~�����l�.�.�w�7�7��9K�L�L�L�����Q�Q�'7�'7�8�8�8��~������Q�Q�'7�'7�8�8�8�8�8rc���|���\}}}|���|���|�|ji��|�|ji��dS�N)rurrZr4�rr7rrs    rr/z FrameAttrsTest.test_clear_locals�si���*�*�,�,���5�%�
���
�
�
�
���
�
�
�������,�,�,�������,�,�,�,�,rc��|���\}}}|j|j|���|���|�|ji��|�|ji��dSr�)rur4rrZr�s    r�test_locals_clear_localsz'FrameAttrsTest.test_locals_clear_locals�sw���*�*�,�,���5�%�
���
���
���
�
�
�
���
�
�
�������,�,�,�������,�,�,�,�,rc��|���\}}}|�t��5|`ddd��dS#1swxYwYdSr�)rurE�AttributeErrorrQ)rr7�_s   r�test_f_lineno_del_segfaultz)FrameAttrsTest.test_f_lineno_del_segfault�s����"�"�$�$���1�a�
�
�
�~�
.�
.�	�	��
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�A�A�
AN)r r!r"rur~r/r�r�r
rrrere�s_���������&9�9�9�-�-�-�-�-�-�����rrec��eZdZdZd�ZdS)�ReprTestz 
    Tests for repr(frame).
    c�J�d�}|jj}	|��|�d��nE#t$r8}|j}g}|r#|�|j��|j}|�#Yd}~nd}~wwxYw|\}}}tj	tt����}	|�t|��d|	|dzfz��|�t|��d|	|dzfz��|�t|��d|	|dzfz��dS)	Nc�*��d�d}�fd�}|��S)Nrrhc� ���dz}ddzd}dSrjr
rms  �rrz0ReprTest.test_repr.<locals>.outer.<locals>.inner�rprr
rqs  @rrz!ReprTest.test_repr.<locals>.outer�rsrzshould 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>$rwz9^<frame at 0x[0-9a-fA-F]+, file %s, line %d, code inner>$r)
�__code__rR�failrr+rPrr�re�escape�repr�__file__�assertRegex)
rr�offsetrrrt�f_this�f_outer�f_inner�	file_reprs
          r�	test_reprzReprTest.test_repr�sq��	�	�	���.��		,��E�G�G�G�
�I�I�*�+�+�+�+��!�	 �	 �	 ���B��F��
 ��
�
�b�k�*�*�*��Z���
 ����������	 ����$*� �����I�d�8�n�n�-�-�	�����f���Y�%�v��{�3�4�	5�	5�	5�	
����g���U�%�v��z�2�3�	4�	4�	4�	
����g���U�%�v��z�2�3�	4�	4�	4�	4�	4s�
1�
A3�.A.�.A3N)r r!r"rbr�r
rrr�r��s-�������� 4� 4� 4� 4� 4rr�c�4�eZdZd�Zejd���ZdS)�TestIncompleteFrameAreInvisiblec��ddl}|j|jg|j���R�|jddd��Gd�d��}d�}t	t
��}||��g}|�|��~~|��dS)Nrr	c��eZdZd�ZdS)�@TestIncompleteFrameAreInvisible.test_issue95818.<locals>.GCHelloc�$�td��dS)NzDestroyed from gc)�print)rs r�__del__zHTestIncompleteFrameAreInvisible.test_issue95818.<locals>.GCHello.__del__�s���)�*�*�*�*�*rN)r r!r"r�r
rr�GCHellor��s#������
+�
+�
+�
+�
+rr�c3�K�dV�dSr�r
r
rrrAz<TestIncompleteFrameAreInvisible.test_issue95818.<locals>.gen�s�����E�E�E�E�Er)�gc�
addCleanup�
set_threshold�
get_threshold�openr�rP)rr�r�rA�fd�ls      r�test_issue95818z/TestIncompleteFrameAreInvisible.test_issue95818�s����	�	�	�����(�>�+;�2�+;�+=�+=�>�>�>�>�����1�Q����	+�	+�	+�	+�	+�	+�	+�	+�	�	�	��(�^�^��
�����O��	��������
�������rc�|��	�d�}��	fd��d�}tj��}tjdd�}tj��}t	j��}	tj��|��}t|��tj��tj	ddd��t	j
|��tj����d�	tj��t|��|�
|j�	��tj	|�|tjdd�<t	j
|��|rtj��dSdS#tj	|�|tjdd�<t	j
|��|rtj��wwxYw)Nc��dS)z^
            Don't actually do anything, just force a frame object to be created.
            Nr
)�frame�event�args   rrWzGTestIncompleteFrameAreInvisible.test_sneaky_frame_object.<locals>.trace	s���rc�v��tj��j�tj����dS)z�
            Yo dawg, I heard you like frames, so I'm allocating a frame while
            you're allocating a frame, so you can have a frame while you have a
            frame!
            N)rNrOrGr��	callbacks�remove)�phase�info�callback�sneaky_frame_objects  ��rr�zJTestIncompleteFrameAreInvisible.test_sneaky_frame_object.<locals>.callbacks0���#&�-�/�/�"8���L����)�)�)�)�)rc3�K�	dV��r�r
r
rrr7zCTestIncompleteFrameAreInvisible.test_sneaky_frame_object.<locals>.fs����
�����
rr	r)r�r�r��	isenabledrN�gettrace�disabler=�collectr��settracerP�enabler,r?)
rrWr7�
old_threshold�
old_callbacks�old_enabled�	old_tracer<r�r�s
        @@r�test_sneaky_frame_objectz8TestIncompleteFrameAreInvisible.test_sneaky_frame_objects�����	�	�	�
		*�		*�		*�		*�		*�		*�	�	�	��(�*�*�
���Q�Q�Q��
��l�n�n���L�N�N�	�"	��J�L�L�L�����A���G�G�G�
�J�L�L�L���Q��1�%�%�%�
�L������L����)�)�)�"&���I�K�K�K���G�G�G�
�M�M�!�*�&9�:�:�:���m�,�,�+�B�L����O��L��#�#�#��
��	������
�
��
��m�,�,�+�B�L����O��L��#�#�#��
��	�����
���s�CE0�0AF;N)r r!r"r�rrcr�r
rrr�r��sB���������*
��<�<���<�<�<rr��__main__)r�r�rNrz�unittestr'rXr�TestCaserrer�r�r �mainr
rr�<module>r�s?��	�	�	�	�	�	�	�	�
�
�
�
�������������������E&�E&�E&�E&�E&��!�E&�E&�E&�P2�2�2�2�2�X�&�2�2�2�j%4�%4�%4�%4�%4�x� �%4�%4�%4�NT�T�T�T�T�h�&7�T�T�T�n�z����H�M�O�O�O�O�O��r