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/test_warnings/__pycache__/__init__.cpython-311.pyc
�

��Vc�����ddlmZddlZddlZddlmZddlZddlZddlZddl	Z	ddl
mZddlm
Z
ddlmZddlmZddlmZmZdd	lmZddlZe
jd
dg���Ze
jd
dg�
��Zeed��Zed���ZGd�de��ZGd�d��Z Gd�de ��Z!Gd�de!e	j"��Z#Gd�de!e	j"��Z$Gd�de ��Z%Gd�de%e	j"��Z&Gd�de%e	j"��Z'Gd �d!e ��Z(Gd"�d#e(e	j"��Z)Gd$�d%e(e	j"��Z*Gd&�d'e ��Z+Gd(�d)e+e	j"��Z,Gd*�d+e+e	j"��Z-Gd,�d-e e	j"��Z.Gd.�d/e ��Z/Gd0�d1e/e	j"��Z0Gd2�d3e/e	j"��Z1Gd4�d5e ��Z2Gd6�d7e2e	j"��Z3Gd8�d9e2e	j"��Z4Gd:�d;e ��Z5Gd<�d=e5e	j"��Z6Gd>�d?e5e	j"��Z7Gd@�dAe e	j"��Z8GdB�dCe	j"��Z9GdD�dEe	j"��Z:dF�Z;e;Z<e=dGkre	j>��dSdS)H�)�contextmanagerN)�StringIO)�support)�
import_helper)�	os_helper)�warnings_helper)�assert_python_ok�assert_python_failure��
stacklevel�warnings�	_warnings)�blocked)�fresh�gettotalrefcountc#�K�ttfD],}	|j����#t$rY�)wxYw	t���n#t
$rYnwxYwtj}|j}	|dd�|_|�d��|t_dV�|t_||_dS#|t_||_wxYw)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    �/D:\Python311\Lib\test\test_warnings\__init__.py�warnings_stater!s�����-�(����	��(�.�.�0�0�0�0���	�	�	��D�	����
��!�!�#�#�#�#���
�
�
���
����%�.���~��*�)�!�!�!�,������F�#�#�#�!'�
��
����!2�
��)������"3�
��)���)�)�)�)s)�.�
;�;�A�
A&�%A&�=4C�Cc��eZdZdS)�TestWarningN��__name__�
__module__�__qualname__��r r#r#4s�������Dr)r#c�,��eZdZdZ�fd�Z�fd�Z�xZS)�BaseTestz'Basic bookkeeping required for testing.c���tjj|_dt	��vrt	��d=ttd��rt`ttd��rt`|j	tj
d<|j	tj_tt|���
��dS)Nrr
)�unittest�caser
�old_unittest_module�globals�hasattrrrrr�modules�superr+�setUp��self�	__class__s �r r4zBaseTest.setUp<s����#+�=�#9�� �!�G�I�I�-�	1��	�	�/�0��=�"7�8�8�	2��1��3�-�.�.�	(��'�#'�+���J��"&���
��
�h����#�#�%�%�%�%�%r)c���ttjd<|jtj_tt|���	��dS)Nr
)
rrr2r/r-r.r
r3r+�tearDownr5s �r r9zBaseTest.tearDownOs>���"3���J��!%�!9��
��
�h����&�&�(�(�(�(�(r))r%r&r'�__doc__r4r9�
__classcell__)r7s@r r+r+8sW�������1�1�&�&�&�&�&�&)�)�)�)�)�)�)�)�)r)r+c��eZdZdZd�ZdS)�PublicAPITestszGEnsures that the correct values are exposed in the
    public API.
    c���|�t|jd����gd�}|�t	|jj��t	|����dS)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_attributeZsm��������Y�7�7�8�8�8�9�9�9�
�	
���C��� 3�4�4��
�O�O�	-�	-�	-�	-�	-r)N)r%r&r'r:rKr(r)r r=r=Ts-��������-�-�-�-�-r)r=c��eZdZeZdS)�CPublicAPITestsN�r%r&r'�
c_warningsrr(r)r rMrMb�������
�F�F�Fr)rMc��eZdZeZdS)�PyPublicAPITestsN�r%r&r'�py_warningsrr(r)r rRrRe�������
�F�F�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�ZdS)�FilterTestsz$Testing the filtering functionality.c�,�tj|j���5}|j���|j�dt
���|�t
|jjd��ddd��dS#1swxYwYdS)N�r�error��categoryzFilterTests.test_error)rrFrrErD�UserWarning�assertRaisesr@�r6�ws  r �
test_errorzFilterTests.test_errorls���
�
-�T�[�
A�
A�
A�	:�Q��K�%�%�'�'�'��K�&�&�w��&�E�E�E����k�4�;�+;� 8�
:�
:�
:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:����	:�	:�	:�	:�	:�	:s�A!B	�	B
�B
c����tj�j���5}�j���d���fd�}t	j��5}|��ddd��n#1swxYwY|���}��d|����d|���j�dt�����
t|��ddd��dS#1swxYwYdS)NrY�%FilterTests.test_ignore_after_defaultc�H���j��t��dS�N�rr@r]��messager6s��r �fz/FilterTests.test_error_after_default.<locals>.fw�!����� � ��+�6�6�6�6�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_defaultss�����
�
-�T�[�
A�
A�
A�	.�Q��K�%�%�'�'�'�=�G�
7�
7�
7�
7�
7�
7��(�*�*�
�f������
�
�
�
�
�
�
�
�
�
�
����
�
�
�
��_�_�&�&�F��M�M�N� �
"�
"�
"��M�M�B� �
"�
"�
"�
�K�&�&�w��&�E�E�E����k�1�-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�	.�	.s6�5C=�A)�C=�)A-	�-C=�0A-	�1A?C=�=D�Dc��tjd|j���5}|j���|j�dt
���|j�dt
��|�t|��d��|�tt��dg��ddd��dS#1swxYwYdS)NT��recordr�ignorer[zFilterTests.test_ignorer�version)rrFrrErDr]r@�assertEqual�len�listrr_s  r �test_ignorezFilterTests.test_ignore�s��
�
-�T��{�$�$�$�	E�'(��K�%�%�'�'�'��K�&�&�x�+�&�F�F�F��K���6��D�D�D����S��V�V�Q�'�'�'����T�"5�6�6���D�D�D�
	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E����	E�	E�	E�	E�	E�	Es�B'C�C�Cc�x���tjd�j���5}�j���d���fd�}|���j�dt
���|��|����t|��d��ddd��dS#1swxYwYdS)NTrqrcc�H���j��t��dSrerfrgs��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�%�%�'�'�'�=�G�
7�
7�
7�
7�
7�
7�
�A�C�C�C��K�&�&�x�+�&�F�F�F�
�A�C�C�C�
�A�C�C�C����S��V�V�Q�'�'�'�
	(�
	(�
	(�
	(�
	(�
	(�
	(�
	(�
	(�
	(�
	(�
	(����
	(�
	(�
	(�
	(�
	(�
	(s�BB/�/B3�6B3c�Z���tjd�j���5}�j����j�dt
���d���fd�}|����t|��d����|djj	d	���|����t|��d
����|djj	d	���ddd��dS#1swxYwYdS)NTrq�alwaysr[zFilterTests.test_alwaysc�H���j��t��dSrerfrgs��r riz"FilterTests.test_always.<locals>.f�rjr)r{���r�)
rrFrrErDr]rurvrh�argsr|s`  @r �test_alwayszFilterTests.test_always�sm����
�
-�T��{�$�$�$�	=�'(��K�%�%�'�'�'��K�&�&�x�+�&�F�F�F�/�G�
7�
7�
7�
7�
7�
7�
�A�C�C�C����S��V�V�Q�'�'�'����Q�r�U�]�/��2�G�<�<�<�
�A�C�C�C����S��V�V�Q�'�'�'����Q�r�U�]�/��2�G�<�<�<�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=����	=�	=�	=�	=�	=�	=s�C5D � D$�'D$c�f���tjd�j���5}�j���d���fd�}|����t|��d����|djjd���|����t|��d���j�dt�	��|����t|��d
����|djjd���|����t|��d����|djjd���ddd��dS#1swxYwYdS)NTrqz$FilterTests.test_always_after_ignorec�H���j��t��dSrerfrgs��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�s�����
�
-�T��{�$�$�$�	=�'(��K�%�%�'�'�'�<�G�
7�
7�
7�
7�
7�
7�
�A�C�C�C����S��V�V�Q�'�'�'����Q�r�U�]�/��2�G�<�<�<�
�A�C�C�C����S��V�V�Q�'�'�'��K�&�&�x�+�&�F�F�F�
�A�C�C�C����S��V�V�Q�'�'�'����Q�r�U�]�/��2�G�<�<�<�
�A�C�C�C����S��V�V�Q�'�'�'����Q�r�U�]�/��2�G�<�<�<�#	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=����	=�	=�	=�	=�	=�	=s�E;F&�&F*�-F*c�0�tjd|j���5}|j���|j�dt
���td��}t
d��D]�}|j�|t
��|dkr'|�|dj	|��|dd�=�O|d	kr$|�t|��d���ytd
���	ddd��dS#1swxYwYdS)NTrq�defaultr[zFilterTests.test_defaultr�rr�r{zloop variant unhandled)rrFrrErDr]�ranger@rurhrv�
ValueError)r6r`rh�xs    r �test_defaultzFilterTests.test_default�sa��
�
-�T��{�$�$�$�
	?�'(��K�%�%�'�'�'��K�&�&�y�;�&�G�G�G�!�"<�=�=�G��1�X�X�
?�
?���� � ��+�6�6�6���6�?��$�$�Q�r�U�]�G�<�<�<��!�!�!����!�V�?��$�$�S��V�V�Q�/�/�/�/�$�%=�>�>�>�
?�
	?�
	?�
	?�
	?�
	?�
	?�
	?�
	?�
	?�
	?�
	?�
	?����
	?�
	?�
	?�
	?�
	?�
	?s�C!D�D�Dc��tjd|j���5}|j���|j�dt
���td��}|j�|t
��|�|dj|��|dd�=|j�|t
��|�t|��d��ddd��dS#1swxYwYdS)NTrqrr[zFilterTests.test_moduler�r)
rrFrrErDr]r@rurhrv�r6r`rhs   r �test_modulezFilterTests.test_module�s3��
�
-�T��{�$�$�$�		(�'(��K�%�%�'�'�'��K�&�&�x�+�&�F�F�F�!�";�<�<�G��K���W�k�2�2�2����Q�r�U�]�G�4�4�4��!�!�!���K���W�k�2�2�2����S��V�V�Q�'�'�'�		(�		(�		(�		(�		(�		(�		(�		(�		(�		(�		(�		(����		(�		(�		(�		(�		(�		(s�CC<�<D�Dc��tjd|j���5}|j���|j�dt
���td��}|j�|t
dd��|�|dj|��|dd�=|j�|t
dd	��|�t|��d
��|j�|t
dd��|�t|��d
��ddd��dS#1swxYwYdS)NTrqrr[zFilterTests.test_once�__init__.py�*r��
rztest_warnings2.py)
rrFrrErDr]rArurhrvr�s   r �	test_oncezFilterTests.test_once�s���
�
-�T��{�$�$�$�	(�'(��K�%�%�'�'�'��K�&�&�v��&�D�D�D�!�"9�:�:�G��K�%�%�g�{�M�$&�
(�
(�
(����Q�r�U�]�G�4�4�4��!�!�!���K�%�%�g�{�M�$&�
(�
(�
(����S��V�V�Q�'�'�'��K�%�%�g�{�<O�$&�
(�
(�
(����S��V�V�Q�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	(�	(s�DE�E	�E	c	��tjd|j���5}|j�dt��|j�dtddd���|�t|��d��|�t��5|j�dtddd���ddd��n#1swxYwY|�t|��d��|j�dtddi���|�t|��d	��ddd��dS#1swxYwYdS)
NTrqr�msg�filenamer���module_globalsr{r�)
rrFrrr]rArurvr^�	TypeErrorr_s  r �test_module_globalszFilterTests.test_module_globals�s���
�
-�T��{�$�$�$�	(�'(��K�$�$�X�{�;�;�;�
�K�%�%�e�[�*�b�59�
&�
;�
;�
;����S��V�V�Q�'�'�'��"�"�9�-�-�
?�
?���)�)�%��j�"�9=�*�?�?�?�
?�
?�
?�
?�
?�
?�
?�
?�
?�
?�
?����
?�
?�
?�
?�
���S��V�V�Q�'�'�'�
�K�%�%�e�[�*�b�57�
&�
9�
9�
9����S��V�V�Q�'�'�'�%	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	(�	(s7�BE�%C�E�C	�E�C	�A-E�E�Ec�8�tj|j���5}|j���|j�dt
���|�t|jjdt��ddd��dS#1swxYwYdS)NrYrZr[zFilterTests.test_inheritance)	rrFrrErD�Warningr^r]r@r_s  r �test_inheritancezFilterTests.test_inheritances���
�
-�T�[�
A�
A�
A�	M�Q��K�%�%�'�'�'��K�&�&�w��&�A�A�A����k�4�;�+;� >��
M�
M�
M�	M�	M�	M�	M�	M�	M�	M�	M�	M�	M�	M�	M����	M�	M�	M�	M�	M�	Ms�A'B�B�Bc��tjd|j���5}|j���|j�dt
���|j�dt
d���|dd�=	|j�dt
��n%#t
$r|�d��YnwxYw|�t|��d	��ddd��dS#1swxYwYdS)
NTrqrsr[rZ)r\�appendzFilterTests.test_orderingz!order handling for actions failedr)
rrFrrErDr]r@�failrurvr_s  r �
test_orderingzFilterTests.test_orderingsT��
�
-�T��{�$�$�$�	(�'(��K�%�%�'�'�'��K�&�&�x�+�&�F�F�F��K�&�&�w��/3�
'�
5�
5�
5��!�!�!��
?��� � �!<�k�J�J�J�J���
?�
?�
?��	�	�=�>�>�>�>�>�
?�������S��V�V�Q�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	(�	(s6�A"C5�? B �C5� C�?C5�C�&C5�5C9�<C9c��tjd|j���5}|j�ddtdd��|�t|jjd��|j���d}|j�|��|�	t|dj��|��|�|dj
t��|j�d	dtdd��d
}|j�|��|�t|dj��|��|j���|j�ddtdd��|�t|jjd��d
}|j�|��|�	t|dj��|��|�|dj
t��ddd��dS#1swxYwYdS)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_filterwarningss3���
-�T��{�$�$�$�	7�'(��K�&�&�w��G�R��C�C�C����k�4�;�+;�=O�P�P�P��K�%�%�'�'�'�$�D��K���T�"�"�"����S��2���/�/��6�6�6��M�M�!�B�%�.�+�6�6�6��K�&�&�x��W�b�!�D�D�D�!�D��K���T�"�"�"�����A�b�E�M� 2� 2�D�9�9�9��K�%�%�'�'�'��K�&�&�w����Q�G�G�G����k�4�;�+;�Y�G�G�G�%�D��K���T�"�"�"����S��2���/�/��6�6�6��M�M�!�B�%�.�+�6�6�6�-	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7�	7�	7s�HH;�;H?�H?c�H�tjd|j���5}|j�dt��|j�ddt��|�t|jjd��|�t|jjd��|j�d��|�|g��|j�d��|�|g��ddd��dS#1swxYwYdS)	NTrqrsrZ�matchzmatch prefixzsuffix matchzsomething completely different)	rrFrrr]rDr^r@rur_s  r �test_message_matchingz!FilterTests.test_message_matching0sH��
�
-�T��{�$�$�$�		$�'(��K�$�$�X�{�;�;�;��K�&�&�w���E�E�E����k�4�;�+;�W�E�E�E����k�4�;�+;�^�L�L�L��K���^�,�,�,����Q��#�#�#��K���=�>�>�>����Q��#�#�#�		$�		$�		$�		$�		$�		$�		$�		$�		$�		$�		$�		$����		$�		$�		$�		$�		$�		$s�C.D�D�Dc����G�fd�d����fd�td��D���tjd|j���5}�|j_|j�t
d��ddd	��|�t|d
j	��d��ddd��dS#1swxYwYdS)Nc���eZdZ�fd�ZdS)�.FilterTests.test_mutate_filter_list.<locals>.Xc���g�dd�<dSrer()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�c�H��g|]}d���t���df��S)r�r)r])�.0�ir�s  �r �
<listcomp>z7FilterTests.test_mutate_filter_list.<locals>.<listcomp>As0���A�A�A�1�i�����K�����A�
.�A�A�Ar)r�Trq�bzf.pyr�r�)
r�rrFrrrAr]rur�rh)r6r`r�r�s  @@r �test_mutate_filter_listz#FilterTests.test_mutate_filter_list<s+����	�	�	�	�	�	�	�	�	�	�
B�A�A�A��a���A�A�A��
�
-�T��{�$�$�$�	6�'(�"#�D�K���K�%�%�k�#�&6�&6��f�b�I�I�I����S��2���/�/��5�5�5�		6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6�	6�	6s�A%B:�:B>�B>c�t�tj|j���5|j���|j�dt
���|�t|jj��d��|j�dt
���|j�dt
���|�t|jj��dd��|�|jjdddd	��ddd��dS#1swxYwYdS)
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_filtersHsd��
�
-�T�[�
A�
A�
A�	�	��K�%�%�'�'�'��K�&�&�w��&�E�E�E����S���!4�5�5�q�9�9�9��K�&�&�x�+�&�F�F�F��K�&�&�w��&�E�E�E�����D�K�'�(�(�!�:�
�
�
�
�����#�A�&�q�)�7�(�
�
�
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	��DD-�-D1�4D1c�t�tj|j���5|j���|j�dt
���|�t|jj��d��|j�dt
���|j�dt
���|�t|jj��dd��|�|jjdddd	��ddd��dS#1swxYwYdS)
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_filtersYsb��
�
-�T�[�
A�
A�
A�
	�
	��K�%�%�'�'�'��K�$�$�W�{�$�C�C�C����S���!4�5�5�q�9�9�9��K�$�$�X��$�D�D�D��K�$�$�W�{�$�C�C�C�����D�K�'�(�(�!�8�
�
�
�
�����#�A�&�q�)�7�N�
�
�
�
	�
	�
	�
	�
	�
	�
	�
	�
	�
	�
	�
	����
	�
	�
	�
	�
	�
	r�c�*�tj|jd���5}|j���|j�d��|j�dd���|j�dd���|j�dt���|�t|jj	��dd	��|�t|��d
d��ddd��dS#1swxYwYdS)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_duplicateisR��
�
-�T�[�����	� !��K�%�%�'�'�'��K�$�$�X�.�.�.��K�$�$�W�T�$�:�:�:��K�$�$�X�d�$�;�;�;��K���4�{��K�K�K����S���!4�5�5�q�8�
�
�
�
���S��V�V�Q�=�
�
�
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�CD�D�Dc�x�tj|j���5|j���|j�d��|j�|jd���5|j�d��ddd��n#1swxYwYddd��dS#1swxYwYdS)NrYrZrs)r�actionzThis will be ignored)rrFrrErr@r�s r �+test_catchwarnings_with_simplefilter_ignorez7FilterTests.test_catchwarnings_with_simplefilter_ignorexs8��
�
-�T�[�
A�
A�
A�	9�	9��K�%�%�'�'�'��K�$�$�W�-�-�-���+�+��{�8�,���
9�
9��� � �!7�8�8�8�
9�
9�
9�
9�
9�
9�
9�
9�
9�
9�
9����
9�
9�
9�
9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�	9�	9s6�AB/�0B�B/�B	�B/�B	�B/�/B3�6B3c	��tj|j���5|j���|j�|jdt���5|j�d��|�t|jjt	d����ddd��n#1swxYwYddd��dS#1swxYwYdS)NrYrZ)rr�r\z&Other types of warnings are not errorsr�)rrFrrE�
FutureWarningr@r^r�s r �*test_catchwarnings_with_simplefilter_errorz6FilterTests.test_catchwarnings_with_simplefilter_error�sx��
�
-�T�[�
A�
A�
A�	J�	J��K�%�%�'�'�'���+�+��{�7�]�,���
J�
J��� � �!I�J�J�J��!�!�-�"&�+�"2�M�%�4H�4H�J�J�J�	
J�
J�
J�
J�
J�
J�
J�
J�
J�
J�
J����
J�
J�
J�
J�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J����	J�	J�	J�	J�	J�	Js7�AC�AB6�*C�6B:	�:C�=B:	�>C�C�CN)r%r&r'r:rarorxr}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r(r)r rWrWhsQ������.�.�:�:�:�.�.�.�$E�E�E�(�(�(�
=�
=�
=�=�=�=�(?�?�?� 
(�
(�
(�(�(�(�"(�(�(�*M�M�M�(�(�(�7�7�7�6
$�
$�
$�
6�
6�
6����"��� 
�
�
�9�9�9�J�J�J�J�Jr)rWc��eZdZeZdS)�CFilterTestsNrNr(r)r r�r��rPr)r�c��eZdZeZdS)�
PyFilterTestsNrSr(r)r r�r��rUr)r�c�N�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�	WarnTestsz2Test warnings.warn() and warnings.warn_explicit().c��tjd|j���5}|j�d��t	d��D]u}d|z}|j�|��|�t|dj��|��|�	|dj
t���v	ddd��dS#1swxYwYdS)NTrqr�zmulti %dr�)rrFrrr�r@rur�rhr�r\r])r6r`r�r�s    r �test_messagezWarnTests.test_message�s��
�
-�T��{�$�$�$�	;�'(��K�$�$�V�,�,�,��1�X�X�
;�
;��!�1�}���� � ��&�&�&�� � ��Q�r�U�]�!3�!3�T�:�:�:��
�
�a��e�n�k�:�:�:�:�	
;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�	;�	;s�B C
�
C�Cc
�~�tddfD]�}tjd|j���5}|j�d��|j�|��|�t|dj��tt|������ddd��n#1swxYwY��dS)Nr�Trqrr�)
r�rrFrrr@rur�rhr])r6�obr`s   r �test_warn_nonstandard_typesz%WarnTests.test_warn_nonstandard_types�s	���D�"�%�	K�	K�B�"�1���;�(�(�(�
K�+,���(�(��0�0�0��� � ��$�$�$�� � ��Q�r�U�]�!3�!3�S��R���5I�5I�J�J�J�

K�
K�
K�
K�
K�
K�
K�
K�
K�
K�
K����
K�
K�
K�
K��	K�	Ks�A=B1�1B5	�8B5	c��t|j��5tjd|j���5}t	jd��|�tj�	|dj
��d��t	jd��|�tj�	|dj
��d��ddd��n#1swxYwYddd��dS#1swxYwYdS)NTrq�spam1r��
stacklevel.py�spam2�r!rrrFr�innerru�os�path�basenamer��outerr_s  r �
test_filenamezWarnTests.test_filename�sp��
�D�K�
(�
(�	5�	5�"�1���;�(�(�(�
5�+,��#�G�,�,�,�� � ���!1�!1�!�B�%�.�!A�!A�$3�5�5�5��#�G�,�,�,�� � ���!1�!1�!�B�%�.�!A�!A�$3�5�5�5�

5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5����
5�
5�
5�
5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5����	5�	5�	5�	5�	5�	5s5�C:�B%C"�C:�"C&	�&C:�)C&	�*C:�:C>�C>c��t|j��5tjd|j���5}t	jdd���|�tj�	|dj
��d��t	jdd���|�tj�	|dj
��d��t	jd	d
���|�tj�	|dj
��d��t	jdd
���|�tj�	|dj
��d��t	jd
d���|�tj�	|dj
��d��t	jdd���|�tj�	|dj
��d��ddd��n#1swxYwYddd��dS#1swxYwYdS)NTrq�spam3r{rr�r��spam4�spam5r�r��spam6zspam6.5r��spam7i'rr�r_s  r �test_stacklevelzWarnTests.test_stacklevel�s����D�K�
(�
(�	+�	+�"�1���;�(�(�(�
+�+,��#�G��:�:�:�:�� � ���!1�!1�!�B�%�.�!A�!A�$3�5�5�5��#�G��:�:�:�:�� � ���!1�!1�!�B�%�.�!A�!A�$3�5�5�5��#�G��:�:�:�:�� � ���!1�!1�!�B�%�.�!A�!A�$1�3�3�3��#�G��:�:�:�:�� � ���!1�!1�!�B�%�.�!A�!A�$3�5�5�5��#�I�!�<�<�<�<�� � ���!1�!1�!�B�%�.�!A�!A�$1�3�3�3��#�G��=�=�=�=�� � ���!1�!1�!�B�%�.�!A�!A�$)�+�+�+�)
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�	+�	+s5�I�G9H6�*I�6H:	�:I�=H:	�>I�I�Ic��tjd��t|j��5t	jd|j���5}|j�d��ddl}|�t|��d��|�|dj
t��ddd��n#1swxYwYddd��dS#1swxYwYdS)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�sT����E�F�F�F�
�D�K�
(�
(�	:�	:�"�1���;�(�(�(�
:�+,���(�(��2�2�2�=�=�=�=�� � ��Q����+�+�+�� � ��1����9�9�9�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:����
:�
:�
:�
:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:����	:�	:�	:�	:�	:�	:s6�C�A(B9�-C�9B=	�=C�B=	�C�C�Cc�(�d}td|d��}tjd���5}|j�dt
���t
|��ddd��n#1swxYwY|�|dj|��dS)	Nz<warnings-test>z3import warnings
warnings.warn('hello', UserWarning)�execT)rrrr[r)	�compilerrFrrr]r�rur�)r6r��codeobjr`s    r �test_exec_filenamezWarnTests.test_exec_filename�s���$���A�"�F�,�,���
-�T�
:�
:�
:�	�a��K�$�$�X��$�D�D�D���M�M�M�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
����1����1�1�1�1�1s�1A&�&A*�-A*c��tjd|j���5}|j���|j�dt
���dD]k}	t
j|��n#t$rY�$wxYw|j�	dt
|d��|�
|dj|���l	ddd��dS#1swxYwYdS)	NTrqrr[)u
nonasciié€usurrogate�r�r{r�)rrFrrErDr]r��fsencode�UnicodeEncodeErrorrArur�)r6r`r�s   r �%test_warn_explicit_non_ascii_filenamez/WarnTests.test_warn_explicit_non_ascii_filename�s9��
�
-�T��{�$�$�$�
	;�'(��K�%�%�'�'�'��K�&�&�x�+�&�F�F�F�E�
;�
;����K��)�)�)�)��)�����H�������)�)�&�+�x��K�K�K�� � ��2����:�:�:�:�

;�	
	;�
	;�
	;�
	;�
	;�
	;�
	;�
	;�
	;�
	;�
	;�
	;����
	;�
	;�
	;�
	;�
	;�
	;s6�?C�A1�0C�1
A>�;C�=A>�>AC�C�Cc	�"�|�t|jjdtdd��|�t|jjdddd��|�tt
f|jjdtddd���dS)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�	1�	1�	
���9�n�5� �K�5� �'�4��R�	�	A�	A�	A�	A�	Ar)c���Gd�dt��}|�t��5|j�|����ddd��dS#1swxYwYdS)Nc��eZdZdZd�ZdS)�-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__	s��7��!6�7�8�9r)N)r%r&r'r:rr(r)r �
BadStrWarningrs)������?�?�
9�
9�
9�
9�
9r)r)r�r^r�rr@)r6rs  r �test_bad_strzWarnTests.test_bad_strs���	9�	9�	9�	9�	9�G�	9�	9�	9��
�
�z�
*�
*�	.�	.��K���]�]�_�_�-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�	.�	.s�#A�A"�%A"c�z�Gd�dt��}Gd�d��}|�t��5}|j�dd��ddd��n#1swxYwY|�dt
|j����|�t��5}|j�d|��ddd��n#1swxYwY|�dt
|j����|�t��5}|j�d|����ddd��n#1swxYwY|�dt
|j����tj	|j���5|j�
��|j�d	��|�|��5}|j�d
|��ddd��n#1swxYwY|�
d
t
|j����|�t��5}|j�d
d��ddd��n#1swxYwY|�
d
t
|j����|�|��5}|j�d
|��ddd��n#1swxYwY|�|jt��ddd��dS#1swxYwYdS)Nc��eZdZdS)�6WarnTests.test_warning_classes.<locals>.MyWarningClassNr$r(r)r �MyWarningClassr	��������Dr)r
c��eZdZdS)�:WarnTests.test_warning_classes.<locals>.NonWarningSubclassNr$r(r)r �NonWarningSubclassr
rr)rzbad warning categoryr�z)category must be a Warning subclass, not rYr�zgood warning category)r�r^r�rr@rmr��	exceptionrrFrErD�assertWarnsru�warningr]�assertIsInstance)r6r
r�cms    r �test_warning_classeszWarnTests.test_warning_classess��	�	�	�	�	�W�	�	�	�	�	�	�	�	�	�	�	��
�
�y�
)�
)�	9�R��K���3�R�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9��
�
�A��"�,�'�'�	)�	)�	)��
�
�y�
)�
)�	I�R��K���3�5G�H�H�H�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I����	I�	I�	I�	I��
�
�A��"�,�'�'�	)�	)�	)��
�
�y�
)�
)�	G�R��K���3�^�^�5E�5E�F�F�F�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G��
�
�A��"�,�'�'�	)�	)�	)��
-�T�[�
A�
A�
A�
	7�
	7��K�%�%�'�'�'��K�&�&�y�1�1�1��!�!�.�1�1�
J�R��� � �!8�.�I�I�I�
J�
J�
J�
J�
J�
J�
J�
J�
J�
J�
J����
J�
J�
J�
J����4�c�"�*�o�o�F�F�F��!�!�+�.�.�
@�"��� � �!8�$�?�?�?�
@�
@�
@�
@�
@�
@�
@�
@�
@�
@�
@����
@�
@�
@�
@����4�c�"�*�o�o�F�F�F��!�!�.�1�1�
J�R��� � �!8�.�I�I�I�
J�
J�
J�
J�
J�
J�
J�
J�
J�
J�
J����
J�
J�
J�
J��!�!�"�*�g�6�6�6�
	7�
	7�
	7�
	7�
	7�
	7�
	7�
	7�
	7�
	7�
	7�
	7����
	7�
	7�
	7�
	7�
	7�
	7s��A#�#A'�*A'�0C�C�C�%$E�E�E�"A	L0�+H�L0�H	�L0�H	�AL0� J�<L0�J	�L0�J	�AL0�K8�,L0�8K<	�<L0�?K<	�#L0�0L4�7L4N)r%r&r'r:r�r�r�r�r�r�r�r�rrr(r)r r�r��s�������<�<�;�;�;�	K�	K�	K�	5�	5�	5�+�+�+�6	:�	:�	:�2�2�2�;�;�;�
A�
A�
A�.�.�.�%7�%7�%7�%7�%7r)r�c��eZdZeZd�ZdS)�
CWarnTestsc��|�t|j��|�t	|jjd����dS�N�__code__)�assertIsNotrr�assertFalser1r@r�s r �test_acceleratedzCWarnTests.test_accelerated<sD�����*�D�K�8�8�8�������!1�:�>�>�?�?�?�?�?r)N)r%r&r'rOrrr(r)r rr7s-������
�F�@�@�@�@�@r)rc��eZdZeZd�ZdS)�PyWarnTestsc��|�t|j��|�t	|jjd����dSr)rrrrGr1r@r�s r �test_pure_pythonzPyWarnTests.test_pure_pythonEsB�����*�D�K�8�8�8������� 0�*�=�=�>�>�>�>�>r)N)r%r&r'rTrr r(r)r rr@s(������
�F�?�?�?�?�?r)rc��eZdZd�Zd�ZdS)�
WCmdLineTestsc�x�tj|j���5|�|jj|jjd��|�|jj|jjd��|�|jj|jjd��|�|jj��5|j�d��ddd��n#1swxYwY|�|jj��5|j�d��ddd��n#1swxYwY|�|jj��5|j�d��ddd��n#1swxYwY|�|jjd��5|j�d	��ddd��n#1swxYwY|j�d
��|�t|jjd��ddd��dS#1swxYwYdS)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_inputLsa���
-�T�[�
A�
A�
A�	Q�	Q����d�k�6�"�k�4�m�
E�
E�
E����d�k�6�"�k�4�6F�
H�
H�
H����d�k�6�"�k�4�6F�
H�
H�
H��"�"�4�;�#;�<�<�
6�
6���&�&�}�5�5�5�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6����
6�
6�
6�
6��"�"�4�;�#;�<�<�
9�
9���&�&�'7�8�8�8�
9�
9�
9�
9�
9�
9�
9�
9�
9�
9�
9����
9�
9�
9�
9��"�"�4�;�#;�<�<�
6�
6���&�&�}�5�5�5�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6����
6�
6�
6�
6��'�'���(@�*�M�M�
;�
;���&�&�'9�:�:�:�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;����
;�
;�
;�
;��K�"�"�#6�7�7�7����k�4�;�+;�=O�P�P�P�!	Q�	Q�	Q�	Q�	Q�	Q�	Q�	Q�	Q�	Q�	Q�	Q����	Q�	Q�	Q�	Q�	Q�	Qs��B!H/�<C#�H/�#C'	�'H/�*C'	�+"H/�
D4�(H/�4D8	�8H/�;D8	�<"H/�F�9H/�F		�	H/�F		�
#H/�0G�H/�G	�H/�G	�AH/�/H3�6H3c��tj|j���5|j�d��|�|jj��5|j�d��ddd��n#1swxYwY|�|jj��5|j�d��ddd��n#1swxYwY|j�d��|�t��5|j�dt��ddd��n#1swxYwYddd��dS#1swxYwYdS)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_moduleasF��
�
-�T�[�
A�
A�
A�	>�	>��K�"�"�#4�5�5�5��"�"�4�;�#;�<�<�
>�
>���&�&�'<�=�=�=�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>����
>�
>�
>�
>��"�"�4�;�#;�<�<�
K�
K���&�&�'I�J�J�J�
K�
K�
K�
K�
K�
K�
K�
K�
K�
K�
K����
K�
K�
K�
K��K�"�"�#J�K�K�K��"�"�;�/�/�
>�
>��� � ���=�=�=�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>����
>�
>�
>�
>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�	>�	>s}�:E�A<�0E�<B	�E�B	�"E�&C
�E�
C	�E�C	�7E�!D9�-E�9D=	�=E�D=	�E�E�EN)r%r&r'r'r)r(r)r r"r"Js5������Q�Q�Q�*	>�	>�	>�	>�	>r)r"c��eZdZeZdS)�CWCmdLineTestsNrNr(r)r r+r+mrPr)r+c��eZdZeZd�Zd�ZdS)�PyWCmdLineTestsc�\�tddd��\}}}|�d|��dS)Nz-Wxxx�-c�passs0Invalid -W option ignored: invalid action: 'xxx')r	rm�r6�rc�outrs    r �test_improper_optionz$PyWCmdLineTests.test_improper_optionts6��(���v�>�>���C���
�
�I�3�O�O�O�O�Or)c��tddd��\}}}|�|�����|�d|��dS)Nz-Wir/z?import sys; sys.modules['warnings'].warn('foo', RuntimeWarning)sRuntimeWarning)r	r�strip�assertNotInr1s    r �test_warnings_bootstrapz'PyWCmdLineTests.test_warnings_bootstrap{s]��(��t�M�O�O���C��	
��������%�%�%����*�C�0�0�0�0�0r)N)r%r&r'rTrr4r8r(r)r r-r-qs:������
�F�P�P�P�1�1�1�1�1r)r-c��eZdZdZeZd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zejd���Zejd
���Zejd���ZdS)�_WarningsTestsz'Tests specific to the _warnings module.c�X�tj|j���5}|j�ddtdd��|�t|jjd��|j`|�t|jjd��ddd��dS#1swxYwYdS)NrYrZr�rr�)	rrFrrDr�r^r]r@rr_s  r �test_filterz_WarningsTests.test_filter�s���
�
-�T�[�
A�
A�
A�	4�Q��K�&�&�w��G�R��C�C�C����k�4�;�+;� 2�
4�
4�
4���#����k�4�;�+;� 2�
4�
4�
4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�	4�	4s�A7B�B#�&B#c��td��}	|jj}iat	jd|j���5}|j���|j�dt���|j�|tdd��|�	|dj
|��|dd�=|j�|tdd��|�	t|��d	��i|j_ia|j�d��|�	|dj
j
|j
��|dd�=|j`ia|j�|tdd��|�	t|��d	��ddd��n#1swxYwY||j_dS#||j_wxYw)
Nzonceregistry testTrqrr[�filer�r�r)r]r�onceregistryrrrFrErDrArurhrvr@r�)r6rh�original_registryr`s    r �test_onceregistryz _WarningsTests.test_onceregistry�s���1�2�2��	9� $�� 8��"$��"�1���;�(�(�(�
,�+,���)�)�+�+�+���*�*�6�K�*�H�H�H���)�)�'�;���K�K�K�� � ��2����8�8�8��a�a�a�D���)�)�'�;���K�K�K�� � ��Q����+�+�+�+-���(�&(�#��� � �!4�5�5�5�� � ��2���!3�W�\�B�B�B��a�a�a�D��K�,�&(�#���)�)�'�;���K�K�K�� � ��Q����+�+�+�'
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,����
,�
,�
,�
,�*(9�D�K�$�$�$��'8�D�K�$�8�8�8�8s/�)G
�E.F4�(G
�4F8�8G
�;F8�<G
�
Gc�D�td��}|jj}	tjd|j���5}|j���i}|j�|tdd|���|�|dj|��|�t|��d��|�t|��d	��|�
d
|��|dd�=|j`i}i}|j�|tdd|���|�|dj|��|�t|��d��|�t|��d	��|dd�=d|j_i}i}|j�|tdd
|���|�t|��d��ddd��n#1swxYwY||j_dS#||j_wxYw)Nzdefaultaction testTrqz<test>r�r�r�r{r�rt�+rs�,r)r]r�
defaultactionrrFrErArurhrvrm)r6rh�originalr`r�rs      r �test_default_actionz"_WarningsTests.test_default_action�sf���2�3�3���;�,��	1�"�1���;�(�(�(�
,�+,���)�)�+�+�+�����)�)�'�;��"�5=�*�?�?�?�� � ��2����8�8�8�� � ��Q����+�+�+�� � ��X����2�2�2��
�
�i��2�2�2��a�a�a�D��K�-�&(�#�����)�)�'�;��"�5=�*�?�?�?�� � ��2����8�8�8�� � ��Q����+�+�+�� � ��X����2�2�2��a�a�a�D�,4���)�&(�#�����)�)�'�;��"�5=�*�?�?�?�� � ��Q����+�+�+�9
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,����
,�
,�
,�
,�<)1�D�K�%�%�%���D�K�%�0�0�0�0s/�H�F4G8�,H�8G<�<H�?G<�H�Hc��d}tj|j���5|j�dt���|j`t
jd��5}|j�|��|�	��}ddd��n#1swxYwYddd��n#1swxYwY|�
||��dS)Nzdel showwarning testrYrr[rn)rrFrrDr]rBr�captured_outputr@rlrm)r6r��stream�results    r �test_showwarning_missingz'_WarningsTests.test_showwarning_missing�s9��%��
�
-�T�[�
A�
A�
A�	+�	+��K�&�&�x�+�&�F�F�F���'��(��2�2�
+�f��� � ��&�&�&����*�*��
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�	
�
�
�d�F�#�#�#�#�#s5�=B,�/B�	B,�B	�B,�B	�B,�,B0�3B0c��d}tj|j���5|j�dt���|jj}	|j`t
jd��5}|j�|��|�	��}ddd��n#1swxYwY||j_n#||j_wxYw	ddd��n#1swxYwY|�
||��dS)Nzdel _showwarnmsg testrYrr[rn)rrFrrDr]�_showwarnmsgrrIr@rlrm)r6r��showrJrKs     r �test_showwarnmsg_missingz'_WarningsTests.test_showwarnmsg_missing�sp��&��
�
-�T�[�
A�
A�
A�
	0�
	0��K�&�&�x�+�&�F�F�F��;�+�D�
0��K�,��,�X�6�6�/�&��K�$�$�T�*�*�*�#�_�_�.�.�F�/�/�/�/�/�/�/�/�/�/�/����/�/�/�/�,0���(�(��4���(�/�/�/�/�(�
	0�
	0�
	0�
	0�
	0�
	0�
	0�
	0�
	0�
	0�
	0����
	0�
	0�
	0�
	0�	
�
�
�d�F�#�#�#�#�#sM�.C�B:�'/B"�B:�"B&	�&B:�)B&	�*B:�-
C�:C�C�C�Cc��tj|j���5|j�dt���t
|j_tjd��5|j�	d��ddd��n#1swxYwYd|j_|�
t|jj	d��ddd��dS#1swxYwYdS)NrYrr[�stdoutzWarning!�)rrFrrDr]�printrBrrIr@r^r�r�s r �test_showwarning_not_callablez,_WarningsTests.test_showwarning_not_callable�sX��
�
-�T�[�
A�
A�
A�	G�	G��K�&�&�x�+�&�F�F�F�&+�D�K�#��(��2�2�
-�
-��� � ��,�,�,�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-����
-�
-�
-�
-�&(�D�K�#����i���)9�:�F�F�F�
	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G�	G�	Gs6�AC�"B	�=C�	B
	�
C�B
	�5C�C�Cc���d}tj|j���5|j�dt���|j`t
jd��5}tj	|��|�
��}ddd��n#1swxYwYddd��n#1swxYwY|�|�d��dd|z��|�
dd	��\}}tj�tj��d
dz}|�dd
��}|\}}	}
}t'|	��}	|�||��|�|
dtjz��|�|d|z��dt+j||	�����zdz}|sJ�|�||��dS)Nztest show_warningrYrr[rn�
r�zToo many newlines in %rr{r�.py�:r�� z  )rrFrrDr]rBrrIrr�rlru�count�splitr�r��splitextr��rsplit�intr%�	linecache�getliner6)
r6r�rJrK�
first_line�second_line�
expected_file�first_line_partsr��line�
warning_classrh�
expected_lines
             r �test_show_warning_outputz'_WarningsTests.test_show_warning_output�sT��"��
�
-�T�[�
A�
A�
A�	+�	+��K�&�&�x�+�&�F�F�F���'��(��2�2�
+�f��#�D�)�)�)����*�*��
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�	
������d�+�+�Q�6��?�	A�	A�	A�"(�,�,�t�Q�"7�"7��
�K���(�(��)?�@�@��C�e�K�
�%�,�,�S�!�4�4��-=�*��d�M�7��4�y�y�������-�-�-������k�.B�(B�C�C�C�����#��*�-�-�-��y�0��t�<�<�B�B�D�D�D�t�K�
���������m�4�4�4�4�4s5�=B&�)B�B&�B	�B&�B	�B&�&B*�-B*c��t��}|d}	tjd|j���}|5}|j�dt
���d|d<tjdt
��|�t|����ddd��n#1swxYwY||d<dS#||d<wxYw)Nr�Trqrr[r�)	r0rrFrrDr]r@rGrv)r6�globals_dict�oldfile�catchr`s     r �test_filename_nonez!_WarningsTests.test_filename_nones���y�y���z�*��		/�%�4�D�<@�K�I�I�I�E��
(�!���*�*�8�k�*�J�J�J�+/��Z�(�!�&�v�{�;�;�;�����A���'�'�'�	
(�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(����
(�
(�
(�
(�(/�L��$�$�$��w�L��$�.�.�.�.s/�B6�A#B$�B6�$B(�(B6�+B(�,B6�6B=c��tdd��\}}}|�|d��|�d|��|�d|��dS)Nr/zjimport sys; sys.stderr = None; import warnings; warnings.simplefilter('always'); warnings.warn('Warning!')r)sWarning!sError)r	rur7�r6r2rRrns    r �test_stderr_nonez_WarningsTests.test_stderr_none"si��-�d�
(�)�)���F�F�	
�����%�%�%�����f�-�-�-�����6�*�*�*�*�*r)c���d�}|j}tj|���5|�dt���tj��5}|�dtdd|d��d	d
����ddd��n#1swxYwY|�d|�	����|j
}	|`
tj��5}|�d
tdd|dg��d	d
����ddd��n#1swxYwY|�d|�	����||_
n#||_
wxYw	ddd��dS#1swxYwYdS)Nc�6��G�fd�d��}|��S)Nc���eZdZ�fd�ZdS)�I_WarningsTests.test_issue31285.<locals>.get_bad_loader.<locals>.BadLoaderc�D��G�fd�dt��}|d��S)Nc���eZdZ�fd�ZdS)�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.splitlines3s	���#5�5r)N)r%r&r'r{�rzs�r �	BadSourcerx2s.�������6�6�6�6�6�6�6r)r}�spam)r�)r6�fullnamer}rzs   �r �
get_sourcezT_WarningsTests.test_issue31285.<locals>.get_bad_loader.<locals>.BadLoader.get_source1sI���6�6�6�6�6�6�6�C�6�6�6�%�9�V�,�,�,r)N)r%r&r'r�r|s�r �	BadLoaderru0s.�������-�-�-�-�-�-�-r)r�r()rzr�s` r �get_bad_loaderz6_WarningsTests.test_issue31285.<locals>.get_bad_loader/sC���
-�
-�
-�
-�
-�
-�
-�
-�
-�
-��9�;�;�r)rYr�r[�foo�barr{r��foobar)�
__loader__r%r�zUserWarning: foo�eggszUserWarning: eggs)rrrFrDr]rrkrArmrlrN)r6r��wmodrnrOs     r �test_issue31285z_WarningsTests.test_issue31285+sf��	�	�	��{��
�
-�T�
:�
:�
:�	)�	)����	�K��@�@�@��(�*�*�
;�f��"�"��;��q�2@�.��2D�2D�08�$:�$:�#�;�;�;�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;����
;�
;�
;�
;�

�M�M�,�f�o�o�.?�.?�@�@�@��$�D�	
)��%��,�.�.�?�&��&�&���U�A�6D�n�b�T�6J�6J�4<�(>�(>�'�?�?�?�?�?�?�?�?�?�?�?�?�?�?����?�?�?�?�
�
�
�1�6�?�?�3D�3D�E�E�E�$(��!�!��D��!�(�(�(�(�!�)	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)sq�0E&�,B�<E&�B	�E&�B	�2E&�E�-D�E�D	�E�D	�+E�E&�	E�E&�&E*�-E*c
��|j}tj|���5|�d��t	j|dd��5|�t��5|�dtddd���ddd��n#1swxYwYddd��n#1swxYwYddd��dS#1swxYwYdS)NrYrr?r�r�r{r�)
rrrFrDr�	swap_attrr^r�rAr��r6r�s  r �test_issue31411z_WarningsTests.test_issue31411Os����{��
�
-�T�
:�
:�
:�	P�	P�����'�'�'��"�4���>�>�
P�
P��&�&�y�1�1�P�P��&�&�u�g�u�a�$�&�O�O�O�P�P�P�P�P�P�P�P�P�P�P����P�P�P�P�
P�
P�
P�
P�
P�
P�
P�
P�
P�
P�
P����
P�
P�
P�
P�	P�	P�	P�	P�	P�	P�	P�	P�	P�	P�	P�	P����	P�	P�	P�	P�	P�	PsY�,B?�	B'�$ B�B'�B�B'�B�B'�B?�'B+	�+B?�.B+	�/B?�?C�Cc	�:�|j}tj|���5ddtddfg|_|�t��5|�dtdd��ddd��n#1swxYwYg|_tj	|dd��5|�t��5|�dtdd��ddd��n#1swxYwYddd��n#1swxYwYddd��dS#1swxYwYdS)NrYrr�r�r{rE)
rrrFr�rr^r�rArr�r�s  r �test_issue31416z_WarningsTests.test_issue31416Zs���{��
�
-�T�
:�
:�
:�	=�	=�!�4��$��:�;�D�L��"�"�9�-�-�
=�
=��"�"�5�'�5�!�<�<�<�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=����
=�
=�
=�
=��D�L��"�4��$�?�?�
=�
=��"�"�9�-�-�
=�
=��"�"�5�'�5�!�<�<�<�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=����
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=����
=�
=�
=�
=�
	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=����	=�	=�	=�	=�	=�	=s}�-D�
A4�(D�4A8	�8D�;A8	�< D�C8�7C!�C8�!C%�%C8�(C%�)C8�,D�8C<	�<D�?C<	�D�D�Dc���tj|j���5|j�dt���tjt��dd��5tjt��dd��5|�t|jj	d��ddd��n#1swxYwYddd��n#1swxYwYddd��dS#1swxYwYdS)NrYrZr[r%sfoor�r�)
rrFrrDr]r�	swap_itemr0r^r@r�s r �test_issue31566z_WarningsTests.test_issue31566is����
-�T�[�
A�
A�
A�	H�	H��K�&�&�w��&�E�E�E��"�7�9�9�j�&�A�A�
H�
H��"�7�9�9�j�$�?�?�
H�
H��!�!�+�t�{�/?��G�G�G�
H�
H�
H�
H�
H�
H�
H�
H�
H�
H�
H����
H�
H�
H�
H�
H�
H�
H�
H�
H�
H�
H�
H�
H�
H�
H����
H�
H�
H�
H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H����	H�	H�	H�	H�	H�	HsZ�AC$�#C�'B5�)C�5B9�9C�<B9�=C�C$�C	�C$�C	�C$�$C(�+C(N)r%r&r'r:rOrr<rArGrLrPrUrirnrqr�r�cpython_onlyr�r�r�r(r)r r:r:�s������1�1�
�F�4�4�4�9�9�9�<#1�#1�#1�J	$�	$�	$�$�$�$� G�G�G�5�5�5�.
/�
/�
/�+�+�+�")�")�")�H
��P�P���P�
��=�=���=�
��H�H���H�H�Hr)r:c�$�eZdZdZd�Zd�Zd�ZdS)�WarningsDisplayTestsziTest the displaying of warnings and the ability to overload functions
    related to displaying warnings.c
���d}t}tj�tj��ddz}d}t
j||�����}d}||||j	||fz}|�
||j�||||����|dz
}||||j	||fz}|�
||j�|||||����dS)Nr�rrXr�z%s:%s: %s: %s
  %s
z
 for the win!)
r�r�r�r]rr�r`rar6r%rurrC)r6rhr\�	file_name�line_num�	file_line�format�expects        r �test_formatwarningz'WarningsDisplayTests.test_formatwarningys"�������G�$�$�]�%;�<�<�Q�?�%�G�	����%�i��:�:�@�@�B�B�	�(���9�h��0A�7�%�'�'��������!:�!:�7�08�)�X�"O�"O�	P�	P�	P�	�_�$�	��9�h��0A�7�%�'�'��������!:�!:�7�$,�i��9�"N�"N�	O�	O�	O�	O�	Or)c��tj�tj��ddz}d}tj||�����}d}t}t��}|j
�||||��}|j
�|||||��|�
|���|��|dz
}|j
�|||||��}t��}|j
�||||||��|�
||�����dS)NrrXr�r�zfor the win!)r�r�r]rr�r`rar6r�rrrCrBrurl)r6r�r��expected_file_linerhr\�file_objectr�s        r �test_showwarningz%WarningsDisplayTests.test_showwarning�sN���G�$�$�]�%;�<�<�Q�?�%�G�	���&�.�y�(�C�C�I�I�K�K�������j�j����*�*�7�H�i�,4�6�6��������9�h� +�	-�	-�	-�����-�-�/�/��8�8�8��n�,����*�*�7�H�i�,4�6H�J�J���j�j��������9�h� +�-?�	A�	A�	A������!5�!5�!7�!7�8�8�8�8�8r)c	��d�}tj�tj��ddz}d}tj||�����}d}t}t��}d|�d|�d|�d	|��d
|��z}tj|jd|��5|j�
||||||��|�|���|��ddd��dS#1swxYwYdS)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�s0��O��O�O�H�O�O��O�O�f�O�O��O�O�Or)rrXr�r�r�r�r�r�r�rC)r�r�r]rr�r`rar6r�rrr�rrBrurl)	r6r�r�r�r�rhr\r��expecteds	         r �test_formatwarning_overridez0WarningsDisplayTests.test_formatwarning_override�sg��	P�	P�	P��G�$�$�]�%;�<�<�Q�?�%�G�	����%�i��:�:�@�@�B�B�	������j�j��I��I�I�H�I�I��I�I�x�I�I�$��$�$�%��
�
�t�{�O�_�
M�
M�	?�	?��K�#�#�G�X�y�(�$/��
<�
<�
<����[�1�1�3�3�X�>�>�>�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?����	?�	?�	?�	?�	?�	?s�%AC:�:C>�C>N)r%r&r'r:r�r�r�r(r)r r�r�tsN������'�'�O�O�O�$9�9�9�*?�?�?�?�?r)r�c��eZdZeZdS)�CWarningsDisplayTestsNrNr(r)r r�r��rPr)r�c��eZdZeZd�ZdS)�PyWarningsDisplayTestsc	���|�tjtj��t	tjdd���5}|�t
jd����ddd��n#1swxYwYd�}tj	�
tj��}|dtj��}t
jd|�d������}|�||��|dd	d
tj��}t
jd|�d|�d|�d
������}|�||��dS)Nr`�utf-8)�encodingz�
                def func():
                    f = open(__file__, "rb")
                    # Emit ResourceWarning
                    f = None

                func()
            c���t|ddi�}|j�dd��}d�|�����}tjdd|��}|S)N�PYTHONIOENCODINGr��replacerWz<.*>z<...>)r	r�decode�joinr{�re�sub)r��resrns   r �runz4PyWarningsDisplayTests.test_tracemalloc.<locals>.run�s`��"�D�C�7�C�C�C��W�^�^�G�Y�7�7�F��Y�Y�v�0�0�2�2�3�3�F��V�F�G�V�4�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��abspathr6ru)r6�fpr�r�rnr�s      r �test_tracemallocz'PyWarningsDisplayTests.test_tracemalloc�s������	�(�)�*:�;�;�;�
�)�"�C�'�
:�
:�
:�	�b��H�H�X�_�&���
�
�
�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	�	��7�?�?�9�#3�4�4����U�I�,�-�-���?�$�
�$�$�$�
�
��U�W�W�		�
	
�����*�*�*���U�D�/�9�3C�D�D���?�$�
�$�$��	$�$��
$�$�$�
�
��U�W�W�	�	
�����*�*�*�*�*s�(A;�;A?�A?N)r%r&r'rTrr�r(r)r r�r��s(������
�F�++�++�++�++�++r)r�c�<�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	S)
�CatchWarningTestszTest catch_warnings().c�,�|j}|j}|j}|�|d���5t	��x|_|_ddd��n#1swxYwY|�|j|��|�|j|��|�|d���5t	��x|_|_ddd��n#1swxYwY|�|j|��|�|j|��dS�NTr�F)rrrBrF�objectr�)r6r��orig_filters�orig_showwarnings    r �test_catch_warnings_restorez-CatchWarningTests.test_catch_warnings_restore�s}���{���|���+��
�
 �
 ��T�
 �
:�
:�	7�	7�.4�h�h�6�D�L�4�+�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7��
�
�d�l�L�1�1�1��
�
�d�&�(8�9�9�9�
�
 �
 ��U�
 �
;�
;�	7�	7�.4�h�h�6�D�L�4�+�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7��
�
�d�l�L�1�1�1��
�
�d�&�(8�9�9�9�9�9s#�A�A�A�,C�C�Cc���|j}|�|d���5}|�|g��|�t	|��t
��|�d��|�d��|�t|dj	��d��|�d��|�t|dj	��d��|�t|dj	��d��|�t|dj	��d��|dd�=|�|g��ddd��n#1swxYwY|j
}|�|d	���5}|�|��|�|j
|��ddd��dS#1swxYwYdS)
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�s>���{��
�
 �
 ��T�
 �
:�
:�	$�a����Q��#�#�#��M�M�$�q�'�'�4�(�(�(����h�'�'�'��I�I�e�������S��2���/�/��7�7�7��I�I�e�������S��2���/�/��7�7�7����S��1���.�.��6�6�6����S��1���.�.��6�6�6��!�!�!�����Q��#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$� �+��
�
 �
 ��U�
 �
;�
;�	>�q����a� � � ��M�M�$�*�,<�=�=�=�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�	>�	>s$�EE<�<F�F�%1G#�#G'�*G'c���|j}|�|d���}|�t|j��|5|�t|j��ddd��n#1swxYwY|�|d���}|�t|j��|5|�t|j��ddd��dS#1swxYwYdSr�)rrFr^�RuntimeError�__exit__�	__enter__)r6r�r�s   r �!test_catch_warnings_reentry_guardz3CatchWarningTests.test_catch_warnings_reentry_guards`���{�����t�D��9�9�����,��
�3�3�3�
�	9�	9����l�A�K�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�
���t�E��:�:�����,��
�3�3�3�
�	9�	9����l�A�K�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�	9�	9s$�!A.�.A2�5A2�2!C � C$�'C$c��|j}|j}|j}|�|���5}|�|��|�|j|��|�|j|��ddd��n#1swxYwY|�|j|��|tjdur�|���5}|�|��|�|j|��|�|j|��ddd��n#1swxYwY|�|j|��dSdS)NrYr
)	rrrBrFr�r�rrr2)r6r�r�r�r`s     r �test_catch_warnings_defaultsz.CatchWarningTests.test_catch_warnings_defaultss����{���|���+��
�
 �
 ��
 �
-�
-�	9�����a� � � ��M�M�$�*�,<�=�=�=����T�\�<�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�	
�
�
�d�l�L�1�1�1��3�;�z�*�*�	6��$�$�&�&�
=�!��!�!�!�$�$�$��
�
�d�.�0@�A�A�A�� � ���|�<�<�<�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=����
=�
=�
=�
=�
�M�M�$�,��5�5�5�5�5�
	6�	6s%�AB�B�B�AD*�*D.�1D.c�p��d}|j}g�d	�fd�	}tj|d|��5|�|d���5}|�|j|��|�d��|�|��ddd��n#1swxYwY|�|j|��ddd��n#1swxYwY|�	t|��d|��|�	|djjd|��|�	�g��dS)
N�This is a warningc�2����|��dSrer��rhr\r�r�r>rf�my_logs      �r �	my_loggerzLCatchWarningTests.test_record_override_showwarning_before.<locals>.my_logger6�����M�M�'�"�"�"�"�"r)rBTr�rr{r�NN)
rrr�rFrrBrr@r�rurvrhr��r6r�r�r��logr�s     @r �'test_record_override_showwarning_beforez9CatchWarningTests.test_record_override_showwarning_before/s����#���{����	#�	#�	#�	#�	#�	#�
�
�t�]�I�
>�
>�	7�	7��$�$�D��$�>�>�
 �#�� � ��!1�9�=�=�=��!�!�(�+�+�+��	�	�$����	
 �
 �
 �
 �
 �
 �
 �
 �
 �
 �
 ����
 �
 �
 �
 �
�M�M�$�*�I�6�6�6�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7�	
����S���1�c�*�*�*�����Q���,�Q�/��6�6�6������$�$�$�$�$s6�C�AB�C�B	�C�B	�C�C	�C	c���d}|j}g�d�fd�	}|�|d���5}|�d��||_|�|��ddd��n#1swxYwY|�t
���d���|��djd|��|�|g��dS)	Nr�c�2����|��dSrer�r�s      �r r�zLCatchWarningTests.test_record_override_showwarning_inside.<locals>.my_loggerOr�r)Tr�rr{rr�)rrFrrBr@rurvr�r�s     @r �'test_record_override_showwarning_insidez9CatchWarningTests.test_record_override_showwarning_insideHs)���#���{����	#�	#�	#�	#�	#�	#��
 �
 ��T�
 �
:�
:�	�c����h�'�'�'�(�D���I�I�d�O�O�O�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
	
����V���a��0�0�0���������*�D�1�1�1�����b�!�!�!�!�!s�2A(�(A,�/A,c���|j}|tjdur|�d��t	jd���5}|�|jg��|�d��|�	d��|�t|j��d��|�	d��|�t|j��d��|�t|jdj��d��|�t|jd	j��d��|���|�|jg��ddd��n#1swxYwYt	j��5	ddd��n#1swxYwYt	jdtf��5|�	d��ddd��n#1swxYwY|�t��5t	jd
t f��5	ddd��n#1swxYwYddd��n#1swxYwY|�t��5t	jdt f��5|�	d��ddd��n#1swxYwYddd��dS#1swxYwYdS)Nr
z,module to test is not loaded warnings moduleF��quietrr�r�rr{r�)rrr2�skipTestr�check_warningsrur
rr@r�rh�resetr]r^�AssertionError�RuntimeWarning)r6r�r`s   r �test_check_warningsz%CatchWarningTests.test_check_warnings\sN���{���s�{�:�.�.�	J��M�M�H�I�I�I�
�
+�%�
8�
8�
8�
	-�A����Q�Z��,�,�,����h�'�'�'��I�I�e�������S���^�^�U�3�3�3��I�I�e�������S���^�^�U�3�3�3����S���A��!6�7�7��?�?�?����S���A��!6�7�7��?�?�?�
�G�G�I�I�I����Q�Z��,�,�,�
	-�
	-�
	-�
	-�
	-�
	-�
	-�
	-�
	-�
	-�
	-����
	-�
	-�
	-�
	-��
+�
-�
-�	�	��	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
+�U�K�,@�
A�
A�	�	��I�I�e����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
�
�~�
.�
.�	�	� �/��^�0D�E�E�
�
��
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
�
�~�
.�
.�	!�	!� �/���0G�H�H�
!�
!��	�	�%� � � �
!�
!�
!�
!�
!�
!�
!�
!�
!�
!�
!����
!�
!�
!�
!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�	!�	!s��EF�F�F�0F>�>G�G�$H�H
�
H
�+I,�I�	I,�I	�I,�I	�I,�,I0�3I0�K'�-K�K'�K	�K'�K	�K'�'K+�.K+N)r%r&r'r:r�r�r�r�r�r�r�r(r)r r�r��s������� � �
:�
:�
:�>�>�>�*9�9�9�6�6�6�$%�%�%�2"�"�"�(!�!�!�!�!r)r�c��eZdZeZdS)�CCatchWarningTestsNrNr(r)r r�r�{rPr)r�c��eZdZeZdS)�PyCatchWarningTestsNrSr(r)r r�r�~rUr)r�c��eZdZd�Zd�Zd�Zd�Zd�Zej	e
j��dkd��d���Zd	S)
�EnvironmentVariableTestsc�`�tdddd���\}}}|�|d��dS)Nr/�2import sys; sys.stdout.write(str(sys.warnoptions))�ignore::DeprecationWarningr���PYTHONWARNINGS�
PYTHONDEVMODEs['ignore::DeprecationWarning']�r	rurps    r �test_single_warningz,EnvironmentVariableTests.test_single_warning�sG��-�d�@�7�������F�F�	
����!B�C�C�C�C�Cr)c�`�tdddd���\}}}|�|d��dS)Nr/r�z1ignore::DeprecationWarning,ignore::UnicodeWarningr�r��8['ignore::DeprecationWarning', 'ignore::UnicodeWarning']r�rps    r �test_comma_separated_warningsz6EnvironmentVariableTests.test_comma_separated_warnings�sV��-�d�@�N�������F�F�	
����G�	I�	I�	I�	I�	Ir)c�b�tddddd���\}}}|�|d��dS)Nz-Wignore::UnicodeWarningr/r�r�r�r�rr�rps    r �test_envvar_and_command_linez5EnvironmentVariableTests.test_envvar_and_command_line�sY��-�.H�$�@�7�������F�F�	
����G�	I�	I�	I�	I�	Ir)c��tddddd���\}}}|�|d��|�|���gd���dS)	Nz-Werror::DeprecationWarningr/zjimport sys, warnings; sys.stdout.write(str(sys.warnoptions)); warnings.warn('Message', DeprecationWarning)zdefault::DeprecationWarningr�r�s<['default::DeprecationWarning', 'error::DeprecationWarning'])s"Traceback (most recent call last):s&  File "<string>", line 1, in <module>sDeprecationWarning: Message)r
rur{rps    r �(test_conflicting_envvar_and_command_linezAEnvironmentVariableTests.test_conflicting_envvar_and_command_line�s���2�3P�RV�
;�8��	�����F�F�
	
����K�	M�	M�	M�����*�*�,�,�
-�
-�
-�	.�	.�	.�	.�	.r)c	��|jtu}trg}nR|rtjd��}nd}ddt
|dfddt
ddfddtddfddtddfddtddfg}d�|D��}|rd}nd}|dz
}td	|d
���\}}}d�|�
��D��}	d|_|�|	|��dS)
N�__main__r�rrsc�P�g|]#}t|�������$Sr()r��encode)r�ris  r r�zNEnvironmentVariableTests.test_default_filter_configuration.<locals>.<listcomp>�s&��M�M�M�q�3�q�6�6�=�=�?�?�M�M�Mr)zPimport sys; sys.modules.pop('warnings', None); sys.modules['_warnings'] = None; r�z5import warnings; [print(f) for f in warnings.filters]r/T)�
__isolatedc�6�g|]}|�����Sr()r6)r�rfs  r r�zNEnvironmentVariableTests.test_default_filter_configuration.<locals>.<listcomp>�s ��E�E�E���
�
���E�E�Er))
rrT�Py_DEBUGr�r��DeprecationWarning�PendingDeprecationWarning�
ImportWarning�ResourceWarningr	r{�maxDiffru)
r6�pure_python_api�expected_default_filters�main_module_filter�expected_output�coder2rRrn�stdout_liness
          r �!test_default_filter_configurationz:EnvironmentVariableTests.test_default_filter_configuration�s%���+��4���
	�')�$�$��
0�%'�Z�
�%;�%;�"�"�%/�"��D�"4�6H�!�L��4�!3�T�1�=��4�!:�D�!�D��4���a�8��4��$��:�(�$�N�M�4L�M�M�M���	�e�D�D��D��G�G��-�d�D�T�J�J�J���F�F�E�E��1B�1B�1D�1D�E�E�E����������7�7�7�7�7r)�asciiz%requires non-ascii filesystemencodingc��dtjz}tddd|d���\}}}|�|t	|g�������dS)Nzignore:DeprecationWarningr/r�r�r�)r�r�r�)r�FS_NONASCIIr	rur�r	)r6r�r2rRrns     r �
test_nonasciiz&EnvironmentVariableTests.test_nonascii�so��3�Y�5J�J��-�d�@�$�)��	�����F�F�
	
�����n�%5�!6�!6�!=�!=�!?�!?�@�@�@�@�@r)N)
r%r&r'r�rrrrr-�
skipUnlessr�getfilesystemencodingrr(r)r r�r��s�������D�D�D�I�I�I�I�I�I�.�.�.�8�8�8�>�X��2��2�4�4��?�@�B�B�A�A�B�B�A�A�Ar)r�c��eZdZeZdS)�CEnvironmentVariableTestsNrNr(r)r r r �rPr)r c��eZdZeZdS)�PyEnvironmentVariableTestsNrSr(r)r r"r"�rUr)r"c�"�eZdZdZeZd�Zd�ZdS)�_DeprecatedTestzTest _deprecated().c��d}gd�}|D]�}d|d�d|d��}|tf}|�|���5tj|d�	��5|j�d
||���ddd��n#1swxYwYddd��n#1swxYwY��d}d
}tj|tfd�	��5|j�d
d|���ddd��dS#1swxYwYdS)N�r��r�finalr))r��)r�r')r�r)r�r)z.*test_warnings.*rz\.r{��removeFr��
test_warnings�r+�_version)r�r'r�alpharz.*test_warnings.*3\.11�r�r')r
�subTestrr�r�_deprecated)r6rtr�r+r��filters      r �test_warningz_DeprecatedTest.test_warning�s���(��2�2�2���	>�	>�F�?�v�a�y�?�?�F�1�I�?�?�C��,�,�F����V��,�,�
>�
>�$�3�F�%�H�H�H�>�>��K�+�+�O�F�5<�,�>�>�>�>�>�>�>�>�>�>�>�>�>�>����>�>�>�>�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>����
>�
>�
>�
>��
)��'��
�
+�S�2D�,E�U�
S�
S�
S�	6�	6��K�#�#�O�G�-4�
$�
6�
6�
6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6�	6�	6sG�B�A?�3B�?B�B�B�B�B	�B	�C.�.C2�5C2c�(�d}gd�}|D]}|�|���5|�t��5|j�d||���ddd��n#1swxYwYddd��n#1swxYwY��dD]�}ddd	|d	f}|�|�
��5|�t��5|j�dd|���ddd��n#1swxYwYddd��n#1swxYwY��dS)Nr&))r�r)r�r))r��
r*r,r-)�beta�	candidater(r�r'r)�releaselevelr0)r1r^r�rr2)r6rtr�r+�levels     r �test_RuntimeErrorz!_DeprecatedTest.test_RuntimeError�s>��(��)�)�)���	>�	>�F����V��,�,�
>�
>��&�&�|�4�4�>�>��K�+�+�O�F�5<�,�>�>�>�>�>�>�>�>�>�>�>�>�>�>����>�>�>�>�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>����
>�
>�
>�
>��4�	>�	>�E��"�a���*�G����5��1�1�
>�
>��&�&�|�4�4�>�>��K�+�+�O�G�5<�,�>�>�>�>�>�>�>�>�>�>�>�>�>�>����>�>�>�>�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>����
>�
>�
>�
>��	>�	>sj�A=�A&�A=�&A*�*A=�-A*�.A=�=B	�B	�*D�C/�#D�/C3�3D�6C3�7D�D
	�
D
	N)r%r&r'r:rrr4r;r(r)r r$r$�s=��������
�F�6�6�6�"
>�
>�
>�
>�
>r)r$c��eZdZd�ZdS)�
BootstrapTestc	��tj��5}tjd��5tdd|���tdddd|���ddd��n#1swxYwYddd��dS#1swxYwYdS)N�	encodingsr/r0)�
PYTHONPATHz-Wr)r�temp_cwdr	)r6�cwds  r �test_issue_8766zBootstrapTest.test_issue_8766s-���
�
!�
!�	K�S�)�*<�[�*I�*I�	K�	K��T�6�c�:�:�:�:�
�T�6�4��c�J�J�J�J�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K����	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K����	K�	K�	K�	K�	K�	Ks4�A4�'A�A4�A 	� A4�#A 	�$A4�4A8�;A8N)r%r&r'rCr(r)r r=r=s(������	K�	K�	K�	K�	Kr)r=c��eZdZd�Zd�ZdS)�FinalizationTestc��d}td|��\}}}|�|������d��dS)Nzk
import warnings
warn = warnings.warn

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

a=A()
        r/z<string>:7: UserWarning: test)r	rur��rstrip)r6rr2r3rs     r �test_finalizationz"FinalizationTest.test_finalizations[��	��(��d�3�3���C����������,�,�.�.�8�	:�	:�	:�	:�	:r)c�^�d}dtz}tdd|��\}}}|�|�|��t	|����dtz}tdd|��\}}}|�|�|��t	|����dS)Ns&sys:1: ResourceWarning: unclosed file zf = open(%a)r�r/zimport warnings; f = open(%a))r�r	rG�
startswithr)r6r�rr2r3rs      r �test_late_resource_warningz+FinalizationTest.test_late_resource_warning s���=����(��'��t�T�:�:���C��������x�0�0�%��*�*�=�=�=�/��9��'��t�T�:�:���C��������x�0�0�%��*�*�=�=�=�=�=r)N)r%r&r'rHrKr(r)r rErEs2������:�:�:�">�>�>�>�>r)rEc�~�tj���tj���dSre)rTr?rrOr(r)r �setUpModulerM2s2����"�"�$�$�$���!�!�#�#�#�#�#r)r)?�
contextlibrr`r��iorr�rr�r-r�r�test.supportrrr�test.support.script_helperr	r
�test.test_warnings.datarrr
r�import_fresh_modulerTrOr1rr!r�r#r+r=�TestCaserMrRrWr�r�r�rrr"r+r-r:r�r�r�r�r�r�r�r r"r$r=rErM�tearDownModuler%�mainr(r)r �<module>rWs���%�%�%�%�%�%�����	�	�	�	�������	�	�	�	�
�
�
�
���������������&�&�&�&�&�&�"�"�"�"�"�"�(�(�(�(�(�(�N�N�N�N�N�N�N�N�?�?�?�?�?�?�$�$�$�$�0�m�/�
�9D�
�G�G�G��
.�]�
.�z�6A�]�D�D�D�
��7�3�*�+�+���*�*���*�0	�	�	�	�	�'�	�	�	�)�)�)�)�)�)�)�)�8-�-�-�-�-�X�-�-�-������n�h�&7���������~�x�'8����aJ�aJ�aJ�aJ�aJ�(�aJ�aJ�aJ�F	�����;�� 1���������K��!2����c7�c7�c7�c7�c7��c7�c7�c7�J@�@�@�@�@��H�-�@�@�@�?�?�?�?�?�)�X�.�?�?�?� >� >� >� >� >�H� >� >� >�F�����]�H�$5����1�1�1�1�1�m�X�%6�1�1�1�(lH�lH�lH�lH�lH�X�x�0�lH�lH�lH�^=?�=?�=?�=?�=?�8�=?�=?�=?�@�����0�(�2C����.+�.+�.+�.+�.+�1�8�3D�.+�.+�.+�bQ!�Q!�Q!�Q!�Q!��Q!�Q!�Q!�f�����*�H�,=���������+�X�->����NA�NA�NA�NA�NA�x�NA�NA�NA�`����� 8�(�:K���������!9�8�;L����$>�$>�$>�$>�$>�h�� 1�$>�$>�$>�NK�K�K�K�K�H�%�K�K�K�!>�!>�!>�!>�!>�x�(�!>�!>�!>�H$�$�$����z����H�M�O�O�O�O�O��r)