HEX
Server: Apache
System: Linux bd12.noc223.com 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: handcraf (1693)
PHP: 8.1.28
Disabled: NONE
Upload Files
File: //opt/alt/python312/lib64/python3.12/test/test_warnings/__pycache__/__init__.cpython-312.pyc
�

�h�e���� �ddlmZddlZddlZddlmZddlZddlZddlZddl	Z	ddl
mZddlm
Z
ddlmZddlmZddlmZmZdd	lmZdd
lmZddlZe
j2ddg�
�Ze
j2ddg��Zed��ZGd�de�ZGd�d�ZGd�de�Z Gd�de e	jB�Z"Gd�de e	jB�Z#Gd�de�Z$Gd�de$e	jB�Z%Gd�de$e	jB�Z&Gd �d!e�Z'Gd"�d#e'e	jB�Z(Gd$�d%e'e	jB�Z)Gd&�d'e�Z*Gd(�d)e*e	jB�Z+Gd*�d+e*e	jB�Z,Gd,�d-ee	jB�Z-Gd.�d/e�Z.Gd0�d1e.e	jB�Z/Gd2�d3e.e	jB�Z0Gd4�d5e�Z1Gd6�d7e1e	jB�Z2Gd8�d9e1e	jB�Z3Gd:�d;e�Z4Gd<�d=e4e	jB�Z5Gd>�d?e4e	jB�Z6Gd@�dAee	jB�Z7GdB�dCe	jB�Z8GdD�dEe	jB�Z9dF�Z:e:Z;e<dGk(re	jz�yy)H�)�contextmanagerN)�StringIO)�support)�
import_helper)�	os_helper)�warnings_helper)�assert_python_ok�assert_python_failure)�package_helper��
stacklevel�warnings�	_warnings)�blocked)�freshc#�K�ttfD]}	|jj��	tj�tj}|j}	|dd|_|jd�|t_d��|t_||_y#t$rY��wxYw#t
$rY�twxYw#|t_||_wxYw�w)z8Use a specific warnings implementation in warning_tests.N�once)	�sys�
warning_tests�__warningregistry__�clear�AttributeError�	NameErrorr�filters�simplefilter)�module�to_clear�original_warnings�original_filterss    �B/opt/alt/python312/lib64/python3.12/test/test_warnings/__init__.py�warnings_stater!s������-�(���	��(�(�.�.�0��

��!�!�#�&�.�.���~�~��*�)�!�,������F�#�!'�
��
�!2�
��)�����	��	���
��
��"3�
��)���sb�C�B�C�B-�C�!*B<�C�	B*�'C�)B*�*C�-	B9�6C�8B9�9C�<C�Cc��eZdZy)�TestWarningN��__name__�
__module__�__qualname__��r r#r#3s��r)r#c�,��eZdZdZ�fd�Z�fd�Z�xZS)�BaseTestz'Basic bookkeeping required for testing.c�f��tjj|_dt	�vrt	�d=ttd�rt`ttd�rt`|jtjd<|jtj_tt|�7�y)Nrr)�unittest�caser�old_unittest_module�globals�hasattrrrrr�modules�superr+�setUp��self�	__class__s �r r4zBaseTest.setUp;s����#+�=�=�#9�#9�� �!�G�I�-��	�/�0��=�"7�8��1��3�-�.��'�#'�+�+����J��"&����
�
��
�h��#�%r)c���ttjd<|jtj
_tt|�'�y)Nr)
rrr2r/r-r.rr3r+�tearDownr5s �r r9zBaseTest.tearDownNs0���"3����J��!%�!9�!9��
�
��
�h��&�(r))r%r&r'�__doc__r4r9�
__classcell__)r7s@r r+r+7s���1�&�&)�)r)r+c��eZdZdZd�Zy)�PublicAPITestszGEnsures that the correct values are exposed in the
    public API.
    c���|jt|jd��gd�}|jt	|jj
�t	|��y)N�__all__)�warn�
warn_explicit�showwarning�
formatwarning�filterwarningsr�
resetwarnings�catch_warnings)�
assertTruer1r�assertSetEqual�setr?)r6�
target_apis  r �test_module_all_attributez(PublicAPITests.test_module_all_attributeYsH���������Y�7�8�9�
�	
���C���� 3� 3�4��
�O�	-r)N)r%r&r'r:rKr(r)r r=r=Ss���-r)r=c��eZdZeZy)�CPublicAPITestsN�r%r&r'�
c_warningsrr(r)r rMrMa���
�Fr)rMc��eZdZeZy)�PyPublicAPITestsN�r%r&r'�py_warningsrr(r)r rRrRd���
�Fr)rRc��eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�FilterTestsz$Testing the filtering functionality.c�:�tj|j��5}|jj�|jj	dt
��|j
t
|jjd�ddd�y#1swYyxYw)N�r�error��categoryzFilterTests.test_error)rrFrrErD�UserWarning�assertRaisesr@�r6�ws  r �
test_errorzFilterTests.test_errorksq��
�
-�
-�T�[�[�
A�	:�Q��K�K�%�%�'��K�K�&�&�w��&�E����k�4�;�;�+;�+;� 8�
:�	:�	:�	:�s�A'B�Bc�����tj�j��5}�jj�d���fd�}t	j
�5}|�ddd�j
�}�jd|��jd|��jjdt���jt|�ddd�y#1swY�}xYw#1swYyxYw)NrY�%FilterTests.test_ignore_after_defaultc�F���jj�t�y�N�rr@r]��messager6s��r �fz/FilterTests.test_error_after_default.<locals>.fv������� � ��+�6r)z2UserWarning: FilterTests.test_ignore_after_defaultz&self.module.warn(message, UserWarning)rZr[)rrFrrEr�captured_stderr�getvalue�assertInrDr]r^)r6r`ri�stderrrhs`   @r �test_error_after_defaultz$FilterTests.test_error_after_defaultrs����
�
-�
-�T�[�[�
A�	.�Q��K�K�%�%�'�=�G�
7��(�(�*�
�f���
��_�_�&�F��M�M�N� �
"��M�M�B� �
"�
�K�K�&�&�w��&�E����k�1�-�	.�	.�
�
��
	.�	.�s$�7C*�C�"A3C*�C'	�#C*�*C3c��tjd|j��5}|jj�|jj	dt
��|jj
dt
�|jt|�d�|jtt�dg�ddd�y#1swYyxYw)NT��recordr�ignorer[zFilterTests.test_ignorer�version)rrFrrErDr]r@�assertEqual�len�listrr_s  r �test_ignorezFilterTests.test_ignore�s���
�
-�
-�T��{�{�$�	E�'(��K�K�%�%�'��K�K�&�&�x�+�&�F��K�K���6��D����S��V�Q�'����T�"5�6���D�
	E�	E�	E�s�BC�Cc�Z���tjd�j��5}�jj�d���fd�}|��jj	dt
��|�|��j
t|�d�ddd�y#1swYyxYw)NTrqrcc�F���jj�t�yrerfrgs��r riz0FilterTests.test_ignore_after_default.<locals>.f�rjr)rsr[�)rrFrrErDr]rurv�r6r`rirhs`  @r �test_ignore_after_defaultz%FilterTests.test_ignore_after_default�s����
�
-�
-�T��{�{�$�
	(�'(��K�K�%�%�'�=�G�
7�
�C��K�K�&�&�x�+�&�F�
�C�
�C����S��V�Q�'�
	(�
	(�
	(�s�A4B!�!B*c�2���tjd�j��5}�jj��jj	dt
��d���fd�}|��j
t|�d��j
|djjd	��|��j
t|�d
��j
|djjd	��ddd�y#1swYyxYw)NTrq�alwaysr[zFilterTests.test_alwaysc�F���jj�t�yrerfrgs��r riz"FilterTests.test_always.<locals>.f�rjr)r{���r�)
rrFrrErDr]rurvrh�argsr|s`  @r �test_alwayszFilterTests.test_always�s����
�
-�
-�T��{�{�$�	=�'(��K�K�%�%�'��K�K�&�&�x�+�&�F�/�G�
7�
�C����S��V�Q�'����Q�r�U�]�]�/�/��2�G�<�
�C����S��V�Q�'����Q�r�U�]�]�/�/��2�G�<�	=�	=�	=�s�C D
�
Dc����tjd�j��5}�jj�d���fd�}|��j	t|�d��j	|djjd��|��j	t|�d��jjdt�	�|��j	t|�d
��j	|djjd��|��j	t|�d��j	|djjd��ddd�y#1swYyxYw)NTrqz$FilterTests.test_always_after_ignorec�F���jj�t�yrerfrgs��r riz0FilterTests.test_always_after_default.<locals>.f�rjr)r{r�rrr[r��)
rrFrrErurvrhr�rDr]r|s`  @r �test_always_after_defaultz%FilterTests.test_always_after_default�s0���
�
-�
-�T��{�{�$�	=�'(��K�K�%�%�'�<�G�
7�
�C����S��V�Q�'����Q�r�U�]�]�/�/��2�G�<�
�C����S��V�Q�'��K�K�&�&�x�+�&�F�
�C����S��V�Q�'����Q�r�U�]�]�/�/��2�G�<�
�C����S��V�Q�'����Q�r�U�]�]�/�/��2�G�<�#	=�	=�	=�s�EE=�=Fc��tjd|j��5}|jj�|jj	dt
��td�}t
d�D]w}|jj|t
�|dk(r%|j|dj|�|dd�=�M|d	k(r|jt|�d��ntd
��	ddd�y#1swYyxYw)NTrq�defaultr[zFilterTests.test_defaultr�rr�r{zloop variant unhandled)rrFrrErDr]�ranger@rurhrv�
ValueError)r6r`rh�xs    r �test_defaultzFilterTests.test_default�s���
�
-�
-�T��{�{�$�
	?�'(��K�K�%�%�'��K�K�&�&�y�;�&�G�!�"<�=�G��1�X�
?����� � ��+�6���6��$�$�Q�r�U�]�]�G�<��!���!�V��$�$�S��V�Q�/�$�%=�>�>�
?�
	?�
	?�
	?�s�CC8�8Dc��tjd|j��5}|jj�|jj	dt
��td�}|jj
|t
�|j|dj|�|dd�=|jj
|t
�|jt|�d�ddd�y#1swYyxYw)NTrqrr[zFilterTests.test_moduler�r)
rrFrrErDr]r@rurhrv�r6r`rhs   r �test_modulezFilterTests.test_module�s���
�
-�
-�T��{�{�$�		(�'(��K�K�%�%�'��K�K�&�&�x�+�&�F�!�";�<�G��K�K���W�k�2����Q�r�U�]�]�G�4��!���K�K���W�k�2����S��V�Q�'�		(�		(�		(�s�CC1�1C:c�|�tjd|j��5}|jj�|jj	dt
��td�}|jj
|t
dd�|j|dj|�|dd�=|jj
|t
dd	�|jt|�d
�|jj
|t
dd�|jt|�d
�ddd�y#1swYyxYw)NTrqrr[zFilterTests.test_once�__init__.py�*r��
rztest_warnings2.py)
rrFrrErDr]rArurhrvr�s   r �	test_oncezFilterTests.test_once�s���
�
-�
-�T��{�{�$�	(�'(��K�K�%�%�'��K�K�&�&�v��&�D�!�"9�:�G��K�K�%�%�g�{�M�$&�
(����Q�r�U�]�]�G�4��!���K�K�%�%�g�{�M�$&�
(����S��V�Q�'��K�K�%�%�g�{�<O�$&�
(����S��V�Q�'�	(�	(�	(�s�DD2�2D;c	�~�tjd|j��5}|jjdt�|jjdtddd��|j
t|�d�|jt�5|jjdtddd��ddd�|j
t|�d�|jjdtddi��|j
t|�d	�ddd�y#1swY�lxYw#1swYyxYw)
NTrqr�msg�filenamer���module_globalsr{r�)
rrFrrr]rArurvr^�	TypeErrorr_s  r �test_module_globalszFilterTests.test_module_globals�s��
�
-�
-�T��{�{�$�	(�'(��K�K�$�$�X�{�;�
�K�K�%�%�e�[�*�b�59�
&�
;����S��V�Q�'��"�"�9�-�
?����)�)�%��j�"�9=�*�?�
?�
���S��V�Q�'�
�K�K�%�%�e�[�*�b�57�
&�
9����S��V�Q�'�%	(�	(�
?�
?��	(�	(�s%�A5D3�%D'�<A"D3�'D0	�,D3�3D<c�D�tj|j��5}|jj�|jj	dt
��|j
t|jjdt�ddd�y#1swYyxYw)NrYrZr[zFilterTests.test_inheritance)	rrFrrErD�Warningr^r]r@r_s  r �test_inheritancezFilterTests.test_inheritance�sx��
�
-�
-�T�[�[�
A�	M�Q��K�K�%�%�'��K�K�&�&�w��&�A����k�4�;�;�+;�+;� >��
M�	M�	M�	M�s�A,B�Bc���tjd|j��5}|jj�|jj	dt
��|jj	dt
d��|dd�=	|jj
dt
�|jt|�d	�ddd�y#t
$r|jd�Y�@wxYw#1swYyxYw)
NTrqrsr[rZ)r\�appendzFilterTests.test_orderingz!order handling for actions failedr)
rrFrrErDr]r@�failrurvr_s  r �
test_orderingzFilterTests.test_orderings���
�
-�
-�T��{�{�$�	(�'(��K�K�%�%�'��K�K�&�&�x�+�&�F��K�K�&�&�w��/3�
'�
5��!��
?���� � �!<�k�J�
���S��V�Q�'�	(�	(���
?��	�	�=�>�
?��	(�	(�s0�A#C*� C
�&C*�
C'�$C*�&C'�'C*�*C3c��tjd|j��5}|jjddtdd�|jt|jjd�|jj�d}|jj|�|jt|dj�|�|j|djt�|jjd	dtdd�d
}|jj|�|jt|dj�|�|jj�|jjddtdd�|jt|jjd�d
}|jj|�|jt|dj�|�|j|djt�ddd�y#1swYyxYw)NTrqrZ�r�convert to errorzhandle normallyr�rszfiltered outzhex*zhex/octznonmatching text)rrFrrDr�r^r]r@rEru�strrh�assertIsr\�assertNotEqual)r6r`�texts   r �test_filterwarningszFilterTests.test_filterwarningss����
-�
-�T��{�{�$�	7�'(��K�K�&�&�w��G�R��C����k�4�;�;�+;�+;�=O�P��K�K�%�%�'�$�D��K�K���T�"����S��2����/��6��M�M�!�B�%�.�.�+�6��K�K�&�&�x��W�b�!�D�!�D��K�K���T�"�����A�b�E�M�M� 2�D�9��K�K�%�%�'��K�K�&�&�w����Q�G����k�4�;�;�+;�+;�Y�G�%�D��K�K���T�"����S��2����/��6��M�M�!�B�%�.�.�+�6�-	7�	7�	7�s�H	H4�4H=c�R�tjd|j��5}|jjdt�|jjddt�|j
t|jjd�|j
t|jjd�|jjd�|j|g�|jjd�|j|g�ddd�y#1swYyxYw)	NTrqrsrZ�matchzmatch prefixzsuffix matchzsomething completely different)	rrFrrr]rDr^r@rur_s  r �test_message_matchingz!FilterTests.test_message_matching/s���
�
-�
-�T��{�{�$�		$�'(��K�K�$�$�X�{�;��K�K�&�&�w���E����k�4�;�;�+;�+;�W�E����k�4�;�;�+;�+;�^�L��K�K���^�,����Q��#��K�K���=�>����Q��#�		$�		$�		$�s�C2D�D&c���G�fd�d�}td�D�cgc]}d|�t|�df��c}�tjd|j��5}�|j_|jj
td�dd	d
�|jt|dj�d�ddd�ycc}w#1swYyxYw)Nc���eZdZ�fd�Zy)�.FilterTests.test_mutate_filter_list.<locals>.Xc���g�ddyrer()r6�a�Ls  �r r�z4FilterTests.test_mutate_filter_list.<locals>.X.match=s�����!�r)N)r%r&r'r�)r�s�r �Xr�<s���
r)r�r�r�rTrq�bzf.pyr�r�)
r�r]rrFrrrArur�rh)r6r��ir`r�s    @r �test_mutate_filter_listz#FilterTests.test_mutate_filter_list;s����	�	�9>�a��A�1�i���K���A�
.�A��
�
-�
-�T��{�{�$�	6�'(�"#�D�K�K���K�K�%�%�k�#�&6��f�b�I����S��2����/��5�		6�	6��
B�	6�	6�s�C�A!C
�
Cc��tj|j��5|jj�|jj	dt
��|j
t|jj�d�|jj	dt
��|jj	dt
��|j
t|jj�dd�|j
|jjdddd	�ddd�y#1swYyxYw)
NrYrZr[r{rsr�z(filterwarnings inserted duplicate filterrz>filterwarnings did not promote filter to the beginning of list)	rrFrrErDr]rurvr�r6s r �%test_filterwarnings_duplicate_filtersz1FilterTests.test_filterwarnings_duplicate_filtersGs���
�
-�
-�T�[�[�
A�	��K�K�%�%�'��K�K�&�&�w��&�E����S����!4�!4�5�q�9��K�K�&�&�x�+�&�F��K�K�&�&�w��&�E�����D�K�K�'�'�(�!�:�
�
������#�#�A�&�q�)�7�(�
�	�	�	���D
D4�4D=c��tj|j��5|jj�|jj	dt
��|j
t|jj�d�|jj	dt
��|jj	dt
��|j
t|jj�dd�|j
|jjdddd	�ddd�y#1swYyxYw)
NrYrZr[r{rsr��&simplefilter inserted duplicate filterrz<simplefilter did not promote filter to the beginning of list)	rrFrrErr]rurvrr�s r �#test_simplefilter_duplicate_filtersz/FilterTests.test_simplefilter_duplicate_filtersXs���
�
-�
-�T�[�[�
A�
	��K�K�%�%�'��K�K�$�$�W�{�$�C����S����!4�!4�5�q�9��K�K�$�$�X��$�D��K�K�$�$�W�{�$�C�����D�K�K�'�'�(�!�8�
�
������#�#�A�&�q�)�7�N�
�
	�
	�
	�r�c�(�tj|jd��5}|jj�|jj	d�|jj	dd��|jj	dd��|jjdt��|jt|jj�dd	�|jt|�d
d�ddd�y#1swYyxYw)NT�rrrrsrZ�r��test_append_duplicater[r�r�rz+appended duplicate changed order of filters)
rrFrrErr@r]rurvrr_s  r r�z!FilterTests.test_append_duplicatehs���
�
-�
-�T�[�[���	� !��K�K�%�%�'��K�K�$�$�X�.��K�K�$�$�W�T�$�:��K�K�$�$�X�d�$�;��K�K���4�{��K����S����!4�!4�5�q�8�
�
���S��V�Q�=�
�	�	�	�s�CD�Dc��tj|j��5|jj�|jj	d�|jj|jd��5|jjd�ddd�ddd�y#1swY�xYw#1swYyxYw)NrYrZrs)r�actionzThis will be ignored)rrFrrErr@r�s r �+test_catchwarnings_with_simplefilter_ignorez7FilterTests.test_catchwarnings_with_simplefilter_ignorews���
�
-�
-�T�[�[�
A�	9��K�K�%�%�'��K�K�$�$�W�-����+�+��{�{�8�,��
9���� � �!7�8�
9�	9�	9�
9�
9��	9�	9�s$�AB7�>B+�B7�+B4	�0B7�7Cc
�\�tj|j��5|jj�|jj|jdt��5tj�5}d}|jj|�|jt|jjt	d��|j�}|j||�ddd�ddd�ddd�y#1swY�xYw#1swY�xYw#1swYyxYw)NrYrZ)rr�r\z&Other types of warnings are not errorsr�)rrFrrE�
FutureWarningrrkr@r^rlrm)r6rn�	error_msgs   r �*test_catchwarnings_with_simplefilter_errorz6FilterTests.test_catchwarnings_with_simplefilter_error�s���
�
-�
-�T�[�[�
A�	5��K�K�%�%�'����+�+��{�{�7�]�,��	
5��,�,�.�5�&� H�I��K�K�$�$�Y�/��%�%�m�&*�k�k�&6�&6�
�e�8L�N�#�_�_�.�F��M�M�)�V�4�
5�	
5�	5�	5�
5�5��	
5�	
5��	5�	5�s=�AD"�(D�=A4D
�1D�9D"�
D�D�D	�D"�"D+N)r%r&r'r:rarorxr}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r(r)r rWrWgsk��.�:�.�$E�(�
=�=�(?� 
(�(�"(�*M�(�7�6
$�
6��"� 
�9�5r)rWc��eZdZeZy)�CFilterTestsNrNr(r)r r�r��rPr)r�c��eZdZeZy)�
PyFilterTestsNrSr(r)r r�r��rUr)r�c�X�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zy)�	WarnTestsz2Test warnings.warn() and warnings.warn_explicit().c��tjd|j��5}|jjd�t	d�D]m}d|z}|jj|�|j
t|dj�|�|j|djt��o	ddd�y#1swYyxYw)NTrqr�zmulti %dr�)rrFrrr�r@rur�rhr�r\r])r6r`r�r�s    r �test_messagezWarnTests.test_message�s���
�
-�
-�T��{�{�$�	;�'(��K�K�$�$�V�,��1�X�
;��!�1�}����� � ��&�� � ��Q�r�U�]�]�!3�T�:��
�
�a��e�n�n�k�:�	
;�	;�	;�	;�s�BC�Cc
�l�tddfD]�}tjd|j��5}|jj	d�|jj|�|j
t|dj�tt|���ddd���y#1swY��xYw)Nr�Trqrr�)
r�rrFrrr@rur�rhr])r6�obr`s   r �test_warn_nonstandard_typesz%WarnTests.test_warn_nonstandard_types�s����D�"�%�	K�B�"�1�1���;�;�(�
K�+,����(�(��0���� � ��$�� � ��Q�r�U�]�]�!3�S��R��5I�J�

K�
K�	K�
K�
K�s�A1B*�*B3	c��t|j�5tjd|j��5}t	j
d�|j
tjj|dj�d�t	jd�|j
tjj|dj�d�ddd�ddd�y#1swY�xYw#1swYyxYw)NTrq�spam1r��
stacklevel.py�spam2�r!rrrFr�innerru�os�path�basenamer��outerr_s  r �
test_filenamezWarnTests.test_filename�s���
�D�K�K�
(�	5�"�1�1���;�;�(�
5�+,��#�#�G�,�� � ����!1�!1�!�B�%�.�.�!A�$3�5��#�#�G�,�� � ����!1�!1�!�B�%�.�.�!A�$3�5�

5�	5�	5�
5�
5��	5�	5�s#�"C8�B#C,�C8�,C5	�1C8�8Dc��t|j�5tjd|j��5}t	j
dd��|j
tjj|dj�d�t	jdd��|j
tjj|dj�d�t	j
d	d
��|j
tjj|dj�d�t	jdd
��|j
tjj|dj�d�t	jd
d��|j
tjj|dj�d�t	j
dd��|j
tjj|dj�d�ddd�ddd�y#1swY�xYw#1swYyxYw)NTrq�spam3r{rr�r��spam4�spam5r�r��spam6zspam6.5r��spam7i'rr�r_s  r �test_stacklevelzWarnTests.test_stacklevel�s����D�K�K�
(�	+�"�1�1���;�;�(�
+�+,��#�#�G��:�� � ����!1�!1�!�B�%�.�.�!A�$3�5��#�#�G��:�� � ����!1�!1�!�B�%�.�.�!A�$3�5��#�#�G��:�� � ����!1�!1�!�B�%�.�.�!A�$1�3��#�#�G��:�� � ����!1�!1�!�B�%�.�.�!A�$3�5��#�#�I�!�<�� � ����!1�!1�!�B�%�.�.�!A�$1�3��#�#�G��=�� � ����!1�!1�!�B�%�.�.�!A�$)�+�)
+�	+�	+�
+�
+��	+�	+�s#�"I�G3H<�+I�<I	�I�Ic��tjd�t|j�5t	j
d|j��5}|jj
d�ddl}|jt|�d�|j|djt�ddd�ddd�y#1swY�xYw#1swYyxYw)Nz&test.test_warnings.data.import_warningTrqrrr{)r�unloadr!rrrFr�&test.test_warnings.data.import_warningrurvr��__file__)r6r`�tests   r �test_stacklevel_importz WarnTests.test_stacklevel_import�s������E�F�
�D�K�K�
(�	:�"�1�1���;�;�(�
:�+,����(�(��2�=�� � ��Q���+�� � ��1�����9�
:�	:�	:�
:�
:��	:�	:�s$�"C�
AB<�+C�<C	�C�Cc� �t|j�5tjd|j��5}|jj	d�tjddtj��|j|djt�tjdd�	�|j|djt�|j|d
j|dj�tjdd�	�|j|djt�tjd
d�	�|j|djt�tjdd�	�|j|djt�tjdd�	�|jd|dj�ddd�ddd�y#1swY�xYw#1swYyxYw)NTrqr�	inner_apir�)r
�warnings_moduler�zpackage apir���z
package api 1r{z
package api 0rzpackage api -99i�����prefix02r�r-)r!rrrFrrr�rrrur�r��packagermr_s  r �test_skip_file_prefixesz!WarnTests.test_skip_file_prefixes�s���
�D�K�K�
(�	:�"�1�1���;�;�(�
:�+,����(�(��2��(�(�#��(5�(>�(>�@�� � ��2�����:��%�%�m��B�� � ��2�����:�� � ��2�����2����@��%�%�o�!�D�� � ��2�����:��%�%�o�!�D�� � ��2�����:��%�%�&7�C�H�� � ��2�����:��%�%�j�Q�?��
�
�j�!�B�%�.�.�9�-
:�	:�	:�
:�
:��	:�	:�s#�"H�F/G8�'H�8H	�=H�H
c���t|j�5tjj}|jt�5|dg��ddd�|jt�5|dd��ddd�|jt�5|dd��ddd�ddd�y#1swY�bxYw#1swY�FxYw#1swY�*xYw#1swYyxYw)Nr�)�skip_file_prefixes)sbytesza sequence of strs)r!rrrr@r^r�)r6r@s  r �#test_skip_file_prefixes_type_errorsz-WarnTests.test_skip_file_prefixes_type_errors�s���
�D�K�K�
(�	E� �)�)�.�.�D��"�"�9�-�
3��U�r�2�
3��"�"�9�-�
<��U�{�;�
<��"�"�9�-�
E��U�/C�D�
E�
	E�	E�
3�
3��
<�
<��
E�
E��
	E�	E�sS�0C�B2�C�.B>�9C�C
�!C�2B;	�7C�>C	�C�
C	�C�Cc��d}td|d�}tjd��5}|jj	dt
��t
|�ddd�|jdj|�y#1swY�)xYw)	Nz<warnings-test>z3import warnings
warnings.warn('hello', UserWarning)�execT)rrrr[r)	�compilerrFrrr]r�rur�)r6r��codeobjr`s    r �test_exec_filenamezWarnTests.test_exec_filenames{��$���A�"�F�,���
-�
-�T�
:�	�a��K�K�$�$�X��$�D���M�	�	
����1�����1�	�	�s�-A;�;Bc�
�tjd|j��5}|jj�|jj	dt
��dg}tjs|jd�|D]Y}	tj|�|jjdt
|d�|j|d	j|��[	ddd�y#t$rY�qwxYw#1swYyxYw)
NTrqrr[u
nonasciié€usurrogate�r�r{r�)rrFrrErDr]r�
is_emscriptenr�r��fsencode�UnicodeEncodeErrorrArur�)r6r`�	filenamesr�s    r �%test_warn_explicit_non_ascii_filenamez/WarnTests.test_warn_explicit_non_ascii_filenames���
�
-�
-�T��{�{�$�	;�'(��K�K�%�%�'��K�K�&�&�x�+�&�F�-�.�I��(�(�
� � �!2�3�%�
;����K�K��)����)�)�&�+�x��K�� � ��2�����:�

;�	;�	;��*�����	;�	;�s1�A%C9�C*�AC9�*	C6�3C9�5C6�6C9�9Dc	�8�|jt|jjdtdd�|jt|jjdddd�|jtt
f|jjdtddd��y)Nr{r���registry)r^r�rrAr]rr�r�s r �test_warn_explicit_type_errorsz(WarnTests.test_warn_explicit_type_errors"s���	
���)�T�[�[�%>�%>� �+�t�T�	;�	
���)�T�[�[�%>�%>� �$��a�	1�	
���9�n�5� �K�K�5�5� �'�4��R�	�	Ar)c��Gd�dt�}|jt�5|jj	|��ddd�y#1swYyxYw)Nc��eZdZdZd�Zy)�-WarnTests.test_bad_str.<locals>.BadStrWarningz-Warning with a bad format string for __str__.c��dddizS)NzA bad formatted string %(err)�errzthere is no %(err)sr(r�s r �__str__z5WarnTests.test_bad_str.<locals>.BadStrWarning.__str__7s��7��!6�7�8�9r)N)r%r&r'r:rr(r)r �
BadStrWarningr5s
��?�
9r)r)r�r^r�rr@)r6rs  r �test_bad_strzWarnTests.test_bad_str1sG��	9�G�	9��
�
�z�
*�	.��K�K���]�_�-�	.�	.�	.�s�!A�Ac��Gd�dt�}Gd�d�}|jt�5}|jj	dd�ddd�|jdt
j��|jt�5}|jj	d|�ddd�|jdt
|j��|jt�5}|jj	d|��ddd�|jdt
|j��tj|j��5|jj�|jjd	�|j|�5}|jj	d
|�ddd�|jd
t
|j��|jt�5}|jj	d
d�ddd�|jd
t
|j��|j|�5}|jj	d
|�ddd�|j!|jt�ddd�y#1swY��axYw#1swY��xYw#1swY���xYw#1swY��xYw#1swY��xYw#1swY�rxYw#1swYyxYw)Nc��eZdZy)�6WarnTests.test_warning_classes.<locals>.MyWarningClassNr$r(r)r �MyWarningClassr?���r)rc��eZdZy)�:WarnTests.test_warning_classes.<locals>.NonWarningSubclassNr$r(r)r �NonWarningSubclassrBrr)rzbad warning categoryr�z)category must be a Warning subclass, not rYr�zgood warning category)r�r^r�rr@rmr��	exceptionrrFrErD�assertWarnsru�warningr]�assertIsInstance)r6rr�cms    r �test_warning_classeszWarnTests.test_warning_classes>sy��	�W�	�	�	��
�
�y�
)�	9�R��K�K���3�R�8�	9��
�
�A��"�,�,�'�	)��
�
�y�
)�	I�R��K�K���3�5G�H�	I��
�
�A��"�,�,�'�	)��
�
�y�
)�	G�R��K�K���3�^�5E�F�	G��
�
�A��"�,�,�'�	)��
-�
-�T�[�[�
A�
	7��K�K�%�%�'��K�K�&�&�y�1��!�!�.�1�
J�R���� � �!8�.�I�
J����4�c�"�*�*�o�F��!�!�+�.�
@�"���� � �!8�$�?�
@����4�c�"�*�*�o�F��!�!�.�1�
J�R���� � �!8�.�I�
J��!�!�"�*�*�g�6�
	7�
	7�!	9�	9��
	I�	I��	G�	G��
J�
J��
@�
@��
J�
J��
	7�
	7�sy�J+�J8�-"K�AK7�#K�AK7�K�>K7�K+�:(K7�+J5�8K�K�K	�K7�K(	�$K7�+K4	�0K7�7LN)r%r&r'r:r�r�r�r�r�r�r�r�rrrrr(r)r r�r��sD��<�;�	K�	5�+�6	:�:�4E�2�;�(
A�.�%7r)r�c��eZdZeZd�Zy)�
CWarnTestsc��|jt|j�|jt	|jj
d��y�N�__code__)�assertIsNotrr�assertFalser1r@r�s r �test_acceleratedzCWarnTests.test_acceleratedjs6�����*�D�K�K�8��������!1�!1�:�>�?r)N)r%r&r'rOrr&r(r)r r r es
��
�F�@r)r c��eZdZeZd�Zy)�PyWarnTestsc��|jt|j�|jt	|jj
d��yr")r$rrrGr1r@r�s r �test_pure_pythonzPyWarnTests.test_pure_pythonss4�����*�D�K�K�8�������� 0� 0�*�=�>r)N)r%r&r'rTrr*r(r)r r(r(ns��
�F�?r)r(c��eZdZd�Zd�Zy)�
WCmdLineTestsc��tj|j��5|j|jj|jj
d�|j|jj|jj
d�|j|jj|jj
d�|j|jj�5|jjd�ddd�|j|jj�5|jjd�ddd�|j|jj�5|jjd�ddd�|j
|jjd�5|jjd	�ddd�|jjd
�|jt|jjd�ddd�y#1swY��5xYw#1swY��xYw#1swY��xYw#1swY�}xYw#1swYyxYw)NrYz1:2:3:4:5:6zbogus::Warningzignore:2::4:-5zignore::123zignore::123abczignore::===uWärninguignore::Wärningzerror::Warning::0r�)	rrFrr^�_OptionError�
_setoption�assertRaisesRegexr]r@r�s r �test_improper_inputz!WCmdLineTests.test_improper_inputzs����
-�
-�T�[�[�
A�	Q����d�k�k�6�6�"�k�k�4�4�m�
E����d�k�k�6�6�"�k�k�4�4�6F�
H����d�k�k�6�6�"�k�k�4�4�6F�
H��"�"�4�;�;�#;�#;�<�
6����&�&�}�5�
6��"�"�4�;�;�#;�#;�<�
9����&�&�'7�8�
9��"�"�4�;�;�#;�#;�<�
6����&�&�}�5�
6��'�'����(@�(@�*�M�
;����&�&�'9�:�
;��K�K�"�"�#6�7����k�4�;�;�+;�+;�=O�P�!	Q�	Q�
6�
6��
9�
9��
6�
6��
;�
;��	Q�	Q�sm�CI8�8I�-I8�I�-I8�
I �&.I8�I,�0AI8�I	�I8�I	�I8� I)	�%I8�,I5	�1I8�8Jc���tj|j��5|jjd�|j	|jj
�5|jjd�ddd�|j	|jj
�5|jjd�ddd�|jjd�|j	t�5|jjdt�ddd�ddd�y#1swY��xYw#1swY�wxYw#1swY�*xYw#1swYyxYw)NrYzignore::Warningzignore::TestWarningz ignore::test.test_warnings.bogusz%error::test.test_warnings.TestWarningztest warning)rrFrr/r^r.r#r@r�s r �test_import_from_modulez%WCmdLineTests.test_import_from_module�s��
�
-�
-�T�[�[�
A�	>��K�K�"�"�#4�5��"�"�4�;�;�#;�#;�<�
>����&�&�'<�=�
>��"�"�4�;�;�#;�#;�<�
K����&�&�'I�J�
K��K�K�"�"�#J�K��"�"�;�/�
>���� � ���=�
>�	>�	>�
>�
>��
K�
K��
>�
>��	>�	>�sT�AE�"D1�>-E�+D=�8E�?!E	� E�1D:	�6E�=E	�E�	E	�E�EN)r%r&r'r1r3r(r)r r,r,xs
��Q�*	>r)r,c��eZdZeZy)�CWCmdLineTestsNrNr(r)r r5r5�rPr)r5c��eZdZeZd�Zd�Zy)�PyWCmdLineTestsc�J�tddd�\}}}|jd|�y)Nz-Wxxx�-c�passs0Invalid -W option ignored: invalid action: 'xxx')r	rm�r6�rc�outr
s    r �test_improper_optionz$PyWCmdLineTests.test_improper_option�s'��(���v�>���C���
�
�I�3�Or)c��tddd�\}}}|j|j��|jd|�y)Nz-Wir9z?import sys; sys.modules['warnings'].warn('foo', RuntimeWarning)sRuntimeWarning)r	r%�strip�assertNotInr;s    r �test_warnings_bootstrapz'PyWCmdLineTests.test_warnings_bootstrap�sC��(��t�M�O���C��	
�������%����*�C�0r)N)r%r&r'rTrr>rBr(r)r r7r7�s��
�F�P�1r)r7c��eZdZdZeZd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zej"d��Zej"d
��Zej"d��Zy)�_WarningsTestsz'Tests specific to the _warnings module.c�x�tj|j��5}|jjddtdd�|jt|jjd�|j`|jt|jjd�ddd�y#1swYyxYw)NrYrZr�rr�)	rrFrrDr�r^r]r@rr_s  r �test_filterz_WarningsTests.test_filter�s���
�
-�
-�T�[�[�
A�	4�Q��K�K�&�&�w��G�R��C����k�4�;�;�+;�+;� 2�
4����#����k�4�;�;�+;�+;� 2�
4�	4�	4�	4�s�BB0�0B9c���td�}	|jj}iat	j
d|j��5}|jj
�|jjdt��|jj|tdd�|j|dj|�|dd�=|jj|tdd�|jt|�d	�i|j_ia|jjd�|j|djj|j�|dd�=|j`ia|jj|tdd�|jt|�d	�ddd�||j_y#1swY�xYw#|j_wxYw)
Nzonceregistry testTrqrr[�filer�r�r)r]r�onceregistryrrrFrErDrArurhrvr@r�)r6rh�original_registryr`s    r �test_onceregistryz _WarningsTests.test_onceregistry�s����1�2��	9� $��� 8� 8��"$��"�1�1���;�;�(�
,�+,����)�)�+����*�*�6�K�*�H����)�)�'�;���K�� � ��2�����8��a�D����)�)�'�;���K�� � ��Q���+�+-����(�&(�#���� � �!4�5�� � ��2����!3�!3�W�\�\�B��a�D��K�K�,�&(�#����)�)�'�;���K�� � ��Q���+�'
,�*(9�D�K�K�$�+
,�
,��*(9�D�K�K�$�s$�9G�E0G�6G�G�G�G/c��td�}|jj}	tjd|j��5}|jj�i}|jj
|tdd|��|j|dj|�|jt|�d�|jt|�d	�|jd
|�|dd�=|j`i}i}|jj
|tdd|��|j|dj|�|jt|�d�|jt|�d	�|dd�=d|j_i}i}|jj
|tdd
|��|jt|�d�ddd�||j_y#1swY�xYw#||j_wxYw)Nzdefaultaction testTrqz<test>r�rr�r{r�rt�+rs�,r)r]r�
defaultactionrrFrErArurhrvrm)r6rh�originalr`rrs      r �test_default_actionz"_WarningsTests.test_default_action�s����2�3���;�;�,�,��	1�"�1�1���;�;�(�
,�+,����)�)�+������)�)�'�;��"�5=�*�?�� � ��2�����8�� � ��Q���+�� � ��X���2��
�
�i��2��a�D��K�K�-�&(�#������)�)�'�;��"�5=�*�?�� � ��2�����8�� � ��Q���+�� � ��X���2��a�D�,4����)�&(�#������)�)�'�;��"�5=�*�?�� � ��Q���+�9
,�<)1�D�K�K�%�=
,�
,��<)1�D�K�K�%�s$�!G9�FG-�G9�-G6�2G9�9Hc��d}tj|j��5|jjdt��|j`t
jd�5}|jj|�|j�}ddd�ddd�|j|�y#1swY�$xYw#1swY�(xYw)Nzdel showwarning testrYrr[rn)rrFrrDr]rBr�captured_outputr@rlrm)r6r��stream�results    r �test_showwarning_missingz'_WarningsTests.test_showwarning_missings���%��
�
-�
-�T�[�[�
A�	+��K�K�&�&�x�+�&�F����'��(�(��2�
+�f���� � ��&����*��
+�	+�	
�
�
�d�F�#�
+�
+��	+�	+�s$�AC�&,B5�C�5B>	�:C�C
c��d}tj|j��5|jjdt��|jj
}	|j`t
jd�5}|jj|�|j�}ddd�||j_	ddd�|j|�y#1swY�6xYw#||j_wxYw#1swY�>xYw)Nzdel _showwarnmsg testrYrr[rn)rrFrrDr]�_showwarnmsgrrSr@rlrm)r6r��showrTrUs     r �test_showwarnmsg_missingz'_WarningsTests.test_showwarnmsg_missings���&��
�
-�
-�T�[�[�
A�
	0��K�K�&�&�x�+�&�F��;�;�+�+�D�
0��K�K�,��,�,�X�6�/�&��K�K�$�$�T�*�#�_�_�.�F�/�,0����(�
	0�	
�
�
�d�F�#�/�/��,0����(��
	0�
	0�s;�8D�!C*�=,C�)C*�1D�C'	�#C*�*C=�=D�D	c���tj|j��5|jjdt��t
|j_tjd�5|jjd�ddd�d|j_|jt|jjd�ddd�y#1swY�NxYw#1swYyxYw)NrYrr[�stdoutzWarning!�)rrFrrDr]�printrBrrSr@r^r�r�s r �test_showwarning_not_callablez,_WarningsTests.test_showwarning_not_callable!s���
�
-�
-�T�[�[�
A�	G��K�K�&�&�x�+�&�F�&+�D�K�K�#��(�(��2�
-���� � ��,�
-�&(�D�K�K�#����i����)9�)9�:�F�
	G�	G�
-�
-��	G�	G�s%�AC"�-C�	AC"�C	�C"�"C+c��d}tj|j��5|jjdt��|j`t
jd�5}tj|�|j�}ddd�ddd�|jjd�dd|z�|jdd	�\}}tjj!tj"�d
dz}|j%dd
�}|\}}	}
}t'|	�}	|j||�|j|
dtj(z�|j|d|z�dt+j,||	�j/�zdz}|sJ�|j||�y#1swY��.xYw#1swY��3xYw)Nztest show_warningrYrr[rn�
r�zToo many newlines in %rr{r�.py�:r�� z  )rrFrrDr]rBrrSrr�rlru�count�splitr�r��splitextr��rsplit�intr%�	linecache�getliner@)
r6r�rTrU�
first_line�second_line�
expected_file�first_line_partsr��line�
warning_classrh�
expected_lines
             r �test_show_warning_outputz'_WarningsTests.test_show_warning_output*s���"��
�
-�
-�T�[�[�
A�	+��K�K�&�&�x�+�&�F����'��(�(��2�
+�f��#�#�D�)����*��
+�	+�	
������d�+�Q�6��?�	A�"(�,�,�t�Q�"7��
�K����(�(��)?�)?�@��C�e�K�
�%�,�,�S�!�4��-=�*��d�M�7��4�y�������-������k�.B�.B�(B�C�����#��*�-��y�0�0��t�<�B�B�D�D�t�K�
�������m�4�
+�
+��	+�	+�s$�AG�&&F8�G�8G	�=G�Gc�f�t�}|d}	tjd|j��}|5}|jj	dt
��d|d<tjdt
�|jt|��ddd�||d<y#1swY�xYw#||d<wxYw)Nr�Trqrr[r�)	r0rrFrrDr]r@rGrv)r6�globals_dict�oldfile�catchr`s     r �test_filename_nonez!_WarningsTests.test_filename_noneAs����y���z�*��		/�%�4�4�D�<@�K�K�I�E��
(�!����*�*�8�k�*�J�+/��Z�(�!�&�&�v�{�;�����A��'�	
(�(/�L��$�

(�
(��(/�L��$�s#�#B)�AB�B)�B&�"B)�)B0c��tdd�\}}}|j|d�|jd|�|jd|�y)Nr9zjimport sys; sys.stderr = None; import warnings; warnings.simplefilter('always'); warnings.warn('Warning!')r)sWarning!sError)r	rurA�r6r<r\rns    r �test_stderr_nonez_WarningsTests.test_stderr_nonePsL��-�d�
(�)���F�F�	
�����%�����f�-�����6�*r)c��d�}|j}tj|��5|jdt��tj�5}|jdtdd|d�d	d
���ddd�|jdj��|j}	|`
tj�5}|jd
tdd|dg�d	d
���ddd�|jd|j��||_
	ddd�y#1swY��xYw#1swY�FxYw#||_
wxYw#1swYyxYw)Nc�*��G�fd�d�}|�S)Nc���eZdZ�fd�Zy)�I_WarningsTests.test_issue31285.<locals>.get_bad_loader.<locals>.BadLoaderc�6��G�fd�dt�}|d�S)Nc���eZdZ�fd�Zy)�g_WarningsTests.test_issue31285.<locals>.get_bad_loader.<locals>.BadLoader.get_source.<locals>.BadSourcec����Srer()r6�splitlines_ret_vals �r �
splitlineszr_WarningsTests.test_issue31285.<locals>.get_bad_loader.<locals>.BadLoader.get_source.<locals>.BadSource.splitlinesas	���#5�5r)N)r%r&r'r��r�s�r �	BadSourcer�`s���6r)r��spam)r�)r6�fullnamer�r�s   �r �
get_sourcezT_WarningsTests.test_issue31285.<locals>.get_bad_loader.<locals>.BadLoader.get_source_s���6�C�6�%�V�,�,r)N)r%r&r'r�r�s�r �	BadLoaderr^s���-r)r�r()r�r�s` r �get_bad_loaderz6_WarningsTests.test_issue31285.<locals>.get_bad_loader]s���
-�
-��;�r)rYr�r[�foo�barr{r��foobar)�
__loader__r%r�zUserWarning: foo�eggszUserWarning: eggs)rrrFrDr]rrkrArmrlrX)r6r��wmodrnrYs     r �test_issue31285z_WarningsTests.test_issue31285YsF��	��{�{��
�
-�
-�T�
:�	)����	�K��@��(�(�*�
;�f��"�"��;��q�2@��2D�08�$:�#�;�
;�

�M�M�,�f�o�o�.?�@��$�$�D�	
)��%��,�,�.�?�&��&�&���U�A�6D�b�T�6J�4<�(>�'�?�?�
�
�
�1�6�?�?�3D�E�$(��!�)	)�	)�
;�
;��?�?��%)��!��)	)�	)�sS�,E�$D�64E�+D7�%D+�&(D7�E�D(	�$E�+D4	�0D7�7	E�E�Ec
�t�|j}tj|��5|jd�t	j
|dd�5|j
t�5|jdtddd��ddd�ddd�ddd�y#1swY�xYw#1swY�xYw#1swYyxYw)NrYrrIr�r�r{r)
rrrFrDr�	swap_attrr^r�rAr��r6r�s  r �test_issue31411z_WarningsTests.test_issue31411}s����{�{��
�
-�
-�T�
:�	P�����'��"�"�4���>�
P��&�&�y�1�P��&�&�u�g�u�a�$�&�O�P�
P�	P�	P�P�P��
P�
P��	P�	P�s;�)B.�B"�"B�=B"�B.�B�B"�"B+	�'B.�.B7c	��|j}tj|��5ddtddfg|_|jt�5|jdtdd�ddd�g|_tj|dd�5|jt�5|jdtdd�ddd�ddd�ddd�y#1swY�oxYw#1swY�&xYw#1swY�*xYw#1swYyxYw)NrYrr�r�r{rO)
rrrFr�rr^r�rArr�r�s  r �test_issue31416z_WarningsTests.test_issue31416�s����{�{��
�
-�
-�T�
:�	=�!�4��$��:�;�D�L��"�"�9�-�
=��"�"�5�'�5�!�<�
=��D�L��"�"�4��$�?�
=��"�"�9�-�
=��"�"�5�'�5�!�<�
=�
=�
	=�	=�
=�
=��
=�
=��
=�
=��
	=�	=�sS�'C5�
C�#&C5�	C)�C�8C)�C5�C	�C5�C&�"C)�)C2	�.C5�5C>c���tj|j��5|jjdt��tjt�dd�5tjt�dd�5|jt|jjd�ddd�ddd�ddd�y#1swY�xYw#1swY�xYw#1swYyxYw)NrYrZr[r%sfoor�r�)
rrFrrDr]r�	swap_itemr0r^r@r�s r �test_issue31566z_WarningsTests.test_issue31566�s����
-�
-�T�[�[�
A�	H��K�K�&�&�w��&�E��"�"�7�9�j�&�A�
H��"�"�7�9�j�$�?�
H��!�!�+�t�{�{�/?�/?��G�
H�
H�	H�	H�
H�
H��
H�
H��	H�	H�s<�AC�" C�,C�.C�6C�C�C�C	�C�C(N)r%r&r'r:rOrrFrKrQrVrZr_rsrxr{r�r�cpython_onlyr�r�r�r(r)r rDrD�s���1�
�F�4�9�<#1�J	$�$� G�5�.
/�+�")�H
���P��P�
���=��=�
���H��Hr)rDc�"�eZdZdZd�Zd�Zd�Zy)�WarningsDisplayTestsziTest the displaying of warnings and the ability to overload functions
    related to displaying warnings.c
���d}t}tjjtj
�ddz}d}t
j||�j�}d}||||j||fz}|j||jj||||��|dz
}||||j||fz}|j||jj|||||��y)Nr�rrb�z%s:%s: %s: %s
  %s
z
 for the win!)
r�r�r�rgrr�rjrkr@r%rurrC)r6rhr\�	file_name�line_num�	file_line�format�expects        r �test_formatwarningz'WarningsDisplayTests.test_formatwarning�s��������G�G�$�$�]�%;�%;�<�Q�?�%�G�	����%�%�i��:�@�@�B�	�(���9�h��0A�0A�7�%�'�'���������!:�!:�7�08�)�X�"O�	P�	�_�$�	��9�h��0A�0A�7�%�'�'���������!:�!:�7�$,�i��9�"N�	Or)c�p�tjjtj�ddz}d}tj||�j�}d}t}t�}|jj||||�}|jj|||||�|j|j�|�|dz
}|jj|||||�}t�}|jj||||||�|j||j��y)Nrrbr�r�zfor the win!)r�r�rgrr�rjrkr@r�rrrCrBrurl)r6r�r��expected_file_linerhr\�file_objectr�s        r �test_showwarningz%WarningsDisplayTests.test_showwarning�s���G�G�$�$�]�%;�%;�<�Q�?�%�G�	���&�.�.�y�(�C�I�I�K�������j�����*�*�7�H�i�,4�6���������9�h� +�	-�����-�-�/��8��n�,�����*�*�7�H�i�,4�6H�J���j���������9�h� +�-?�	A������!5�!5�!7�8r)c	���d�}tjjtj�ddz}d}tj||�j�}d}t}t�}d|�d|�d|�d	|��d
|��z}tj|jd|�5|jj||||||�|j|j�|�ddd�y#1swYyxYw)Nc
�$�d|�d|�d|�d|�d|��
S)N�m=�:c=�:f=�:l=�:t=r()rhr\r��linenor�s     r �myformatwarningzIWarningsDisplayTests.test_formatwarning_override.<locals>.myformatwarning�s'����y��H�:�S��
�#�f�X�S���O�Or)rrbr�r�r�r�r�r�r�rC)r�r�rgrr�rjrkr@r�rrr�rrBrurl)	r6r�r�r�r�rhr\r��expecteds	         r �test_formatwarning_overridez0WarningsDisplayTests.test_formatwarning_override�s���	P��G�G�$�$�]�%;�%;�<�Q�?�%�G�	����%�%�i��:�@�@�B�	������j����y��H�:�S���3�x�j�I����$�%��
�
�
�t�{�{�O�_�
M�	?��K�K�#�#�G�X�y�(�$/��
<����[�1�1�3�X�>�	?�	?�	?�s
�$AC.�.C7N)r%r&r'r:r�r�r�r(r)r r�r��s��'�O�$9�*?r)r�c��eZdZeZy)�CWarningsDisplayTestsNrNr(r)r r�r��rPr)r�c��eZdZeZd�Zy)�PyWarningsDisplayTestsc	��|jtjtj�t	tjdd��5}|jt
jd��ddd�d�}tjjtj�}|dtj�}t
jd|�d��j�}|j||�|dd	d
tj�}t
jd|�d|�d|�d
��j�}|j||�y#1swY��xYw)Nr`�utf-8)�encodingz�
                def func():
                    f = open(__file__, "rb")
                    # Emit ResourceWarning
                    f = None

                func()
            c��t|ddi�}|jjdd�}dj|j	��}tjdd|�}|S)N�PYTHONIOENCODINGr��replaceraz<.*>z<...>)r	r
�decode�joinr��re�sub)r��resrns   r �runz4PyWarningsDisplayTests.test_tracemalloc.<locals>.run�sU��"�D�C�7�C�C��W�W�^�^�G�Y�7�F��Y�Y�v�0�0�2�3�F��V�V�F�G�V�4�F��Mr)�-Wdz
            z�:5: ResourceWarning: unclosed file <...>
              f = None
            ResourceWarning: Enable tracemalloc to get the object allocation traceback
        z-Xz
tracemalloc=2z�:5: ResourceWarning: unclosed file <...>
              f = None
            Object allocated at (most recent call last):
              File "z7", lineno 7
                func()
              File "z=", lineno 3
                f = open(__file__, "rb")
        )
�
addCleanupr�unlink�TESTFN�open�write�textwrap�dedentr�r��abspathr@ru)r6�fpr�r�rnr�s      r �test_tracemallocz'PyWarningsDisplayTests.test_tracemalloc�sA�����	�(�(�)�*:�*:�;�
�)�"�"�C�'�
:�	�b��H�H�X�_�_�&��
�	�	��7�7�?�?�9�#3�#3�4���U�I�,�,�-���?�?�(
�
�J�	�$�
��U�W�		�
	
�����*��U�D�/�9�3C�3C�D���?�?�(
�
�J���J���J�	�
$�
��U�W�	�	
�����*�Q	�	�s�%E�EN)r%r&r'rTrr�r(r)r r�r��s��
�F�++r)r�c�:�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
y	)
�CatchWarningTestszTest catch_warnings().c�$�|j}|j}|j}|j|d��5t	�x|_|_ddd�|j|j|�|j|j|�|j|d��5t	�x|_|_ddd�|j|j|�|j|j|�y#1swY��xYw#1swY�NxYw�NTr�F)rrrBrF�objectr�)r6r��orig_filters�orig_showwarnings    r �test_catch_warnings_restorez-CatchWarningTests.test_catch_warnings_restores����{�{���|�|���+�+��
�
 �
 ��T�
 �
:�	7�.4�h�6�D�L�4�+�	7��
�
�d�l�l�L�1��
�
�d�&�&�(8�9�
�
 �
 ��U�
 �
;�	7�.4�h�6�D�L�4�+�	7��
�
�d�l�l�L�1��
�
�d�&�&�(8�9�	7�	7��
	7�	7�s�C:�"D�:D�Dc�d�|j}|j|d��5}|j|g�|jt	|�t
�|j
d�|jd�|jt|dj�d�|jd�|jt|dj�d�|jt|dj�d�|jt|dj�d�|dd�=|j|g�ddd�|j}|j|d	��5}|j|�|j|j|�ddd�y#1swY�_xYw#1swYyxYw)
NTr�rr�r�r�rr{F)rrFrur��typerwrr@r�rhrB�assertIsNone)r6r�r`r�s    r �test_catch_warnings_recordingz/CatchWarningTests.test_catch_warnings_recording)sh���{�{��
�
 �
 ��T�
 �
:�	$�a����Q��#��M�M�$�q�'�4�(����h�'��I�I�e�����S��2����/��7��I�I�e�����S��2����/��7����S��1����.��6����S��1����.��6��!�����Q��#�	$� �+�+��
�
 �
 ��U�
 �
;�	>�q����a� ��M�M�$�*�*�,<�=�	>�	>�	$�	$��	>�	>�s�DF�#.F&�F#�&F/c���|j}|j|d��}|jt|j�|5|jt|j
�ddd�|j|d��}|jt|j�|5|jt|j
�ddd�y#1swY�hxYw#1swYyxYwr�)rrFr^�RuntimeError�__exit__�	__enter__)r6r�r�s   r �!test_catch_warnings_reentry_guardz3CatchWarningTests.test_catch_warnings_reentry_guard>s����{�{�����t�D��9�����,��
�
�3�
�	9����l�A�K�K�8�	9�
���t�E��:�����,��
�
�3�
�	9����l�A�K�K�8�	9�	9�	9�	9��
	9�	9�s�!C
� !C�
C�Cc��|j}|j}|j}|j|��5}|j	|�|j|j|�|j
|j|�ddd�|j|j|�|tjdur|j�5}|j	|�|j|j|�|j
|j|�ddd�|j|j|�yy#1swY��xYw#1swY�3xYw)NrYr)	rrrBrFr�r�r$rr2)r6r�r�r�r`s     r �test_catch_warnings_defaultsz.CatchWarningTests.test_catch_warnings_defaultsKs���{�{���|�|���+�+��
�
 �
 ��
 �
-�	9�����a� ��M�M�$�*�*�,<�=����T�\�\�<�8�	9�	
�
�
�d�l�l�L�1��3�;�;�z�*�*��$�$�&�
=�!��!�!�!�$��
�
�d�.�.�0@�A�� � ����|�<�
=�
�M�M�$�,�,��5�
+�	9�	9��
=�
=�s�A
D:�
A
E�:E�Ec�B��d}|j}g�d	�fd�	}tj|d|�5|j|d��5}|j	|j
|�|j
d�|j|�ddd�|j|j
|�ddd�|jt�d|�|j|djjd|�|j�g�y#1swY��xYw#1swY�pxYw)
N�This is a warningc�(���j|�yrer��rhr\r�r�rHrp�my_logs      �r �	my_loggerzLCatchWarningTests.test_record_override_showwarning_before.<locals>.my_loggerd�����M�M�'�"r)rBTr�rr{r�NN)
rrr�rFr$rBrr@r�rurvrhr��r6r�r�r��logr�s     @r �'test_record_override_showwarning_beforez9CatchWarningTests.test_record_override_showwarning_before]s���#���{�{����	#�
�
�
�t�]�I�
>�	7��$�$�D��$�>�
 �#�� � ��!1�!1�9�=��!�!�(�+��	�	�$��	
 �
�M�M�$�*�*�I�6�	7�	
����S��1�c�*�����Q����,�,�Q�/��6������$�
 �
 ��	7�	7�s#�D�?D	�$D�	D	�D�Dc�t��d}|j}g�d�fd�	}|j|d��5}|jd�||_|j	|�ddd�|jt
��d��|j�djd|�|jg�y#1swY�ZxYw)	Nr�c�(���j|�yrer�r�s      �r r�zLCatchWarningTests.test_record_override_showwarning_inside.<locals>.my_logger}r�r)Tr�rr{rr�)rrFrrBr@rurvr�r�s     @r �'test_record_override_showwarning_insidez9CatchWarningTests.test_record_override_showwarning_insidevs����#���{�{����	#��
 �
 ��T�
 �
:�	�c����h�'�(�D���I�I�d�O�	�
	
����V��a��0����������*�D�1�����b�!�	�	�s�*B.�.B7c�r�|j}|tjdur|jd�t	j
d��5}|j
|jg�|jd�|jd�|j
t|j�d�|jd�|j
t|j�d�|j
t|jdj�d�|j
t|jd	j�d�|j�|j
|jg�ddd�t	j
�5	ddd�t	j
dtf�5|jd�ddd�|jt�5t	j
d
t f�5	ddd�ddd�|jt�5t	j
dt f�5|jd�ddd�ddd�y#1swY��xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY�NxYw#1swYyxYw)Nrz,module to test is not loaded warnings moduleF��quietrr�r�rr{r�)rrr2�skipTestr�check_warningsrurrr@r�rh�resetr]r^�AssertionError�RuntimeWarning)r6r�r`s   r �test_check_warningsz%CatchWarningTests.test_check_warnings�s%���{�{���s�{�{�:�.�.��M�M�H�I�
�
+�
+�%�
8�
	-�A����Q�Z�Z��,����h�'��I�I�e�����S����^�U�3��I�I�e�����S����^�U�3����S����A��!6�!6�7��?����S����A��!6�!6�7��?�
�G�G�I����Q�Z�Z��,�
	-��
+�
+�
-�	��	��
+�
+�U�K�,@�
A�	��I�I�e��	��
�
�~�
.�	� �/�/��^�0D�E�
��
�	��
�
�~�
.�	!� �/�/���0G�H�
!��	�	�%� �
!�	!�	!�-
	-�
	-��	�	��	�	��
�
��	�	��

!�
!��	!�	!�sm�	D*I%�I1�4I=�#J�?J	�J�&J-�J!�J-�%I.�1I:�=J�	J	�J�J�!J*	�&J-�-J6N)r%r&r'r:r�r�r�r�r�r�r�r(r)r r�r�s(�� �
:�>�*9�6�$%�2"�(!r)r�c��eZdZeZy)�CCatchWarningTestsNrNr(r)r r�r��rPr)r�c��eZdZeZy)�PyCatchWarningTestsNrSr(r)r r�r��rUr)r�c��eZdZd�Zd�Zd�Zd�Zd�Zeje
j�dk7d�d��Zy	)
�EnvironmentVariableTestsc�N�tdddd��\}}}|j|d�y)Nr9�2import sys; sys.stdout.write(str(sys.warnoptions))�ignore::DeprecationWarningr���PYTHONWARNINGS�
PYTHONDEVMODEs['ignore::DeprecationWarning']�r	rurzs    r �test_single_warningz,EnvironmentVariableTests.test_single_warning�s1��-�d�@�7�����F�F�	
����!B�Cr)c�N�tdddd��\}}}|j|d�y)Nr9rz1ignore::DeprecationWarning,ignore::UnicodeWarningr�r�8['ignore::DeprecationWarning', 'ignore::UnicodeWarning']rrzs    r �test_comma_separated_warningsz6EnvironmentVariableTests.test_comma_separated_warnings�s4��-�d�@�N�����F�F�	
����G�	Ir)c�P�tddddd��\}}}|j|d�y)Nz-Wignore::UnicodeWarningr9rrr�rrrrzs    r �test_envvar_and_command_linez5EnvironmentVariableTests.test_envvar_and_command_line�s7��-�.H�$�@�7�����F�F�	
����G�	Ir)c��tddddd��\}}}|j|d�|j|j�gd��y)	Nz-Werror::DeprecationWarningr9zjimport sys, warnings; sys.stdout.write(str(sys.warnoptions)); warnings.warn('Message', DeprecationWarning)zdefault::DeprecationWarningr�rs<['default::DeprecationWarning', 'error::DeprecationWarning'])s"Traceback (most recent call last):s&  File "<string>", line 1, in <module>sDeprecationWarning: Message)r
rur�rzs    r �(test_conflicting_envvar_and_command_linezAEnvironmentVariableTests.test_conflicting_envvar_and_command_line�sX��2�3P�RV�
;�8��	���F�F�
	
����K�	M�����*�*�,�
-�	.r)c	��|jtu}tjrg}nN|rt	j
d�}nd}ddt|dfddtddfddtddfddtddfddtddfg}|D�cgc]}t|�j���}}|rd}nd}|dz
}td|d	�
�\}}}	|j�D�
cgc]}
|
j���}}
d|_|j!||�ycc}wcc}
w)N�__main__r�rrszPimport sys; sys.modules.pop('warnings', None); sys.modules['_warnings'] = None; r�z5import warnings; [print(f) for f in warnings.filters]r9T)�
__isolated)rrTr�Py_DEBUGr�r��DeprecationWarning�PendingDeprecationWarning�
ImportWarning�ResourceWarningr��encoder	r�r@�maxDiffru)r6�pure_python_api�expected_default_filters�main_module_filterri�expected_output�coder<r\rnrp�stdout_liness            r �!test_default_filter_configurationz:EnvironmentVariableTests.test_default_filter_configuration�s���+�+��4�����')�$��%'�Z�Z�
�%;�"�%/�"��D�"4�6H�!�L��4�!3�T�1�=��4�!:�D�!�D��4���a�8��4��$��:�(�$�5M�M�q�3�q�6�=�=�?�M��M��e�D��D��G�G��-�d�D�T�J���F�F�17�1B�1B�1D�E���
�
��E��E���������7��N��Fs�8 C=�
D�asciiz%requires non-ascii filesystemencodingc��dtjz}tddd|d��\}}}|j|t	|g�j��y)Nzignore:DeprecationWarningr9rr�r�)r�rr)r�FS_NONASCIIr	rur�r)r6rr<r\rns     r �
test_nonasciiz&EnvironmentVariableTests.test_nonascii�sV��3�Y�5J�5J�J��-�d�@�$�)��	���F�F�
	
�����n�%5�!6�!=�!=�!?�@r)N)
r%r&r'r	rrrr!r-�
skipUnlessr�getfilesystemencodingr%r(r)r rr�sY��D�I�I�.�8�>�X���2��2�2�4��?�@�B�A�B�Ar)rc��eZdZeZy)�CEnvironmentVariableTestsNrNr(r)r r)r)rPr)r)c��eZdZeZy)�PyEnvironmentVariableTestsNrSr(r)r r+r+rUr)r+c� �eZdZdZeZd�Zd�Zy)�_DeprecatedTestzTest _deprecated().c���d}gd�}|D]q}d|d�d|d��}|tf}|j|��5tj|d�	�5|jjd
||��ddd�ddd��sd}d
}tj|tfd�	�5|jjd
d|��ddd�y#1swY�\xYw#1swY��xYw#1swYyxYw)N�r��r�finalr))r��)r�r0)r�r)r�r2z.*test_warnings.*rz\.r{��removeFr��
test_warnings�r4�_version)r�r0r�alpharz.*test_warnings.*3\.11�r�r0)r�subTestrr�r�_deprecated)r6rtr�r4r��filters      r �test_warningz_DeprecatedTest.test_warning
s��(��2���	>�F�&�v�a�y�k��F�1�I�;�?�C��,�,�F����V��,�
>�$�3�3�F�%�H�>��K�K�+�+�O�F�5<�,�>�>�
>�
>�	>�)��'��
�
+�
+�S�2D�,E�U�
S�	6��K�K�#�#�O�G�-4�
$�
6�	6�	6�
>�>��
>�
>��	6�	6�s/�C�C�+C�C�C�C�C	�C'c��d}gd�}|D]Y}|j|��5|jt�5|jj	d||��ddd�ddd��[dD]`}ddd	|d	f}|j|�
�5|jt�5|jj	dd|��ddd�ddd��by#1swY�yxYw#1swY��xYw#1swY�,xYw#1swY��xYw)Nr/))r�r)r�r2)r��
r3r5r6)�beta�	candidater1r�r0r)�releaselevelr9)r:r^r�rr;)r6rtr�r4�levels     r �test_RuntimeErrorz!_DeprecatedTest.test_RuntimeErrors��(��)���	>�F����V��,�
>��&�&�|�4�>��K�K�+�+�O�F�5<�,�>�>�
>�
>�	>�
4�	>�E��"�a���*�G����5��1�
>��&�&�|�4�>��K�K�+�+�O�G�5<�,�>�>�
>�
>�	>�>�>��
>�
>��>�>��
>�
>�sF�C�C�C�C/�C#�8C/�C�C�C 	�#C,�(C/�/C8	N)r%r&r'r:rrr=rDr(r)r r-r-s���
�F�6�"
>r)r-c��eZdZd�Zy)�
BootstrapTestc	���tj�5}tjd�5tdd|��tdddd|��ddd�ddd�y#1swY�xYw#1swYyxYw)N�	encodingsr9r:)�
PYTHONPATHz-Wr)r�temp_cwdr	)r6�cwds  r �test_issue_8766zBootstrapTest.test_issue_87660so���
�
�
!�	K�S�)�*<�*<�[�*I�	K��T�6�c�:�
�T�6�4��c�J�	K�	K�	K�	K��	K�	K�s"�A'�A�
A'�A$	� A'�'A0N)r%r&r'rLr(r)r rFrF.s��	Kr)rFc��eZdZd�Zd�Zy)�FinalizationTestc��d}td|�\}}}|j|j�j�d�y)Nzk
import warnings
warn = warnings.warn

class A:
    def __del__(self):
        warn("test")

a=A()
        r9z<string>:7: UserWarning: test)r	rur��rstrip)r6rr<r=r
s     r �test_finalizationz"FinalizationTest.test_finalization=s?��	��(��d�3���C���������,�,�.�8�	:r)c��d}dtz}tdd|�\}}}|j|j|�t	|��dtz}tdd|�\}}}|j|j|�t	|��y)Ns&sys:1: ResourceWarning: unclosed file zf = open(%a)r�r9zimport warnings; f = open(%a))r�r	rG�
startswithr")r6r�rr<r=r
s      r �test_late_resource_warningz+FinalizationTest.test_late_resource_warningNs��=����(��'��t�T�:���C��������x�0�%��*�=�/��9��'��t�T�:���C��������x�0�%��*�=r)N)r%r&r'rQrTr(r)r rNrN<s��:�">r)rNc�|�tjj�tjj�yre)rTrIrrOr(r)r �setUpModulerV`s&�����"�"�$����!�!�#r)r)>�
contextlibrrjr��iorr�rr�r-r�r�test.supportrrr�test.support.script_helperr	r
�test.test_warnings.datarr
rrr�import_fresh_modulerTrOr!r�r#r+r=�TestCaserMrRrWr�r�r�r r(r,r5r7rDr�r�r�r�r�r�rr)r+r-rFrNrV�tearDownModuler%�mainr(r)r �<module>r`s���%��	��	�
����&�"�(�N�2�?�$�0�m�/�/�
�9D�
�G��
.�]�
.�
.�z�6A�]�D�
��*��*�0	�'�	�)�)�8-�X�-��n�h�&7�&7���~�x�'8�'8��e5�(�e5�N	�;�� 1� 1���K��!2�!2��N7��N7�`@��H�-�-�@�?�)�X�.�.�?� >�H� >�F�]�H�$5�$5��1�m�X�%6�%6�1�(lH�X�x�0�0�lH�^=?�8�=?�@�0�(�2C�2C��.+�1�8�3D�3D�.+�bQ!��Q!�f�*�H�,=�,=���+�X�->�->��NA�x�NA�`� 8�(�:K�:K���!9�8�;L�;L��$>�h�� 1� 1�$>�NK�H�%�%�K�!>�x�(�(�!>�H$����z���H�M�M�O�r)