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

�Kero��(�	ddlZddlZddlmZddlmZddlmZddlmZddlmZm	Z	m
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZddlmZejjrejd	���ddlZej duZ!da"d
�Z#d�Z$Gd�d
ej%��Z&Gd�de'��Z(Gd�dej%��Z)Gd�dej%��Z*Gd�dej%��Z+e,dkrej-��dSdS)�N)�support)�	os_helper)�
socket_helper)�captured_stderr)�TESTFN�EnvironmentVarGuard�
change_cwd)�mock)�copyzPython was invoked with -Sc��tjdd�atjr�t
j�tj��sw	tjtj��tj	tj��dS#t$r)}tjdtj�d|�����d}~wwxYwdSdS)Nz&unable to create user site directory (z): )
�sys�path�OLD_SYS_PATH�site�ENABLE_USER_SITE�os�isdir�	USER_SITE�makedirs�
addsitedir�PermissionError�unittest�SkipTest)�excs �8/usr/local/apps/python3/lib/python3.11/test/test_site.py�setUpModuler,s����8�A�A�A�;�L���=�R�W�]�]�4�>�%B�%B�=�	=��K���'�'�'��O�D�N�+�+�+�+�+���	=�	=�	=��#�#�'+�~�~�~�s�s�%<�=�=�
=�����	=����
=�=�=�=s�<B	�	
B<�$B7�7B<c�2�ttjdd�<dS�N)rr
r��r�tearDownModuler!;s���C�H�Q�Q�Q�K�K�Kr c��eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zde	fd�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zejed��d���Zejejd��ej��d�����Zejed��d���Zejed��d���Zd�Zejed��d���Zd�ZdS)�HelperFunctionsTestsc��	tjdd�|_tj|_tj|_tj|_	tj|_ttj��|_dSr)r
r�sys_pathr�	USER_BASE�old_baser�old_site�PREFIXES�old_prefixes�	sysconfig�_CONFIG_VARS�
original_varsr�old_vars��selfs r�setUpzHelperFunctionsTests.setUpCsS��%��������
����
����
� �M���&�3����Y�3�4�4��
�
�
r c�\�	|jtjdd�<|jt_|jt_|jt_	|j
t_tj�Dtj�
��tj�|j��dSdSr)r%r
rr'rr&r(rr*r)r-r+r,�clear�updater.r/s r�tearDownzHelperFunctionsTests.tearDownLs�����m����������������)��
�!%�!3�	���!�-��"�(�(�*�*�*��"�)�)�$�-�8�8�8�8�8�.�-r c��d}tjj|�}tj|�\}}|�tj�|��|��|tj�|��kr|�||��dS|�tj�|��|��dS)N)�	Beginning�End)rr�joinr�makepath�assertEqual�abspath�normcase)r0�
path_parts�original_dir�abs_dir�norm_dirs     r�
test_makepathz"HelperFunctionsTests.test_makepathXs���*�
��w�|�Z�0�� �M�:�6������������6�6��@�@�@��2�7�+�+�L�9�9�9�9����W�h�/�/�/�/�/����R�W�-�-�g�6�6��A�A�A�A�Ar c��tj��}d�tjD��D]}|�|||�d|�����dS)Nc��g|]=}|�tj�|���#tj|��d��>S)�)rr�existsrr:)�.0rs  r�
<listcomp>z;HelperFunctionsTests.test_init_pathinfo.<locals>.<listcomp>gsQ��:�:�:���:�$&�G�N�N�4�$8�$8�:�d�m�D�)�)�!�,�:�:�:r z> from sys.path not found in set returned by _init_pathinfo(): )r�_init_pathinfor
r�assertIn)r0�dir_set�entrys   r�test_init_pathinfoz'HelperFunctionsTests.test_init_pathinfoes{���%�'�'��:�:���:�:�:�	H�	H�E��M�M�%��7<�u�u�g�g�G�
H�
H�
H�
H�	H�	Hr c�L�	|�|jtjd|jz��|�t	j|j��dtj��|�tj�
|j����dS)Nz%s not in sys.modulesr)rJ�importedr
�modulesrr:�
good_dir_pathr�assertFalserrF�bad_dir_path�r0�pth_files  r�pth_file_testsz#HelperFunctionsTests.pth_file_testsms���L��
�
�h�'���-��0A�A�	C�	C�	C��
�
�d�m�H�$:�;�;�A�>���I�I�I���������(=�>�>�?�?�?�?�?r c�T�t��}|�d���	|���tj|j|jt����|�|��|���dS#|���wxYw�NT)�prep)	�PthFile�cleanup�creater�
addpackage�base_dir�filename�setrVrTs  r�test_addpackagez$HelperFunctionsTests.test_addpackagets���
�9�9�����d��#�#�#�	��O�O�����O�H�-�x�/@�#�%�%�H�H�H�����)�)�)����������H���������s�AB�B'�.c�B��tj�|��}|dz}tj�||���t	�dd���5}|��fd���|�|��ddd��n#1swxYwY||fS)N�.pth�w�utf-8)�encodingc�,��tj���Sr)r�remove)�pth_fns�r�<lambda>z/HelperFunctionsTests.make_pth.<locals>.<lambda>�s���B�I�f�$5�$5�r )rrr<r9�open�
addCleanup�write)r0�contents�pth_dir�pth_name�pth_basenamerUrjs      @r�make_pthzHelperFunctionsTests.make_pth�s�����'�/�/�'�*�*���&�(������g�|�4�4��
�&�#��
0�
0�
0�	%�H��O�O�5�5�5�5�6�6�6��N�N�8�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%���$�$s�.B�B�Bc	��|�d��\}}t��5}tj||t	����ddd��n#1swxYwY|�|���d��|�|���tjtj
�||������|�|���d��|�|���d��|�|���d��dS)Nzimport bad-syntax
zline 1�	Tracebackzimport bad-syntax�SyntaxError�rsrrr]r`�assertRegex�getvalue�re�escaperrr9�r0rprj�err_outs    r�!test_addpackage_import_bad_syntaxz6HelperFunctionsTests.test_addpackage_import_bad_syntax�sb���-�-�(=�>�>����
�
�
�	4�'��O�G�V�S�U�U�3�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�����)�)�+�+�X�6�6�6�����)�)�+�+��I�b�g�l�l�7�F�3�3�4�4�	6�	6�	6�
	
����)�)�+�+�[�9�9�9�����)�)�+�+�-A�B�B�B�����)�)�+�+�]�;�;�;�;�;��#A�A�Ac	�f�|�d��\}}t��5}tj||t	����ddd��n#1swxYwY|�|���d��|�|���tjtj
�||������|�|���d��|�|���d��dS)Nzrandompath
import nosuchmodule
zline 2ru�ModuleNotFoundErrorrwr|s    r�test_addpackage_import_bad_execz4HelperFunctionsTests.test_addpackage_import_bad_exec�s@���-�-�(K�L�L����
�
�
�	4�'��O�G�V�S�U�U�3�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�����)�)�+�+�X�6�6�6�����)�)�+�+��I�b�g�l�l�7�F�3�3�4�4�	6�	6�	6�	
����)�)�+�+�[�9�9�9�����)�)�+�+�-B�C�C�C�C�Crc��|�d��\}}tj||t����}|�|t����dS)Nz

  

)rsrr]r`r;)r0rprj�known_pathss    r�test_addpackage_empty_linesz0HelperFunctionsTests.test_addpackage_empty_lines�sN���-�-��5�5�����o�g�v�s�u�u�=�=������c�e�e�,�,�,�,�,r c	��|�d��\}}t��5}|�tj||t������ddd��n#1swxYwYd|_|�|���d��tj
D]-}t|t��r|�
d|���.dS)Nzabcdef
�zabcdef)rsrrRrr]r`�maxDiffr;ryr
r�
isinstance�str�assertNotIn)r0rprjr}rs     r�#test_addpackage_import_bad_pth_filez8HelperFunctionsTests.test_addpackage_import_bad_pth_file�s���-�-��7�7����
�
�
�	F�'����T�_�W�f�c�e�e�D�D�E�E�E�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F����	F�	F�	F�	F��������)�)�+�+�R�0�0�0��H�	5�	5�D��$��$�$�
5�� � ��t�4�4�4��	5�	5s�6A)�)A-�0A-c�H�t��}|�d���	|���tj|jt
����|�|��|���dS#|���wxYwrX)rZr[r\rrr^r`rVrTs  r�test_addsitedirz$HelperFunctionsTests.test_addsitedir�s����9�9�����d��#�#�#�	��O�O�����O�H�-�s�u�u�5�5�5�����)�)�)����������H���������s�AB�B!c�v�|�tj��tj����dSr)r;r�_getuserbaser+r/s r�test__getuserbasez&HelperFunctionsTests.test__getuserbase�s0������*�,�,�i�.D�.F�.F�G�G�G�G�Gr zneed user sitec�4�tjdkrtjrd}ntjdz}|�tj�tj	tj
������tjd|����dS)N�darwin�osx_framework_user�_user�purelib)
r
�platform�
_frameworkr�namer;r�normpathr�	_get_pathr�r+�get_path)r0�schemes  r�
test_get_pathz"HelperFunctionsTests.test_get_path�s����<�8�#�#���#�)�F�F��W�w�&�F������)�)�$�.��9J�9L�9L�*M�*M�N�N�"�+�I�v�>�>�	@�	@�	@�	@�	@r z<requires access to PEP 370 user-site (site.ENABLE_USER_SITE)c�N�tj�tj��}|�|tj��tj���}tj
tjdd|zg|���}|�|d��tj���}tj
tjddd|zg|���}|tj
��dkr|�|d��n|�|dd��tj���}d|d	<tj
tjdd|zg|���}|tj
��dkr|�|d��n|�|dd
��tj���}d|d<tj
tjdd
g|���}|�|dd��dS)N�-cz$import sys; sys.exit(%r in sys.path)��envrEz-srz%User site still added to path with -s�1�PYTHONNOUSERSITEz3User site still added to path with PYTHONNOUSERSITEz/tmp�PYTHONUSERBASEz=import sys, site; sys.exit(site.USER_BASE.startswith("/tmp"))z#User base not set by PYTHONUSERBASE)rrr�rrrJr
�environr�
subprocess�call�
executabler;�getsitepackages)r0�usersiter��rcs    r�
test_s_optionz"HelperFunctionsTests.test_s_option�s!��
�7�#�#�D�N�3�3���
�
�h���)�)�)��j�o�o����
�_�c�n�d�2�X�=�?������	
����Q�����j�o�o����
�_�c�n�d�D�2�X�=�?�������t�+�-�-�a�0�0�0����R��#�#�#�#����R��$K�L�L�L��j�o�o����"%����
�_�c�n�d�2�X�=�?�������t�+�-�-�a�0�0�0����R��#�#�#�#����R��M�
O�
O�
O��j�o�o���� &����
�_�c�n�d�K�M������	
����Q�=�	?�	?�	?�	?�	?r c��dt_tj��}|�tj|��dt_ddl}d|_t
��5}d|d<|�tj���d��tj����ddd��dS#1swxYwYdS)Nr�xoxor�)	rr&�getuserbaser;r+r,r�
assertTrue�
startswith)r0�	user_baser+r�s    r�test_getuserbasez%HelperFunctionsTests.test_getuserbase�s������$�&�&�	�	
������3�3�3��������!%�	��
 �
"�
"�	0�g�(.�G�$�%��O�O�D�,�.�.�9�9�&�A�A� �,�.�.�
0�
0�
0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�	0�	0s�%AC�C�
Cc�d�dt_dt_tj��}|�tj|��|�|�tj��|��|�tjtj����dSr)rrr&�getusersitepackagesr;r�r�r�)r0�	user_sites  r�test_getusersitepackagesz-HelperFunctionsTests.test_getusersitepackagess����������,�.�.�	�	
������3�3�3����	�,�,�T�^�<�<�i�H�H�H�������)9�);�);�<�<�<�<�<r c���dgt_tj��}tjdk�r	t
jdkr�|�t|��d��tj	�
dt
jdt
jdd�zd��}|�|d|��n#|�t|��d��tj	�
dddt
jdd�zd��}|�|d	|��dS|�t|��d��|�|dd��tj	�
ddd��}|�tj	�|d��tj	�|����dS)
Nr��/�lib�zpython%d.%dz
site-packagesrrE���)
rr)r�r�sepr
�
platlibdirr;�lenrr9�version_infor=)r0�dirs�wanteds   r�test_getsitepackagesz)HelperFunctionsTests.test_getsitepackagess������
��#�%�%��
�6�S�=�=��~��&�&�� � ��T���A�.�.�.�����f�c�n�&3�c�6F�r��r�6J�&J�&5�7�7��� � ��a��&�1�1�1�1�� � ��T���A�.�.�.��W�\�\�&�%�"/�#�2B�2�A�2�2F�"F�"1�3�3�F�
���T�"�X�v�.�.�.�.�.�
���S��Y�Y��*�*�*����T�!�W�f�-�-�-��W�\�\�&�%��A�A�F����R�W�-�-�d�1�g�6�6��W�-�-�f�5�5�
7�
7�
7�
7�
7r c���dt_dt_t��5}t	jdd���5|d=|d=tj��}|�|�dtj
z��|��tj��}|�|�|��|��ddd��n#1swxYwYddd��n#1swxYwYt	jdd���5}tj�td	��5}tjtd
d��5t��}tj|��|�|��|���|�|��ddd��n#1swxYwYddd��n#1swxYwYddd��dS#1swxYwYdS)Nzos.path.expanduserc��|Srr)rs rrkz=HelperFunctionsTests.test_no_home_directory.<locals>.<lambda>=s��4�r r��APPDATA�~z
os.path.isdirF)�return_valuerrT)rrr&rr
�patchr�r�r�rr�r��objectr�	swap_attrr`�addusersitepackages�assert_called_once_with�assert_not_calledrR)r0r�r�r��
mock_isdir�mock_addsitedirr�s       r�test_no_home_directoryz+HelperFunctionsTests.test_no_home_directory4s#��
������
 �
"�
"�	H�g�
�Z�,�.?�.?�
@�
@�	H�	H��(�)��	�"��(�*�*�I��O�O�I�0�0��r�v��>�>�%�
'�
'�
'��0�2�2�I��O�O�I�0�0��;�;�Y�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��Z��e�
<�
<�
<�	*�
�
�Z�
�
�t�\�
2�
2�	*�6E�
�
�t�%7��
>�
>�	*�	*��%�%�K��$�[�1�1�1��.�.�y�9�9�9��-�-�/�/�/����[�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	*�	*s��C-�BC�
C-�C	�C-�C	�C-�-C1�4C1�&G,�4G�A!F=�1G�=G�G�G�G�G,�G	�G,�G	�G,�,G0�3G0c��d}d|dzfdfD]�\}}tjdtj|�����5tjdtj����5tj|��|�tj	�
��|��ddd��n#1swxYwYddd��n#1swxYwY��dS)Nzbla-bla-blaT�
)Fr�z	sys.flags)�verbosez
sys.stderr)r
r��Mock�io�StringIOr�_tracer;r
�stderrry)r0�messager��outs    r�
test_tracezHelperFunctionsTests.test_traceVsH����!�7�T�>�2�K�?�	=�	=�L�G�S���K���7�)C�)C�)C�D�D�
=�
=��J�|�R�[�]�]�;�;�
=�
=���G�$�$�$�� � ���!4�!4�!6�!6��<�<�<�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=����
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=����
=�
=�
=�
=��	=�	=s6�'C
� AB3�'C
�3B7�7C
�:B7�;C
�
C	�C	N)�__name__�
__module__�__qualname__r1r5rBrMrVrarrsr~r�r�r�r�r�r�
skipUnless�
HAS_USER_SITEr�rrr�requires_subprocessr�r�r�r�r�r�rr rr#r#?s�������5�5�5�
9�
9�
9�B�B�B�H�H�H�@�@�@�
�
�
�*-�v�%�%�%�%�
<�
<�
<�
D�
D�
D�-�-�-�	5�	5�	5����H�H�H��X���(8�9�9�@�@�:�9�@��X���.�1>�?�?� �W� �"�"�%?�%?�#�"�?�?�%?�N�X���(8�9�9�0�0�:�9�0�"�X���(8�9�9�=�=�:�9�=�7�7�7�2�X���(8�9�9�*�*�:�9�*�B=�=�=�=�=r r#c�.�eZdZ	edddfd�Zd�Zd	d�ZdS)
rZ�time�__testdir__�__badc��	|dz|_tj�d��|_tj�|j|j��|_||_||_||_	tj�|j|j��|_
tj�|j|j	��|_dS)Nrdr�)r_rrr<r^r9�	file_pathrO�good_dirname�bad_dirnamerQrS)r0�
filename_baserOr�r�s     r�__init__zPthFile.__init__bs���+�%��.��
������+�+��
�����d�m�T�]�C�C��� ��
�(���&����W�\�\�$�-��9J�K�K����G�L�L����8H�I�I����r c��	t|jd��}	td|���td|���td|jz|���t|j|���t|j|���|���n#|���wxYwtj|j	��dS)Nrez#import @bad module name��filer�z	import %s)
rlr��printrOr�r��closer�mkdirrQ)r0�FILEs  rr\zPthFile.createns���		��D�N�C�(�(��	��,�4�8�8�8�8��$�T�"�"�"�"��+��
�-�D�9�9�9�9��$�#�$�/�/�/�/��$�"��.�.�.�.��J�J�L�L�L�L��D�J�J�L�L�L�L����
���#�$�$�$�$�$s�A'B�B*Fc�D�	tj�|j��rtj|j��|rCt
j�|j��|_	|j	rt
j|j=n |j	r|j	t
j|j<tj�|j
��rtj|j
��tj�|j��rtj|j��dSdSr)
rrrFr�rir
rP�getrO�imported_modulerQ�rmdirrS)r0rYs  rr[zPthFile.cleanup�s���	%��7�>�>�$�.�)�)�	&��I�d�n�%�%�%��	B�#&�;�?�?�4�=�#A�#A�D� ��#�
/��K��
�.���#�
B�-1�-A���D�M�*�
�7�>�>�$�,�-�-�	)��H�T�'�(�(�(�
�7�>�>�$�+�,�,�	(��H�T�&�'�'�'�'�'�	(�	(r N)F)r�r�r�rr�r\r[rr rrZrZ_s\������9�%+�f�!.�G�
J�
J�
J�
J�%�%�%�,(�(�(�(�(�(r rZc�(�eZdZ	d�Zd�Zd�Zd�Zejd��d���Z	d�Z
d�Zd	�Zd
�Z
ej�d��ejjejeejd��d
��d�������ZdS)�ImportSideEffectTestsc�:�	tjdd�|_dSr)r
rr%r/s rr1zImportSideEffectTests.setUp�s��%��������
�
�
r c�4�	|jtjdd�<dSr)r%r
rr/s rr5zImportSideEffectTests.tearDown�s����m��������r c��	dtjd_tj��|�tjdj��dS)N�test)r
rP�
__cached__r�	abs_paths�assertIsNoner/s r�test_abs_paths_cached_Nonez0ImportSideEffectTests.test_abs_paths_cached_None�sJ��	�*.���F��&���������#�+�f�-�8�9�9�9�9�9r c��tj��t��}tjD]-}|�||��|�|���.dSr)r�removeduppathsr`r
rr��add)r0�
seen_pathsrs   r�test_no_duplicate_pathsz-ImportSideEffectTests.test_no_duplicate_paths�sb��	
������U�U�
��H�	!�	!�D����T�:�.�.�.��N�N�4� � � � �	!�	!r ztest not implementedc��dSrrr/s r�test_add_build_dirz(ImportSideEffectTests.test_add_build_dir�s	��
	
�r c��|�ttd����|�ttd����dS)N�quit�exit�r��hasattr�builtinsr/s r�test_setting_quitz'ImportSideEffectTests.test_setting_quit�s@�������&�1�1�2�2�2������&�1�1�2�2�2�2�2r c��|�ttd����|�ttd����|�ttd����dS)N�	copyright�credits�licenser
r/s r�test_setting_copyrightz,ImportSideEffectTests.test_setting_copyright�s\�������+�6�6�7�7�7������)�4�4�5�5�5������)�4�4�5�5�5�5�5r c�V�|�ttd����dS)N�helpr
r/s r�test_setting_helpz'ImportSideEffectTests.test_setting_help�s$�������&�1�1�2�2�2�2�2r c�|�dtjvr-	ddl}|�d��dS#t$rYdSwxYwdS)N�
sitecustomizerz(sitecustomize not imported automatically)r
rPr�fail�ImportError)r0rs  r�test_sitecustomize_executedz1ImportSideEffectTests.test_sitecustomize_executed�sh���#�+�-�-�
F�$�$�$�$��	�	�D�E�E�E�E�E���
�
�
����
����.�-s�+�
9�9�network�HTTPSHandlerz$need SSL support to download licensec�P�tj���d}tj�|d���}|�tjj��	tj	|��5tj�
|��5}|���}ddd��n#1swxYwYddd��n#1swxYwYn(#tjj
$r}|j}Yd}~nd}~wwxYw|�|dd|z���dS)NrE�HEAD)�method��zCan't find )�msg)r�_Printer__data�split�urllib�request�Requestrm�
urlcleanupr�transient_internet�urlopen�getcode�error�	HTTPError�coder;)r0�url�req�datar0�es      r�test_license_exists_at_urlz0ImportSideEffectTests.test_license_exists_at_url�s����$�*�*�,�,�Q�/���n�$�$�S��$�8�8�������1�2�2�2�	��1�#�6�6�
*�
*��^�+�+�C�0�0�*�D��<�<�>�>�D�*�*�*�*�*�*�*�*�*�*�*����*�*�*�*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*����
*�
*�
*�
*����|�%�	�	�	��6�D�D�D�D�D�D�����	��������s�
��(;��<�<�<�<�<s`�+C#�? C�C�4C�C	�C�C	�C�C#�C�C#�C�C#�#D�7D�DN)r�r�r�r1r5rrr�skipr	rrrrr�r�requires_resource�system_must_validate_certr�rr'r(r5rr rr�r��s*������2�$�$�$�$�$�$�	:�	:�	:�!�!�!��X�]�)�*�*�
�
�+�*�
�3�3�3�
6�6�6�3�3�3�F�F�F�
�\�#�#�I�.�.�	�\�+��X�������@�@�?�A�A�
=�
=�A�A�,�+�/�.�
=�
=�
=r r�c���eZdZej��d���Zej��d���Zej��d���Zej��d���ZdS)�StartupImportTestsc	��tjtjdddddgtjdd���}|���d	}|�|jd	t|����tj
|��}|D]p}tjtj
�tj|��d
����}|r(|�dt#|���d|�����qtjtjdddd
ddgtjtjdd���}|���\}}|�|jd	||f��tj
|��}|�d|��hd�}|�|�|��|��|�d||��|�d||��hd��tj��}	|�|�|	��|��dS)Nz-X�utf8�-Ir�z!import sys; print(repr(sys.path))rf�surrogateescape)�stdoutrg�errorsrz*.pthzfound z .pth files in: z-vz#import sys; print(set(sys.modules)))r?r�rgr@r>�
re._parser�re._compiler�
re._constantsrz�_sre�locale�copyreg>
�heapq�types�keyword�reprlib�weakref�operator�	functools�	itertools�collections�_collections)r��Popenr
r��PIPE�communicater;�
returncode�repr�ast�literal_eval�globrrr9r{�skipTestr�rJrR�intersectionr��
difference�builtin_module_names)
r0�popenr?�isolated_pathsr�	pth_filesr�rP�re_mods�collection_modss
          r�test_startup_importsz'StartupImportTests.test_startup_imports�sH��� �#�.�$���"&�(K�"M�(2��*1�(9�	;�;�;��
�"�"�$�$�Q�'������)�1�d�6�l�l�;�;�;��)�&�1�1��
#�	O�	O�D��	�"�'�,�,�t�{�4�/@�/@�'�"J�"J�K�K�I��
O��
�
�M�s�9�~�~�M�M�t�M�M�N�N�N��� �#�.�$���d�"&�(M�"O�(2��(2��*1�(9�;�;�;���*�*�,�,��������)�1�v�v�.>�?�?�?��"�6�*�*���
�
�f�g�&�&�&�P�O�O������-�-�g�6�6��?�?�?�	
����7�F�3�3�3�	
����G�V�4�4�4����'�J�s�'?�@�@�	�	
����-�-�o�>�>��G�G�G�G�Gr c��tjtjddg�����}|�|d��dS)Nr��9import sys; sys.exit(hasattr(sys, "__interactivehook__"))z''__interactivehook__' not added by site�r�rQr
r��waitr��r0�rs  r�test_startup_interactivehookz/StartupImportTests.test_startup_interactivehooksL����c�n�d�G�I�
J�
J�JN�$�&�&�	
�����D�E�E�E�E�Er c��tjtjdddg�����}|�|d��dS)Nr=r�rdz,'__interactivehook__' added in isolated mode)r�rQr
r�rfrRrgs  r�%test_startup_interactivehook_isolatedz8StartupImportTests.test_startup_interactivehook_isolated$sR��
��c�n�d�D�G�I�
J�
J�JN�$�&�&�	
�����J�K�K�K�K�Kr c��tjtjdddg�����}|�|d��dS)Nr=r�zYimport site, sys; site.enablerlcompleter(); sys.exit(hasattr(sys, "__interactivehook__"))z6'__interactivehook__' not added by enablerlcompleter()rergs  r�.test_startup_interactivehook_isolated_explicitzAStartupImportTests.test_startup_interactivehook_isolated_explicit+sS��
��c�n�d�D�g�i�
j�
j�jn�jn�jp�jp�	
�����S�T�T�T�T�Tr N)	r�r�r�rr�rbrirkrmrr rr:r:�s������� �W� �"�"�0H�0H�#�"�0H�d!�W� �"�"�F�F�#�"�F�
!�W� �"�"�L�L�#�"�L�!�W� �"�"�U�U�#�"�U�U�Ur r:c��eZdZejdkrdd�Zndd�Zd�Zej��d���Z	ej��d���Z
ej��d���Zej��d	���Zd
S)�
_pthFileTests�win32Tc
��ddl}tj��}|�tj|��tj�|tj�	tj��d��}|�tj
��}tj�|tj�	|��d��}tjtj|��tj||��t!jtj�tj�	|��dd����D]X}tj|tj�|tj�	|��d�����Y|r)tj�|��ddz}	n(tj�|��ddz}	t%|	d��5}
|D]}t'||
����	ddd��n#1swxYwY|S)NrrEzvcruntime*.dll�._pthrer�)�_winapi�tempfile�mkdtemprmr�rmtreerrr9r&r
r��GetModuleFileName�	dllhandle�shutilrrX�splitextrlr�)r0�lines�exe_pthrs�temp_dir�exe_file�dll_src_file�dll_file�fn�	_pth_file�f�lines            r�_create_underpth_exez"_pthFileTests._create_underpth_exe5s���N�N�N��'�)�)�H��O�O�I�,�h�7�7�7��w�|�|�H�b�g�m�m�C�N�.K�.K�A�.N�O�O�H�"�4�4�S�]�C�C�L��w�|�|�H�b�g�m�m�L�.I�.I�!�.L�M�M�H��K����1�1�1��K��h�/�/�/��i�����R�W�]�]�<�-H�-H��-K�M]� ^� ^�_�_�
N�
N����B�����X�r�w�}�}�R�7H�7H��7K� L� L�M�M�M�M��
D��G�,�,�X�6�6�q�9�G�C�	�	��G�,�,�X�6�6�q�9�G�C�	��i��%�%�
(��!�(�(�D��$�Q�'�'�'�'�'�(�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(����
(�
(�
(�
(��Os�,I�I�Ic��|stjd���tj��}|�t
j|��tj�	|tj�
tj��d��}tj
tj|��|dz}t|d��5}|D]}t||����	ddd��n#1swxYwY|S)Nz1library ._pth file not supported on this platformrErrrer�)rrrtrurmrrvrrr9r&r
r��symlinkrlr�)r0r{r|r}r~r�r�r�s        rr�z"_pthFileTests._create_underpth_exeIs���
]��'�([�\�\�\��'�)�)�H��O�O�I�,�h�7�7�7��w�|�|�H�b�g�m�m�C�N�.K�.K�A�.N�O�O�H��J�s�~�x�0�0�0� �7�*�I��i��%�%�
(��!�(�(�D��$�Q�'�'�'�'�'�(�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(����
(�
(�
(�
(��Os�C/�/C3�6C3c���g}|D]c}|r|ddkr�tj�tj�||����}|�|���d|S)Nr�#)rrr<r9�append)r0�
sys_prefixr{r%r��abs_paths      r�"_calc_sys_path_for_underpth_nositez0_pthFileTests._calc_sys_path_for_underpth_nositeVsj�����	&�	&�D��
�4��7�c�>�>���w���r�w�|�|�J��'E�'E�F�F�H��O�O�H�%�%�%�%��r c��tjj}tj�tj��}ddgtj�d�d�}|�|��}|�	tj�|��|��}tj|ddgdd�	��}|����
d
��}|�|d��|�||d��dS)
Nz#.z# ..rbz..r��Cimport sys; print("\n".join(sys.path) if sys.flags.no_site else "")rfr>)rgr@r��sys.flags.no_site was False�sys.path is incorrect)r�r�
STDLIB_DIRrr�dirnamer
r�r�r�r��check_output�rstripr&r�r;)r0�libpath�
exe_prefix�	pth_linesr~r%�output�actual_sys_paths        r�test_underpth_basicz!_pthFileTests.test_underpth_basic_s���,�)���W�_�_�S�^�4�4�
��6�8�C�H�8�c�8�4�8�	��,�,�Y�7�7���:�:��G�O�O�H�%�%������(�(�D�R�*
��$5�7�7�7��!�-�-�/�/�/�/��5�5������)F�G�G�G������#�	
�	
�	
�	
�	
r c����tjj�tj�tj��}dg�fd�td��D���d�d�}|�	|��}|�
tj�|��|��}tj���}d|d<d�
|tjtjd	����|d	<t!j|d
dg|dd
���}|����d��}|�|d��|�||d��dS)N�fake-path-namec���g|]}���Srr�rG�_r�s  �rrHz;_pthFileTests.test_underpth_nosite_file.<locals>.<listcomp>z����
*�
*�
*�!�g�
*�
*�
*r r#r��	# comment�from-env�
PYTHONPATHz{}{}{}�PATHr�r�rfr>)r�rgr@r�r�r�)r�rr�rrr�r
r��ranger�r�r�r�format�pathsep�getenvr�r�r�r&r�r;)	r0r�r�r~r%r�r�r�r�s	        @r�test_underpth_nosite_filez'_pthFileTests.test_underpth_nosite_filetsm����,�)���W�_�_�S�^�4�4�
��
�
*�
*�
*�
*�u�S�z�z�
*�
*�
*�
�
�
�
�	
�	��,�,�Y�7�7���:�:��G�O�O�H�%�%������j�o�o����&��L���o�o�j�"�*�b�i��>O�>O�P�P��F���(�(�D�R�*
��W�->�@�@�@��!�-�-�/�/�/�/��5�5������)F�G�G�G������#�	
�	
�	
�	
�	
r c
���tjj�tj�tj��}|�dg�fd�td��D���d�d�d���}tj�|��}tj
���}d|d<d	�|tj
d
����|d
<tj|ddtj�|d���d
��d
tj�|d���d�g|���}|�|d��dS)Nr�c���g|]}���Srrr�s  �rrHz4_pthFileTests.test_underpth_file.<locals>.<listcomp>�r�r r#r�r��import siter�r��{};{}r�r��/import sys; sys.exit(not sys.flags.no_site and � in sys.path and �L not in sys.path and all("\r" not in p and "\n" not in p for p in sys.path))r�r��r�rr�rrr�r
r�r�r�r�rr�r�r�r�r9r��r0r�r~r�r�r�r�s      @r�test_underpth_filez _pthFileTests.test_underpth_file�sT����,�)���W�_�_�S�^�4�4�
��,�,��.
�
*�
*�
*�
*�u�S�z�z�
*�
*�
*�.
�
�.
�
�	.
�

�.
�����W�_�_�X�.�.�
��j�o�o����&��L���n�n�Z���6�1B�1B�C�C��F��
�_�h�������Z�)9�:�:�:�:��������Z��4�4�4�4�
�������	
����3�4�4�4�4�4r c
���tjj�tj�tj��}|�dg�fd�td��D���d�d�d�d���}tj�|��}tj
���}d	|d
<d�|tj
d����|d<tj|d
dtj�|d���d��dtj�|d	���d�g|���}|�|d��dS)Nr�c���g|]}���Srrr�s  �rrHz8_pthFileTests.test_underpth_dll_file.<locals>.<listcomp>�r�r r#r�r�r�F)r|r�r�r�r�r�r�r�r�r�r�r�r�s      @r�test_underpth_dll_filez$_pthFileTests.test_underpth_dll_file�s^����,�)���W�_�_�S�^�4�4�
��,�,��.
�
*�
*�
*�
*�u�S�z�z�
*�
*�
*�.
�
�.
�
�	.
�

�.
��
-�����W�_�_�X�.�.�
��j�o�o����&��L���n�n�Z���6�1B�1B�C�C��F��
�_�h�������Z�)9�:�:�:�:��������Z��4�4�4�4�
�������	
����3�4�4�4�4�4r N)T)
r�r�r�r
r�r�r�rr�r�r�r�r�rr rroro2s�������
�|�w���	�	�	�	�	�(	�	�	�	����!�W� �"�"�
�
�#�"�
�(!�W� �"�"�
�
�#�"�
�8!�W� �"�"�5�5�#�"�5�0!�W� �"�"�5�5�#�"�5�5�5r ro�__main__).r�test.supportr�rrrr�test.support.os_helperrrr	rVr�	encodingsrXr�rrzryr�r
r+rt�urllib.errorr'�urllib.requestr
r�flags�no_siterrrr�rrr!�TestCaser#r�rZr�r:ror��mainrr r�<module>r�s������������������"�"�"�"�"�"�&�&�&�&�&�&�(�(�(�(�(�(�J�J�J�J�J�J�J�J�J�J�
�
�
�
�������������	�	�	�	�	�	�	�	�	�	�	�	�
�
�
�
�����
�
�
�
�����������������������������
�9��:�
�(�
�8�
9�
9�9�������t�+�
���=�=�=����]=�]=�]=�]=�]=�8�,�]=�]=�]=�@	5(�5(�5(�5(�5(�f�5(�5(�5(�nP=�P=�P=�P=�P=�H�-�P=�P=�P=�fGU�GU�GU�GU�GU��*�GU�GU�GU�RO5�O5�O5�O5�O5�H�%�O5�O5�O5�d�z����H�M�O�O�O�O�O��r