Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/audit-tests.cpython-311.opt-1.pyc
�

�Ke5.��`�dZddlZddlZddlZGd�d��Zd�Zd�Zd�Zd�Zej	d	���Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zedkr7ddlm Z e ��ej!dZ"e#��e"��dSdS) z�This script contains the actual auditing tests.

It should not be imported directly, but should be run by the test_audit
module with arguments identifying each test.

�Nc�L�eZdZdZdefd�Zd�Zd�Zd�Ze	d���Z
d�ZdS)	�TestHookz�Used in standard hook tests to collect any logged events.

    Should be used in a with block to ensure that it has no impact
    after the test completes.
    Nc�B�|pd|_||_g|_d|_dS)N�F)�raise_on_events�exc_type�seen�closed)�selfrrs   �:/usr/local/apps/python3/lib/python3.11/test/audit-tests.py�__init__zTestHook.__init__s(��.�4�"��� ��
���	������c�.�tj|��|S�N)�sys�addaudithook�r�as  r�	__enter__zTestHook.__enter__s���������rc�.�|���dSr)�closers  r�__exit__zTestHook.__exit__s���
�
�����rc��d|_dS)NT)r
�rs rrzTestHook.close!s
������rc�$�d�|jD��S)Nc��g|]
}|d��S)rr��.0�is  r�
<listcomp>z(TestHook.seen_events.<locals>.<listcomp>&s��(�(�(���!��(�(�(r)r	rs r�seen_eventszTestHook.seen_events$s��(�(�d�i�(�(�(�(rc��|jrdS|j�||f��||jvr|�d|z���dS)Nz
saw event )r
r	�appendrr)r�event�argss   r�__call__zTestHook.__call__(sX���;�	��F��	���%���'�'�'��D�(�(�(��-�-��u� 4�5�5�5�)�(r)�__name__�
__module__�__qualname__�__doc__�RuntimeErrorr
rrr�propertyr!r&rrrrr
s���������(,�l���������������)�)��X�)�6�6�6�6�6rrc�:�||krt|�d|�����dS)N� should equal ��AssertionError��x�ys  r�assertEqualr41s.���A�v�v���8�8�1�8�8�9�9�9��vrc�6�||vrt|�d|�����dS)Nz should be in r/��el�seriess  r�assertInr96s1��	������>�>�F�>�>�?�?�?��rc�6�||vrt|�d|�����dS)Nz should not be in r/r6s  r�assertNotInr;;s.��	�V�|�|���B�B��B�B�C�C�C��|rc���t|��t|��krt|�d|�����td�t||��D����rt|�d|�����dS)Nr.c3�(K�|]
\}}||kV��dSrr)r�ix�iys   r�	<genexpr>z&assertSequenceEqual.<locals>.<genexpr>Cs*����
,�
,���B�2��8�
,�
,�
,�
,�
,�
,r)�lenr0�any�zipr1s  r�assertSequenceEqualrD@s���
�1�v�v��Q�������8�8�1�8�8�9�9�9�
�
,�
,�#�a��)�)�
,�
,�
,�,�,�:���8�8�1�8�8�9�9�9�:�:rc#�pK�	dV�dS#t$r!}t|t��r�Yd}~dSd}~wwxYwr)�
BaseException�
isinstancer0)�ex_type�exs  r�assertRaisesrJGso����@�
��������@�@�@��b�.�)�)�	��	�	�	�	�	�	�����@���s�
�
5�0�5c��t��5}tjdddd��t|jddd��t|jddd��ddd��dS#1swxYwYdS)N�
test_event���r)rMrNrO)rr�auditr4r	)�hooks r�
test_basicrRRs���	���0�t��	�,��1�a�(�(�(��D�I�a�L��O�\�2�2�2��D�I�a�L��O�Y�/�/�/�0�0�0�0�0�0�0�0�0�0�0�0����0�0�0�0�0�0s�AA6�6A:�=A:c� �td���5}t��5}tjd��td|j��td|j��ddd��n#1swxYwYddd��dS#1swxYwYdS)N�sys.addaudithook�rrL)rrrPr9r!r;��hook1�hook2s  r�test_block_add_hookrYYs	��
�"4�	5�	5�	5�9��
�Z�Z�	9�5��I�l�#�#�#��\�5�#4�5�5�5���e�&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�9s4�B�?A+�B�+A/	�/B�2A/	�3B�B�
Bc�
�tt��5tdt���5}t��5}	ddd��n#1swxYwYddd��n#1swxYwYddd��dS#1swxYwYdS)NrT)rr)rJrFrrVs  r�!test_block_add_hook_baseexceptionr[cs@��	�m�	$�	$���
�.��
�
�
�	�
����
�u��
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�		�	�	�	�	�	�	�	�	�	�	����	�	�	�	���������������������sV�A8�A �A	�A �	A
�
A �A
�A �A8� A$	�$A8�'A$	�(A8�8A<�?A<c	�F�ddl}d}|�|��}t��5}t||�|�|������	tdd��5}|�||��ddd��n#1swxYwYtdd��5}t||�|����ddd��n#1swxYwYtj	d��n#tj	d��wxYw	ddd��n#1swxYwYd�|j
D��}t|||jfgdz��d�|j
D��}t||g��d	�|j
D��}t|d
g��dS)Nr�r�b�crMrNrOztest-marshal.bin�wb�rbc�@�g|]\}}|dk�|d|df��S)z
marshal.dumpsrrMr�r�ers   rr z test_marshal.<locals>.<listcomp>~s2��
I�
I�
I�t�q�!�A��4H�4H�q��t�Q�q�T�l�4H�4H�4HrrNc�0�g|]\}}|dk�|d��S)z
marshal.loadsrrrcs   rr z test_marshal.<locals>.<listcomp>�s*��
A�
A�
A�t�q�!�A��,@�,@�a��d�,@�,@�,@rc�$�g|]
\}}|dk�|��S)�marshal.loadrrcs   rr z test_marshal.<locals>.<listcomp>�s&��
=�
=�
=�D�A�q��n�)<�)<�a�)<�)<�)<rrg)
�marshal�dumpsrr4�loads�open�dump�load�os�unlinkr	rD�version)rh�o�payloadrQ�f�actuals      r�test_marshalrunsZ���N�N�N� �A��m�m�A���G�	���	*�t��A�w�}�}�W�]�]�1�%5�%5�6�6�7�7�7�	*��(�$�/�/�
#�1����Q��"�"�"�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#����
#�
#�
#�
#��(�$�/�/�
0�1��A�w�|�|�A���/�/�/�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0����
0�
0�
0�
0�
�I�(�)�)�)�)��B�I�(�)�)�)�)����)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�J�
I�t�y�
I�
I�
I�F���!�W�_�!5� 6�� :�;�;�;�
A�
A�t�y�
A�
A�
A�F����	�*�*�*�
=�
=�D�I�
=�
=�
=�F���� 0�1�1�1�1�1sq�7D&�"D�2B�	D�B	�D�B	�D�0$C �D� C$	�$D�'C$	�(D�+D&�D�D&�&D*�-D*c���ddl}Gd�d��}|�|����}|�d��}td|�|����t	d���5}tt��5|�|��ddd��n#1swxYwY|�|��ddd��dS#1swxYwYdS)Nrc��eZdZd�ZdS)� test_pickle.<locals>.PicklePrintc��tdfS)N)�Pwned!)�str)r�ps  r�
__reduce_ex__z.test_pickle.<locals>.PicklePrint.__reduce_ex__�s
����#�#rN)r'r(r)r}rrr�PicklePrintrx�s#������	$�	$�	$�	$�	$rr~r]rzzpickle.find_classrU)�picklerir4rjrrJr+)rr~�	payload_1�	payload_2rQs     r�test_pickler��sx���M�M�M�$�$�$�$�$�$�$�$����[�[�]�]�+�+�I����5�6�6�I���&�,�,�y�1�1�2�2�2�	�"5�	6�	6�	6� �$�
�,�
'�
'�	$�	$��L�L��#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�	���Y���� � � � � � � � � � � � ���� � � � � � s6�7C�B.�"C�.B2	�2C�5B2	�6C�C�"Cc��Gd�d��}Gd�d��}Gd�d|��}|��}t��5}d|_|f|_tjd�||f��|j|_d	|_||_ddd��n#1swxYwYd
�|j	D��}t|df|df|df|dfg|��dS)
Nc��eZdZdS)�test_monkeypatch.<locals>.AN�r'r(r)rrr�Ar����������rr�c��eZdZdS)�test_monkeypatch.<locals>.BNr�rrr�Br��r�rr�c��eZdZdS)�test_monkeypatch.<locals>.CNr�rrr�Cr��r�rr��X�	__bases__�{c�@�g|]\}}|dk�|d|df��S)zobject.__setattr__rrMrrcs   rr z$test_monkeypatch.<locals>.<listcomp>�s3��
N�
N�
N�t�q�!�A�9M�4M�4M�q��t�Q�q�T�l�4M�4M�4Mrr'�	__class__)rr'r��type�__dict__�__set__r
�new_attrr�r	rD)r�r�r�rrQrts      r�test_monkeypatchr��s���
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�A�
�
�
�	
����A�	����t���
��d����
�k�"�*�*�1�q�d�3�3�3��Z��
���
����������������������O�
N�t�y�
N�
N�
N�F��
�Z��1�k�*�Q��,<�q�+�>N�O�QW�����s�AB�B"�%B"c
�0�	ddl}|���j}n#t$rd}YnwxYwt	dh���5}t
tjddft
tjdft
ddft
tjdd	d
ddddd�f	|tjdffD]8^}}|s�tt��5||�ddd��n#1swxYwY�9	ddd��n#1swxYwYd
�|jD��}d�|jD��}td�tjddftjdfdtjdd	f|rtjddfndfD��|��tg|��dS)NrrkrUrN�rrarOr`�w���Fc��dS)NrMr�rs r�<lambda>ztest_open.<locals>.<lambda>�s��Q�rc�P�g|]#\}}|dk�|d�|d|df��$S)rkrMrrrcs   rr ztest_open.<locals>.<listcomp>�s5��N�N�N�D�A�q��f����1���A�a�D�!�A�$�<���rc�P�g|]#\}}|dk�|d�|d|df��$S)rkrMrrNrrcs   rr ztest_open.<locals>.<listcomp>�s5��R�R�R�D�A�q��f���Q�q�T��A�a�D�!�A�$�<���rc��g|]}|�|��Srrrs  rr ztest_open.<locals>.<listcomp>�s)��
	
�
	
�
	
���}�
��}�}r)rOr�)
�ssl�create_default_context�load_dh_params�ImportErrorrrkr�argv�
executablerJr+r	rD)r�r�rQ�fnr%�actual_mode�actual_flags       r�	test_openr��sU����
�
�
��3�3�5�5�D����������������

�6�(�	+�	+�	+��t�
�3�8�A�;��$�
�3�>�4�(�
�1�d�O�
�3�8�A�;��R��t�T�5�,�,�O�
�S�X�a�[�)�
�
	�
	�I�B���
���l�+�+�
�
���D�	�	�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
��
	�������������������O�N�D�I�N�N�N�K�R�R�D�I�R�R�R�K��
	
�
	
���!��c�"����%����!��c�"�'5�?���!��d�#�#�4��
	
�
	
�
	
�	�
�
�
���K�(�(�(�(�(sC� �/�/�BC4�	C�C4�C�C4�"C�#C4�4C8�;C8c���g��fd�}tj|��}	t��5}td��d|_td��d|_td��d|_td��d	|_ddd��n#1swxYwYtj|��n#tj|��wxYwtd
gdz���dS)Nc�j��|jtjjkr��|��dSdSr)�f_coderr&�__code__r#)�framer$r%�traceds   �r�traceztest_cantrace.<locals>.trace�s6����<�8�,�5�5�5��M�M�%� � � � � �6�5r�1F�2T�3rM�4r�call�)r�settracer�eval�__cantrace__rD)r��oldrQr�s   @r�
test_cantracer��s.���
�F�!�!�!�!�!��,�u�
�
�C��
�Z�Z�	"�4���I�I�I�!&�D����I�I�I�!%�D����I�I�I�!"�D����I�I�I�!"�D��#	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�&	��S��������S�����������1��f�-�-�-�-�-s/�B1�AB�B1�B�B1�B�B1�1Cc���ddl}t��5}|�dd��t|jdddd�d��ddd��dS#1swxYwYdS)Nrr��rMrN)r�r�)�mmaprr4r	)r�rQs  r�	test_mmapr�	s����K�K�K�	���2�t��	�	�"�a�����D�I�a�L��O�B�Q�B�'��1�1�1�2�2�2�2�2�2�2�2�2�2�2�2����2�2�2�2�2�2s�AA � A$�'A$c�r��d���fd�}tj|���t_td���)Nc�H�|turtj|||��dSdSr)r+r�__excepthook__)r�	exc_value�exc_tbs   r�
excepthookz#test_excepthook.<locals>.excepthooks0���<�'�'���x��F�;�;�;�;�;�(�'rc�(��|dkr�t|d|d��s"td|d�d|d�d����|d�krtd|d�d	������t|t	|d����dSdS)
Nzsys.excepthookrNrMzExpected isinstance(z, �)r�	Expected � == )rG�	TypeError�
ValueError�print�repr)r$r%r�s  �rrQztest_excepthook.<locals>.hooks�����$�$�$��d�1�g�t�A�w�/�/�
V�� T�t�A�w� T� T��Q�� T� T� T�U�U�U��A�w�*�$�$� �!F�T�!�W�!F�!F�*�!F�!F�G�G�G��%��d�1�g���'�'�'�'�'�%�$rzfatal-error)rrr�r+)rQr�s @r�test_excepthookr�sS���<�<�<�(�(�(�(�(���T�����C�N�
�}�
%�
%�%rc���ddlm}d���fd�}tj|���t_|td��dd��dS)Nr)�write_unraisable_excc��dSrr)�hookargss r�unraisablehookz+test_unraisablehook.<locals>.unraisablehook&s���rc����|dkr]|d�krtd|d�d������t|t|dj��|dj��dSdS)Nzsys.unraisablehookrr�r�rM)r�r�r�r��err_msg)r$r%r�s  �rrQz!test_unraisablehook.<locals>.hook)sv����(�(�(��A�w�.�(�(� �!J�T�!�W�!J�!J�.�!J�!J�K�K�K��%��d�1�g�/�0�0�$�q�'�/�B�B�B�B�B�)�(rznonfatal-errorzfor audit hook test)�	_testcapir�rrr�r+)r�rQr�s  @r�test_unraisablehookr�#s����.�.�.�.�.�.�
�
�
�C�C�C�C�C���T����'�C�����&6�7�7�9N�PT�U�U�U�U�Urc��ddlm}m}m}m}d�}tj|��||d��}||d��	||d��td���#t$rYnwxYw|�	��}||��dS)Nr)�OpenKey�EnumKey�CloseKey�HKEY_LOCAL_MACHINEc�N�|�d��sdSt|g|�R�dS)Nzwinreg.��
startswithr��r$r%s  rrQztest_winreg.<locals>.hook7s9�����	�*�*�	��F�
�e��d������r�Softwarei'z%Expected EnumKey(HKLM, 10000) to fail)
�winregr�r�r�r�rrr+�OSError�Detach)r�r�r�r�rQ�k�kvs       r�test_winregr�4s���E�E�E�E�E�E�E�E�E�E�E�E����
��T������"�J�/�/�A��G�A�q�M�M�M�D����5�����B�C�C�C���
�
�
���
����

�����B��H�R�L�L�L�L�Ls�A�
A%�$A%c�L�ddl}d�}tj|��|���|�|j|j��}	|�d��n#t$rYnwxYw|���dS#|���wxYw)Nrc�N�|�d��rt|g|�R�dSdS)Nzsocket.r�r�s  rrQztest_socket.<locals>.hookN�>�����I�&�&�	 ��%��$�������	 �	 r)z	127.0.0.1i�)	�socketrr�gethostname�AF_INET�SOCK_STREAM�bind�	Exceptionr)r�rQ�socks   r�test_socketr�Ks����M�M�M� � � ���T����
�������=�=����);�<�<�D���	�	�%�&�&�&�&���
�
�
���
����	
�
�
��������
�
�������s*�A'�&B
�'
A4�1B
�3A4�4B
�
B#c���ddl}d�}tj|��|�d���t	��}|g}|�|��|�|��dS)Nrc�N�|�d��rt|g|�R�dSdS)Nzgc.r�r�s  rrQztest_gc.<locals>.hookds>�����E�"�"�	 ��%��$�������	 �	 rrM)�
generation)�gcrr�get_objects�object�
get_referrers�
get_referents)r�rQr2r3s    r�test_gcr�as��
�I�I�I� � � ���T�����N�N�a�N� � � ����A�	
��A����Q�������Q�����rc�:�ddl}d�}tj|��|j�d��}	|�dd��n #t$rtdd��YnwxYw|���dS#|���wxYw)Nrc�^�|�d��rt|g|dd��R�dSdS)Nzhttp.client.rMr�r�s  rrQztest_http_client.<locals>.hookvsF�����N�+�+�	$��%�#�$�q�r�r�(�#�#�#�#�#�#�	$�	$rzwww.python.org�GET�/zhttp.client.sendz
[cannot send])	�http.clientrr�client�HTTPConnection�requestr�r�r)�httprQ�conns   r�test_http_clientr	ss�������$�$�$���T�����;�%�%�&6�7�7�D�����U�C� � � � ���3�3�3�
� �/�2�2�2�2�2�3����	
�
�
��������
�
�������s)�A�
B�A+�(B�*A+�+B�Bc�P�ddl}d�}tj|��|�d��}|�d��}t|jd��rK|�d��	|�d��td���#|j	$rYdSwxYwdS)Nrc�N�|�d��rt|g|�R�dSdS)Nzsqlite3.r�r�s  rrQztest_sqlite3.<locals>.hook�s>�����J�'�'�	 ��%��$�������	 �	 rz:memory:�enable_load_extensionF�testz'Expected sqlite3.load_extension to fail)
�sqlite3rr�connect�
Connection�hasattrr�load_extensionr+�OperationalError)rrQ�cx1�cx2s    r�test_sqlite3r�s����N�N�N� � � ���T����
�/�/�*�
%�
%�C�
�
�
�Z�
(�
(�C��w�!�#:�;�;�J��!�!�%�(�(�(�	J����v�&�&�&��H�I�I�I���'�	�	�	��D�D�	����	J�Js�1B�
B#�"B#c�R�ddl}d�}|j|��|j��dS)Nrc�t�|�d��r"t||djj��dSdS)Nzsys.r)r�r�r��co_namer�s  rrQztest_sys_getframe.<locals>.hook�sA�����F�#�#�	1��%��a���/�0�0�0�0�0�	1�	1r)rr�	_getframe)rrQs  r�test_sys_getframer�s@���J�J�J�1�1�1��C��T�����C�M�O�O�O�O�Orc��ddl}d�}tj|��|�d��|�d��|�|j��|���|�d��|�|j|j���dt_	|���|���dS)Nrc�N�|�d��rt|g|�R�dSdS)Nzsyslog.r�r�s  rrQztest_syslog.<locals>.hook�r�r�pythonr
�test2)�	logoption�facility)
�syslogrr�openlog�
setlogmask�	LOG_DEBUG�closelog�
LOG_NDELAY�
LOG_LOCAL0r�)r"rQs  r�test_syslogr)�s����M�M�M� � � ���T����
�N�N�8����
�M�M�&����
���f�&�'�'�'�
�O�O����
�M�M�'����
�N�N�V�.��9J�N�K�K�K��C�H�
�N�N����
�O�O�����rc��ddl}d�}tj|��|���D]}t	|t
��r�dS)Nrc��dSrrr�s rr�z test_not_in_gc.<locals>.<lambda>�s��d�r)r�rrr�rG�list)r�rQrqs   r�test_not_in_gcr-�sY��
�I�I�I��?�D���T����
�^�^�
�
�!�!���a����	!��!�!r�__main__)�suppress_msvcrt_assertsrM)$r*�
contextlibrnrrr4r9r;rD�contextmanagerrJrRrYr[rur�r�r�r�r�r�r�r�r�r�r	rrr)r-r'�test.supportr/r�r
�globalsrrr�<module>r4sA��������	�	�	�	�
�
�
�
� 6� 6� 6� 6� 6� 6� 6� 6�H:�:�:�
@�@�@�
D�D�D�
:�:�:���@�@���@�0�0�0�9�9�9����2�2�2�4 � � �*���@()�()�()�V.�.�.�B2�2�2�&�&�&�$V�V�V�"���.���,���$���$J�J�J�,������*!�!�!��z���4�4�4�4�4�4�������8�A�;�D��G�G�I�I�d�O������
�r