Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_dynamic.cpython-311.pyc
�

�Ke����ddlZddlZddlZddlmZmZGd�dej��ZGd�dej��Ze	dkrej
��dSdS)�N)�	swap_item�	swap_attrc�T�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
S)�RebindBuiltinsTestsz=Test all the ways that we can change/shadow globals/builtins.c��dS)a�Perform TestCase-specific configuration on a function before testing.

        By default, this does nothing. Example usage: spinning a function so
        that a JIT will optimize it. Subclasses should override this as needed.

        Args:
            func: function to configure.
            *args: any arguments that should be passed to func, if calling it.

        Returns:
            Nothing. Work will be performed on func in-place.
        N�)�self�func�argss   �;/usr/local/apps/python3/lib/python3.11/test/test_dynamic.py�configure_funcz"RebindBuiltinsTests.configure_funcs	��	
��c��d�}|�|��|�|��d��tt��dd���5|�|��d��ddd��dS#1swxYwYdS)Nc�$�tgd���S�N)�����lenrrr�fooz=RebindBuiltinsTests.test_globals_shadow_builtins.<locals>.foo����y�y�y�>�>�!rrrc��dS�N�r��xs r�<lambda>zBRebindBuiltinsTests.test_globals_shadow_builtins.<locals>.<lambda>$s��1�rr�r
�assertEqualr�globals�r	rs  r�test_globals_shadow_builtinsz0RebindBuiltinsTests.test_globals_shadow_builtinss���	"�	"�	"����C� � � ���������"�"�"�
�w�y�y�%���
5�
5�	'�	'����S�S�U�U�A�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�	'�	's�B�B�Bc��d�}|�|��|�|��d��ttdd���5|�|��d��ddd��dS#1swxYwYdS)Nc�$�tgd���Srrrrrrz5RebindBuiltinsTests.test_modify_builtins.<locals>.foo)rrrrc��dSrrrs rrz:RebindBuiltinsTests.test_modify_builtins.<locals>.<lambda>.���!�rr)r
r r�builtinsr"s  r�test_modify_builtinsz(RebindBuiltinsTests.test_modify_builtins's���	"�	"�	"����C� � � ���������"�"�"�
�x����
4�
4�	'�	'����S�S�U�U�A�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�	'�	's�A:�:A>�A>c�6�d�}|�|��|��}|�t|��d��ttdd���5|�t|��d��ddd��dS#1swxYwYdS)Nc3�lK�td��}t|��V�t|��V�dS�Nr��rangerrs rrzLRebindBuiltinsTests.test_modify_builtins_while_generator_active.<locals>.foo3�3�����a���A��a�&�&�L�L�L��a�&�&�L�L�L�L�Lrrrc��dSrrrs rrzQRebindBuiltinsTests.test_modify_builtins_while_generator_active.<locals>.<lambda>;r'rr)r
r �nextrr(�r	r�gs   r�+test_modify_builtins_while_generator_activez?RebindBuiltinsTests.test_modify_builtins_while_generator_active1s���	�	�	�	
���C� � � ��C�E�E������a���!�$�$�$�
�x����
4�
4�	)�	)����T�!�W�W�a�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)s�$B�B�Bc���ttdt��5d�}d�}|�|d���|�||��ddg��ddd��dS#1swxYwYdS)Nrc� �d�t_dS)Nc��dS)N�rrs rrzZRebindBuiltinsTests.test_modify_builtins_from_leaf_function.<locals>.bar.<locals>.<lambda>C����r)r(rrrr�barzHRebindBuiltinsTests.test_modify_builtins_from_leaf_function.<locals>.barBs��*�{����rc���g}|�ttd������|��|�ttd������|Sr)�appendrr.)�modifier�ls  rrzHRebindBuiltinsTests.test_modify_builtins_from_leaf_function.<locals>.fooEsS��������U�1�X�X���'�'�'���
�
�
�����U�1�X�X���'�'�'��rc��dS�NrrrrrzMRebindBuiltinsTests.test_modify_builtins_from_leaf_function.<locals>.<lambda>Ks��T�rrr8)rr(rr
r )r	r:rs   r�'test_modify_builtins_from_leaf_functionz;RebindBuiltinsTests.test_modify_builtins_from_leaf_function>s����x���
,�
,�	/�	/�
+�
+�
+�
�
�
�
����\�\�2�2�2����S�S��X�X��1�v�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/s�?A(�(A,�/A,c���d�}|�|��dd�i}||d�d�}|�td|��d��|�tdd|i��d��dS)	Nc�$�tgd���SrrrrrrzQRebindBuiltinsTests.test_cannot_change_globals_or_builtins_with_eval.<locals>.fooPrrrc��dSrrrs rrzVRebindBuiltinsTests.test_cannot_change_globals_or_builtins_with_eval.<locals>.<lambda>U���!�rc��dS�N�rrs rrzVRebindBuiltinsTests.test_cannot_change_globals_or_builtins_with_eval.<locals>.<lambda>Wr9r�r�__builtins__rzfoo()rr)r
r �eval)r	r�
builtins_dict�globals_dicts    r�0test_cannot_change_globals_or_builtins_with_evalzDRebindBuiltinsTests.test_cannot_change_globals_or_builtins_with_evalOs���	"�	"�	"����C� � � ����,�
�"�M�*�{�,�,������g�|�4�4�a�8�8�8�����g��s�|�4�4�a�8�8�8�8�8rc��d�}|�|��d|i}td|��|�|dd��dd�i}||d�d	�}td|��|�|dd��dS)
Nc�$�tgd���SrrrrrrzQRebindBuiltinsTests.test_cannot_change_globals_or_builtins_with_exec.<locals>.foo]rrrz	x = foo()rrrc��dSrrrs rrzVRebindBuiltinsTests.test_cannot_change_globals_or_builtins_with_exec.<locals>.<lambda>frErc��dSrGrrs rrzVRebindBuiltinsTests.test_cannot_change_globals_or_builtins_with_exec.<locals>.<lambda>hr9rrI)r
�execr )r	rrMrLs    r�0test_cannot_change_globals_or_builtins_with_execzDRebindBuiltinsTests.test_cannot_change_globals_or_builtins_with_exec\s���	"�	"�	"����C� � � ��s�|���[�,�'�'�'�����c�*�A�.�.�.����,�
�"�M�*�{�,�,��	
�[�,�'�'�'�����c�*�A�.�.�.�.�.rc�H�d�}|�|��|��}|�t|��d��tt	��ddd�i��5|�t|��d��ddd��dS#1swxYwYdS)Nc3�lK�td��}t|��V�t|��V�dSr,r-rs rrzORebindBuiltinsTests.test_cannot_replace_builtins_dict_while_active.<locals>.foonr/rrrJrc��dSrrrs rrzTRebindBuiltinsTests.test_cannot_replace_builtins_dict_while_active.<locals>.<lambda>v���A�r)r
r r1rr!r2s   r�.test_cannot_replace_builtins_dict_while_activezBRebindBuiltinsTests.test_cannot_replace_builtins_dict_while_activems���	�	�	�	
���C� � � ��C�E�E������a���!�$�$�$�
�w�y�y�.�5�+�+�2F�
G�
G�	)�	)����T�!�W�W�a�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)s�&$B�B�Bc� �d�}|�|��|�|��d��tt��ddd�i��5|�|��d��ddd��dS#1swxYwYdS)Nc�$�tgd���SrrrrrrzPRebindBuiltinsTests.test_cannot_replace_builtins_dict_between_calls.<locals>.foozrrrrJrc��dSrrrs rrzURebindBuiltinsTests.test_cannot_replace_builtins_dict_between_calls.<locals>.<lambda>rXrrr"s  r�/test_cannot_replace_builtins_dict_between_callszCRebindBuiltinsTests.test_cannot_replace_builtins_dict_between_callsys���	"�	"�	"����C� � � ���������"�"�"�
�w�y�y�.�5�+�+�2F�
G�
G�	'�	'����S�S�U�U�A�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�	'�	's�B�B�
Bc��dd�i}td|��}|�|��|�|��d��dS)Nrc��dSrrrs rrzKRebindBuiltinsTests.test_eval_gives_lambda_custom_globals.<locals>.<lambda>�r9rzlambda: len([])r)rKr
r )r	rMrs   r�%test_eval_gives_lambda_custom_globalsz9RebindBuiltinsTests.test_eval_gives_lambda_custom_globals�sT���{�{�+���$�l�3�3�����C� � � ���������"�"�"�"�"rc�R�Gd�dt��}dd�d�td��D����z}t||����}t	td����}td��D] }|�|��|���!dS)Nc��eZdZd�ZdS)�ZRebindBuiltinsTests.test_load_global_specialization_failure_keeps_oparg.<locals>.MyGlobalsc�F�t|�d����S)N�_number_)�int�removeprefix)r	�keys  r�__missing__zfRebindBuiltinsTests.test_load_global_specialization_failure_keeps_oparg.<locals>.MyGlobals.__missing__�s���3�+�+�J�7�7�8�8�8rN)�__name__�
__module__�__qualname__rirrr�	MyGlobalsrc�s#������
9�
9�
9�
9�
9rrmzlambda: �+c3� K�|]	}d|��V��
dS)reNr)�.0�is  r�	<genexpr>zZRebindBuiltinsTests.test_load_global_specialization_failure_keeps_oparg.<locals>.<genexpr>�s(����$I�$I��^��^�^�$I�$I�$I�$I�$I�$Iri��)�dict�joinr.rK�sumr )r	rm�code�sum_1000�expected�_s      r�3test_load_global_specialization_failure_keeps_opargzGRebindBuiltinsTests.test_load_global_specialization_failure_keeps_oparg�s���	9�	9�	9�	9�	9��	9�	9�	9��C�H�H�$I�$I�U�4�[�[�$I�$I�$I�I�I�I����i�i�k�k�*�*���u�T�{�{�#�#���r���	3�	3�A����X�X�Z�Z��2�2�2�2�	3�	3rN)rjrkrl�__doc__r
r#r)r4rArNrTrYr]r`r{rrrrr
s�������G�G�

�

�

�'�'�'�'�'�'�)�)�)�/�/�/�"9�9�9�/�/�/�"
)�
)�
)�'�'�'�#�#�#�3�3�3�3�3rrc��eZdZd�Zd�ZdS)�TestTracingc��|�tjtj����tjd��dSr@)�
addCleanup�sys�settrace�gettrace)r	s r�setUpzTestTracing.setUp�s4�������c�l�n�n�5�5�5���T�����rc�H�����fd��d�G��fd�d����fd�}�fd�}�fd�}|||fD]r}|�|j��5td��D]}|���
d	�|��tjd��d�ddd��n#1swxYwY�sdS)
Nc����Sr@r)�frame�event�arg�traces   �rr�z4TestTracing.test_after_specialization.<locals>.trace�s����LrFc�"��eZdZd�Z��fd�ZdS)�0TestTracing.test_after_specialization.<locals>.Cc��||_dSr@r)r	rs  r�__init__z9TestTracing.test_after_specialization.<locals>.C.__init__�s
������rc�8���rtj���dSdSr@)r�r�)r	r��
turn_on_traces ��r�__del__z8TestTracing.test_after_specialization.<locals>.C.__del__�s+��� �(��L��'�'�'�'�'�(�(rN)rjrkrlr�r�)r�r�s��r�Cr��sB�������
�
�
�
(�
(�
(�
(�
(�
(�
(�
(rr�c�6���d��jtfdS�Nr)rr�r�s�r�fz0TestTracing.test_after_specialization.<locals>.f�s���
�A�a�D�D�F�C�K�K�K�Krc�6��dg�d��jdSr�rr�s�rr3z0TestTracing.test_after_specialization.<locals>.g�s���
�C���!����K�K�K�Krc�.��d�d��jzdSr�rr�s�r�hz0TestTracing.test_after_specialization.<locals>.h�s���
���!����J�J�J�Jr�:T)�subTestrjr.r�r�)	r	r�r3r�r
rzr�r�r�s	      @@@r�test_after_specializationz%TestTracing.test_after_specialization�sy�����	�	�	�	�	��
�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	���1�I�	&�	&�D����d�m�,�,�
&�
&��r�����A��D�F�F�F�F� $�
��������T�"�"�"� %�
�

&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&����
&�
&�
&�
&��	&�	&s�?B�B	�B	N)rjrkrlr�r�rrrr~r~�s2���������!&�!&�!&�!&�!&rr~�__main__)r(r��unittest�test.supportrr�TestCaserr~rj�mainrrr�<module>r�s�������
�
�
�
�����-�-�-�-�-�-�-�-�J3�J3�J3�J3�J3�(�+�J3�J3�J3�Z'&�'&�'&�'&�'&�(�#�'&�'&�'&�T�z����H�M�O�O�O�O�O��r