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

�KeX��P�ddlZddlZddlmZddlmZddlmZddlm	Z	ddl
Z
ddlZddlZddl
Z
ddlZejd���Gd�d	e��Zd
�ZGd�d��ZGd
�deje��ZGd�deje��Zd�Zedkrej��dSdS)�N)�DocTestSuite)�support)�threading_helper)�
import_moduleT)�modulec��eZdZdS)�WeakN��__name__�
__module__�__qualname__���C/usr/local/apps/python3/lib/python3.11/test/test_threading_local.pyr	r	s�������Drr	c�~�t��}||_|�tj|����dS�N)r	�weak�append�weakref�ref)�local�weaklistrs   r�targetrs4���6�6�D��E�J��O�O�G�K��%�%�&�&�&�&�&rc�\�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�ZdS)�
BaseLocalTestc��|�d��|�d��|�d��dS)N��2�d)�_local_refs��selfs r�test_local_refszBaseLocalTest.test_local_refssD������������������������rc�r�|���}g}t|��D]G}tjt||f���}|���|����H~tj��|�	t|��|��d�|D��}|�t|��|dz
|f��d|_tj��d�|D��}|�t|��|dz
|f|t|��f��dS)N�r�argsc�&�g|]}|���|��Srr��.0rs  r�
<listcomp>z-BaseLocalTest._local_refs.<locals>.<listcomp>0���@�@�@�T������D���r�c�&�g|]}|���|��Srrr(s  rr*z-BaseLocalTest._local_refs.<locals>.<listcomp>6r+r)
�_local�range�	threading�Threadr�start�joinr�
gc_collect�assertEqual�len�assertIn�someothervar)r"�nrr�i�t�deadlists       rr zBaseLocalTest._local_refs#s&�����
�
�����q���	�	�A�� ��e�X�5F�G�G�G�A�
�G�G�I�I�I�
�F�F�H�H�H�H�
����������X����*�*�*�A�@�X�@�@�@���
�
�c�(�m�m�a��c�1�X�.�.�.�"��������@�@�X�@�@�@���
�
�c�(�m�m�a��c�1�X��3�x�=�=�/A�B�B�B�B�Brc�������ddl�G�fd�d�j��}|�����fd��tj�fd�t	d��D����5	ddd��dS#1swxYwYdS)Nrc���eZdZ�fd�ZdS)�)BaseLocalTest.test_derived.<locals>.Localc�2����d��dS)Ng{�G�z�?)�sleep)r"�times �r�__init__z2BaseLocalTest.test_derived.<locals>.Local.__init__@s����
�
�4� � � � � rN�rrr
rC)rBs�r�Localr??s.�������
!�
!�
!�
!�
!�
!�
!rrEc�L��|�_���j|��dSr)�xr5)r:rr"s ��r�fz%BaseLocalTest.test_derived.<locals>.fDs(����E�G����U�W�a�(�(�(�(�(rc3�F�K�|]}tj�|f���V��dS)r%N)r0r1)r)r:rHs  �r�	<genexpr>z-BaseLocalTest.test_derived.<locals>.<genexpr>IsQ�����,@�,@�01�-6�,<�A�Q�D�,Q�,Q�,Q�,@�,@�,@�,@�,@�,@r�
)rBr.r�
start_threadsr/)r"rErHrrBs` @@@r�test_derivedzBaseLocalTest.test_derived9s#������
	����	!�	!�	!�	!�	!�	!�	!�D�K�	!�	!�	!������	)�	)�	)�	)�	)�	)�
�
+�,@�,@�,@�,@�5:�2�Y�Y�,@�,@�,@�@�@�	�	��	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�A*�*A.�1A.c��������Gd�d|j���d�d�tj���tj��������fd�}tj|���}|��������fd�t
d��D�������|���|�	���dS)Nc��eZdZdS)�7BaseLocalTest.test_derived_cycle_dealloc.<locals>.LocalNr
rrrrErPO��������DrrEFc������g}|�|��d|d_~tj����������t
d��D�����dS)N�barrc3�8K�|]}t|d��V��dS)�fooN)�hasattr)r)rs  rrJzFBaseLocalTest.test_derived_cycle_dealloc.<locals>.f.<locals>.<genexpr>es/����G�G�u�W�U�E�2�2�2�G�G�G�G�G�Gr)rrUrr4�set�wait�all)�cyclerE�e1�e2�locals�passeds �����rrHz3BaseLocalTest.test_derived_cycle_dealloc.<locals>.fVs����U�W�W�I�E��L�L����� �E�!�H�L���� � � ��F�F�H�H�H��G�G�I�I�I��G�G��G�G�G�G�G�F�F�Fr�rc�$��g|]}�����
Srr)r)r:rEs  �rr*z<BaseLocalTest.test_derived_cycle_dealloc.<locals>.<listcomp>ns���-�-�-�a�%�%�'�'�-�-�-rrK)
r.r0�Eventr1r2rXr/rWr3�
assertTrue)r"rHr;rEr[r\r]r^s   @@@@@r�test_derived_cycle_deallocz(BaseLocalTest.test_derived_cycle_deallocMs�������	�	�	�	�	�D�K�	�	�	�����
�_�
�
��
�_�
�
��	H�	H�	H�	H�	H�	H�	H�	H�	H�"
��A�&�&�&��	���	�	�	�
���	�	�	�
.�-�-�-�5��9�9�-�-�-��
������	��������������rc���Gd�d|j��}|d���|d��|�t|jd���|�t|jd��dS)Nc��eZdZd�ZdS)�-BaseLocalTest.test_arguments.<locals>.MyLocalc��dSrr)r"r&�kwargss   rrCz6BaseLocalTest.test_arguments.<locals>.MyLocal.__init__ws���rNrDrrr�MyLocalrfvs#������
�
�
�
�
rrir,)�a)r.�assertRaises�	TypeError)r"ris  r�test_argumentszBaseLocalTest.test_argumentsts���	�	�	�	�	�d�k�	�	�	�	��!��������
�
�
����)�T�[�A��6�6�6����)�T�[�!�4�4�4�4�4rc�������d�_����tj���tj������fd�}���fd�}tj|���}|�������tj|���}|���|�������|������j�j��dS)Nz No error message set or cleared.c�x��d�_d�_�`��������dS)NrUrS)rG�yrWrX)r[r\�objs���r�f1z)BaseLocalTest._test_one_class.<locals>.f1�s4����C�E��C�E����F�F�H�H�H��G�G�I�I�I�I�Irc���	�j}d|�d��d��_tj��j��dS#t
$rd�_YdSwxYw)NzIncorrectly got value z from class �
�)rG�_failed�sys�stderr�write�AttributeError)rU�crqr"s ���r�f2z)BaseLocalTest._test_one_class.<locals>.f2�sq���
/��e���"%���a�a�a�!)����
� � ���.�.�.�.�.��
"�
"�
"�
"�!������
"���s�>�A�Ar_)	rvr0rar1r2rXr3rW�assertFalse)	r"r{rrr|�t1�t2r[r\rqs	``    @@@r�_test_one_classzBaseLocalTest._test_one_classs�������9����a�c�c��
�_�
�
��
�_�
�
��	�	�	�	�	�	�	�		/�		/�		/�		/�		/�		/�		/��
�R�
(�
(�
(��
���
�
�
�
���	�	�	�
�
�R�
(�
(�
(��
���
�
�
�
���	�	�	�
������
���	�	�	������t�|�4�4�4�4�4rc�:�|�|j��dSr)r�r.r!s r�test_threading_localz"BaseLocalTest.test_threading_local�s�����T�[�)�)�)�)�)rc�V�Gd�d|j��}|�|��dS)Nc��eZdZdZdS)�BBaseLocalTest.test_threading_local_subclass.<locals>.LocalSubclass�(To test that subclasses behave properly.N�rrr
�__doc__rrr�
LocalSubclassr���������:�:�:�:rr�)r.r��r"r�s  r�test_threading_local_subclassz+BaseLocalTest.test_threading_local_subclass�sH��	;�	;�	;�	;�	;�D�K�	;�	;�	;����]�+�+�+�+�+rc�>�|��}d|_|�|jddi��|�t��5i|_ddd��n#1swxYwY|�t��5|`ddd��dS#1swxYwYdS)N�rG)rGr5�__dict__rkrz)r"�clsrqs   r�_test_dict_attributez"BaseLocalTest._test_dict_attribute�s���c�e�e�����������Q�x�0�0�0�
�
�
�~�
.�
.�	�	��C�L�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�~�
.�
.�	�	���	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s$�	A�A!�$A!�B�B�Bc�:�|�|j��dSr)r�r.r!s r�test_dict_attributez!BaseLocalTest.test_dict_attribute�s���!�!�$�+�.�.�.�.�.rc�V�Gd�d|j��}|�|��dS)Nc��eZdZdZdS)�ABaseLocalTest.test_dict_attribute_subclass.<locals>.LocalSubclassr�Nr�rrrr�r��r�rr�)r.r�r�s  r�test_dict_attribute_subclassz*BaseLocalTest.test_dict_attribute_subclass�sH��	;�	;�	;�	;�	;�D�K�	;�	;�	;��!�!�-�0�0�0�0�0rc��Gd�d��}|��}|���|_||j_tj|��}~tj��|�|����dS)Nc��eZdZdS)�.BaseLocalTest.test_cycle_collection.<locals>.XNr
rrr�Xr��rQrr�)r.rrGrrrr4�assertIsNone)r"r�rG�wrs    r�test_cycle_collectionz#BaseLocalTest.test_cycle_collection�s���	�	�	�	�	�	�	�	�
�A�C�C���+�+�-�-������	�
�[��^�^��
���������"�"�$�$�����rc���td��}|�d�d��td��D]}tj��}�|���dS)N�	_testcapic��dSrrrrr�<lambda>z?BaseLocalTest.test_threading_local_clear_race.<locals>.<lambda>�s��T�rFi�)r�call_in_temporary_c_threadr/r0r�join_temporary_c_thread)r"r��_s   r�test_threading_local_clear_racez-BaseLocalTest.test_threading_local_clear_race�se��"�+�.�.�	��,�,�\�\�5�A�A�A��t���	"�	"�A���!�!�A�A��)�)�+�+�+�+�+rN)rrr
r#r rMrcrmr�r�r�r�r�r�r�r�rrrrrs����������
C�C�C�,���(% �% �% �N	5�	5�	5�"5�"5�"5�H*�*�*�,�,�,�
���/�/�/�1�1�1�

 �
 �
 �	,�	,�	,�	,�	,rrc��eZdZejZdS)�ThreadLocalTestN)rrr
�_threadr.rrrr�r��s������
�^�F�F�Frr�c��eZdZejZdS)�PyThreadingLocalTestN)rrr
�_threading_localrr.rrrr�r��s������
�
#�F�F�Frr�c���|�td����tj�d�}�fd�}|�td||�����|S)Nr�c�2�tjt_dSr)r�r.r�r)�tests r�setUpzload_tests.<locals>.setUp�s��!(�����rc� ���t_dSr)r�r)r��
local_origs �r�tearDownzload_tests.<locals>.tearDown�s���!+����r)r�r�)�addTestrr�r�addTests)�loader�tests�patternr�r�r�s     @r�
load_testsr��s����	�M�M�,�1�2�2�3�3�3�!�'�J�0�0�0�,�,�,�,�,�	�N�N�<� 2�&+�h�@�@�@�����Lr�__main__)rw�unittest�doctestrr�r�test.supportr�test.support.import_helperrr�gcr�r0r��requires_working_threading�objectr	rr�TestCaser�r�r�r�mainrrr�<module>r�s���
�
�
�
����� � � � � � �������)�)�)�)�)�)�4�4�4�4�4�4�����	�	�	�	�������������,��+�4�8�8�8�8�	�	�	�	�	�6�	�	�	�'�'�'�v,�v,�v,�v,�v,�v,�v,�v,�r�����h�'�����$�$�$�$�$�8�,�m�$�$�$�����z����H�M�O�O�O�O�O��r