HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/test/__pycache__/test_site.cpython-310.pyc
o

�i2o�@s�dZddlZddlZddlmZddlmZddlmZddlmZddlm	Z	m
Z
mZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZdd	lmZejjrye�d
��ddl Z e j!duZ"da#dd�Z$d
d�Z%Gdd�dej&�Z'Gdd�de(�Z)Gdd�dej&�Z*Gdd�dej&�Z+e�,ej-dkd�Gdd�dej&��Z.e/dkr�e�0�dSdS)zTests for 'site'.

Tests assume the initial paths in sys.path once the interpreter has begun
executing have not been removed.

�N)�support)�	os_helper)�
socket_helper)�captured_stderr)�TESTFN�EnvironmentVarGuard�
change_cwd)�mock)�copyzPython was invoked with -Sc
Csvtjdd�atjr7tj�tj�s9zt�tj�t�	tj�WdSt
y6}z
t�dtj|f��d}~wwdSdS)Nz-unable to create user site directory (%r): %s)
�sys�path�OLD_SYS_PATH�site�ENABLE_USER_SITE�os�isdir�	USER_SITE�makedirs�
addsitedir�PermissionError�unittest�SkipTest)�exc�r�+/usr/local/lib/python3.10/test/test_site.py�setUpModule,s����rcCsttjdd�<dS�N)r
rrrrrr�tearDownModule;src@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	de
fdd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Ze�eed�d�dd ��Ze�ejd!kd"�d#d$��Zd%d&�Ze�ed'�d(d)��Ze�ejd*�d+d,��Ze�ed'�d-d.��Z e�ed'�d/d0��Z!d1d2�Z"e�ed'�d3d4��Z#d5d6�Z$d7S)8�HelperFunctionsTestsz Tests for helper functions.
    cCs@tjdd�|_tj|_tj|_tj|_	t
j|_t
t
j�|_dS)zSave a copy of sys.pathN)rr�sys_pathr�	USER_BASE�old_baser�old_site�PREFIXES�old_prefixes�	sysconfig�_CONFIG_VARS�
original_varsr
�old_vars��selfrrr�setUpCszHelperFunctionsTests.setUpcCsZ|jtjdd�<|jt_|jt_|jt_	|j
t_tjdur+tj�
�tj�|j�dSdS�zRestore sys.pathN)rrrr!rr r"rr$r#r'r%r&�clear�updater(r)rrr�tearDownLs

�zHelperFunctionsTests.tearDowncCsjd}tjj|�}tj|�\}}|�tj�|�|�|tj�|�kr)|�||�dS|�tj�|�|�dS)N)Z	BeginningZEnd)rr�joinr�makepath�assertEqual�abspath�normcase)r*�
path_partsZoriginal_dirZabs_dirZnorm_dirrrr�
test_makepathXsz"HelperFunctionsTests.test_makepathcCs8t��}dd�tjD�D]
}|�||d||f�qdS)NcSs*g|]}|rtj�|�rt�|�d�qS)�)rr�existsrr1)�.0rrrr�
<listcomp>gs
�
�z;HelperFunctionsTests.test_init_pathinfo.<locals>.<listcomp>zB%s from sys.path not found in set returned by _init_pathinfo(): %s)r�_init_pathinforr�assertIn)r*Zdir_set�entryrrr�test_init_pathinfoes���z'HelperFunctionsTests.test_init_pathinfocCsJ|�|jtjd|j�|�t�|j�dtj�|�t	j�
|j��dS)z>Contain common code for testing results of reading a .pth filez%s not in sys.modulesrN)r<�importedr�modulesrr1�
good_dir_pathr�assertFalserr8�bad_dir_path�r*�pth_filerrr�pth_file_testsms
�z#HelperFunctionsTests.pth_file_testscCsRt�}|jdd�z|��t�|j|jt��|�|�W|��dS|��w�NT��prep)	�PthFile�cleanup�creater�
addpackage�base_dir�filename�setrFrDrrr�test_addpackagetsz$HelperFunctionsTests.test_addpackage�.csztj�|�}|d}tj�||��t�ddd��}|��fdd��|�|�Wd�||fS1s4wY||fS)N�.pth�w�utf-8)�encodingcs
t���Sr)r�remover��pth_fnrr�<lambda>�s
z/HelperFunctionsTests.make_pth.<locals>.<lambda>)rrr3r0�open�
addCleanup�write)r*�contents�pth_dirZpth_nameZpth_basenamerErrXr�make_pth�s
��zHelperFunctionsTests.make_pthc	Cs�|�d�\}}t��}t�||t��Wd�n1swY|�|��d�|�|��t�t	j
�||���|�|��d�|�|��d�|�|��d�dS)Nzimport bad-syntax
zline 1�	Tracebackzimport bad-syntax�SyntaxError�r`rrrMrPZassertRegex�getvalue�re�escaperrr0�r*r_rY�err_outrrr�!test_addpackage_import_bad_syntax�s�
�z6HelperFunctionsTests.test_addpackage_import_bad_syntaxc	Cs�|�d�\}}t��}t�||t��Wd�n1swY|�|��d�|�|��t�t	j
�||���|�|��d�|�|��d�dS)Nzrandompath
import nosuchmodule
zline 2ra�ModuleNotFoundErrorrcrgrrr�test_addpackage_import_bad_exec�s�
�z4HelperFunctionsTests.test_addpackage_import_bad_execcCs0|�d�\}}t�||t��}|�|t��dS)Nz

  

)r`rrMrPr2)r*r_rY�known_pathsrrr�test_addpackage_empty_lines�sz0HelperFunctionsTests.test_addpackage_empty_linescCs�|�d�\}}t��}|�t�||t���Wd�n1s wYd|_|�|��d�t	j
D]
}t|t�r@|�
d|�q3dS)Nzabcdef
�zabcdef)r`rrBrrMrPZmaxDiffr2rdrr�
isinstance�str�assertNotIn)r*r_rYrhrrrr�#test_addpackage_import_bad_pth_file�s�

��z8HelperFunctionsTests.test_addpackage_import_bad_pth_filecCsNt�}|jdd�z|��t�|jt��|�|�W|��dS|��wrG)rJrKrLrrrNrPrFrDrrr�test_addsitedir�sz$HelperFunctionsTests.test_addsitedircCsptd�}|jdd�z(|��t�|jt��|�t�|j	�dt
j�|�|jt
j�W|��dS|��w)Nz.dotfileTrHr)
rJrKrLrrrNrPrqr1rArrr<rDrrr�test_addsitedir_dotfile�sz,HelperFunctionsTests.test_addsitedir_dotfile�chflagsztest needs os.chflags()cCs�t�}|jdd�z9|��t�|j�}t�|j|jtjB�t	�
|jt��|�
t	�|j�dtj�|�|jtj�W|��dS|��w)NTrHr)rJrKrLr�stat�	file_pathru�st_flags�	UF_HIDDENrrrNrPrqr1rArrr<)r*rE�strrr�test_addsitedir_hidden_flags�sz1HelperFunctionsTests.test_addsitedir_hidden_flags�win32ztest needs WindowscCs�t�}|jdd�z1|��t�dd|jg�t�|jt	��|�
t�|j�dt
j�|�|jt
j�W|��dS|��w)NTrHZattribz+Hr)rJrKrL�
subprocess�
check_callrwrrrNrPrqr1rArrr<rDrrr�%test_addsitedir_hidden_file_attribute�sz:HelperFunctionsTests.test_addsitedir_hidden_file_attributecCs|�t��t���dSr)r2r�_getuserbaser%r)rrr�test__getuserbase�sz&HelperFunctionsTests.test__getuserbasezneed user sitecCsJtjdkrtjrd}ntjd}|�tj�t�	t�
���t�d|��dS)N�darwinZosx_framework_user�_userZpurelib)
r�platform�
_frameworkr�namer2r�normpathr�	_get_pathr�r%Zget_path)r*�schemerrr�
test_get_path�s

�z"HelperFunctionsTests.test_get_pathz<requires access to PEP 370 user-site (site.ENABLE_USER_SITE)cCs0tj�tj�}|�|tj�tj��}t	j
tjdd|g|d�}|�|d�tj��}t	j
tjddd|g|d�}|t�
�dkrH|�|d�n|�|dd�tj��}d|d	<t	j
tjdd|g|d�}|t�
�dkrt|�|d�n|�|dd
�tj��}d|d<t	j
tjdd
g|d�}|�|dd�dS)N�-cz$import sys; sys.exit(%r in sys.path)��envr7z-srz%User site still added to path with -s�1ZPYTHONNOUSERSITEz3User 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)rrr�rrr<r�environr
r}�call�
executabler2�getsitepackages)r*Zusersiter��rcrrr�
test_s_option�sP

��
��

���

���z"HelperFunctionsTests.test_s_optioncCs~dt_t��}|�tj|�dt_ddl}d|_t��}d|d<|�t���d�t���Wd�dS1s8wYdS)Nr�xoxor�)	rr �getuserbaser2r%r&r�
assertTrue�
startswith)r*�	user_baser%r�rrr�test_getuserbase#s�"�z%HelperFunctionsTests.test_getuserbasecCsLdt_dt_t��}|�tj|�|�|�tj�|�|�tjt���dSr)rrr �getusersitepackagesr2r�r�r�)r*�	user_siterrr�test_getusersitepackages5sz-HelperFunctionsTests.test_getusersitepackagescCs�dgt_t��}tjdkrVtjdkr4|�t|�d�tj	�
dtjdtjdd�d�}|�|d|�n|�t|�d�tj	�
dddtjdd�d�}|�|d	|�dS|�t|�d�|�|dd�tj	�
ddd�}|�|d|�dS)
Nr��/�lib�zpython%d.%dz
site-packagesrr7���)rr#r�r�sepr�
platlibdirr2�lenrr0�version_info)r*�dirsZwantedrrr�test_getsitepackages@s(

�
�z)HelperFunctionsTests.test_getsitepackagesc
Cstdt_dt_t��C}t�ddd���+|d=|d=t��}|�|�dt	j
�|�t��}|�|�|�|�Wd�n1s@wYWd�n1sOwYtjddd	��U}tj�td
��5}t
�tdd��t�}t�|�|�|�|��|�|�Wd�n1s�wYWd�n1s�wYWd�dSWd�dS1s�wYdS)
Nzos.path.expandusercSs|Srr)rrrrrZasz=HelperFunctionsTests.test_no_home_directory.<locals>.<lambda>r��APPDATA�~z
os.path.isdirF)Zreturn_valuerrT)rrr rr	�patchr�r�r�rr�r��objectrZ	swap_attrrP�addusersitepackagesZassert_called_once_withZassert_not_calledrB)r*r�r�r�Z
mock_isdirZmock_addsitedirrlrrr�test_no_home_directoryXs<����
��

��Pz+HelperFunctionsTests.test_no_home_directoryc
Cs�d}d|dfdfD]D\}}t�dtj|d���.t�dt����t�|�|�tj	�
�|�Wd�n1s:wYWd�n1sIwYq
dS)Nzbla-bla-blaT�
)Frnz	sys.flags)�verbosez
sys.stderr)r	r�ZMock�io�StringIOr�_tracer2r�stderrrd)r*�messager��outrrr�
test_tracezs�
����zHelperFunctionsTests.test_traceN)%�__name__�
__module__�__qualname__�__doc__r+r/r6r>rFrQrr`rirkrmrrrsrtr�
skipUnless�hasattrrr{rr�rr��
HAS_USER_SITEr�rrr�r�r�r�r�r�rrrrr?s@	








'





!rc@s4eZdZdZedddfdd�Zdd�Zd
d
d�ZdS)rJz/Helper class for handling testing of .pth files�timeZ__testdir__Z__badcCsj|d|_tj�d�|_tj�|j|j�|_||_||_||_	tj�|j|j�|_
tj�|j|j	�|_dS)zInitialize instance variablesrSrnN)rOrrr3rNr0rwr?�good_dirname�bad_dirnamerArC)r*�
filename_baser?r�r�rrr�__init__�s
zPthFile.__init__cCszt|jd�}z)td|d�td|d�td|j|d�t|j|d�t|j|d�W|��n|��wt�|j	�dS)aoCreate a .pth file with a comment, blank lines, an ``import
        <self.imported>``, a line with self.good_dirname, and a line with
        self.bad_dirname.

        Creation of the directory for self.good_dir_path (based off of
        self.good_dirname) is also performed.

        Make sure to call self.cleanup() to undo anything done by this method.

        rTz#import @bad module name��filer�z	import %sN)
r[rw�printr?r�r��closer�mkdirrA)r*�FILErrrrL�szPthFile.createFcCs�tj�|j�r
t�|j�|r tj�|j�|_	|j	rtj|j=n
|j	r*|j	tj|j<tj�|j
�r7t�|j
�tj�|j�rFt�|j�dSdS)z�Make sure that the .pth file is deleted, self.imported is not in
        sys.modules, and that both self.good_dirname and self.bad_dirname are
        not existing directories.N)
rrr8rwrWrr@�getr?Zimported_modulerA�rmdirrC)r*rIrrrrK�s
��zPthFile.cleanupN)F)r�r�r�r�rr�rLrKrrrrrJ�s
�rJc@s�eZdZdZdd�Zdd�Zdd�Zdd	�Ze�	d
�dd��Z
d
d�Zdd�Zdd�Z
dd�Zdd�Zej�d�ejje�eejd�d�dd����ZdS)�ImportSideEffectTestsz(Test side-effects from importing 'site'.cCstjdd�|_dS)zMake a copy of sys.pathN)rrrr)rrrr+��zImportSideEffectTests.setUpcCs|jtjdd�<dSr,)rrrr)rrrr/�r�zImportSideEffectTests.tearDowncCs*dtjd_t��|�tjdj�dS)z�Test for __cached__ is None.

        Regarding to PEP 3147, __cached__ can be None.

        See also: https://bugs.python.org/issue30167
        N�test)rr@�
__cached__r�	abs_pathsZassertIsNoner)rrr�test_abs_paths_cached_None�sz0ImportSideEffectTests.test_abs_paths_cached_NonecCs4t��t�}tjD]
}|�||�|�|�q
dSr)r�removeduppathsrPrrrq�add)r*Z
seen_pathsrrrr�test_no_duplicate_paths�s
�z-ImportSideEffectTests.test_no_duplicate_pathsztest not implementedcCsdSrrr)rrr�test_add_build_dir�sz(ImportSideEffectTests.test_add_build_dircCs$|�ttd��|�ttd��dS)N�quit�exit�r�r��builtinsr)rrr�test_setting_quit�sz'ImportSideEffectTests.test_setting_quitcCs4|�ttd��|�ttd��|�ttd��dS)N�	copyright�credits�licenser�r)rrr�test_setting_copyright�sz,ImportSideEffectTests.test_setting_copyrightcCs|�ttd��dS)N�helpr�r)rrr�test_setting_help�r�z'ImportSideEffectTests.test_setting_helpcCsZtjdkr)ddl}|��d�d�r+tjj��D]	}|dkr!dSq|�d�dSdSdS)Nr|rr7Zcp�mbcszdid not alias mbcs)	rr��locale�getdefaultlocaler��	encodings�aliases�values�fail)r*r��valuerrr�test_aliasing_mbcs�s
��z(ImportSideEffectTests.test_aliasing_mbcscCs>dtjvrzddl}Wn
tyYdSw|�d�dSdS)N�
sitecustomizerz(sitecustomize not imported automatically)rr@r��ImportErrorr�)r*r�rrr�test_sitecustomize_executed�s
��z1ImportSideEffectTests.test_sitecustomize_executedZnetworkZHTTPSHandlerz$need SSL support to download licensec
Cs�tj��d}tjj|dd�}|�tjj�z1t�	|��"tj�
|��}|��}Wd�n1s2wYWd�n1sAwYWntjj
y^}z	|j}WYd}~nd}~ww|j|dd|d�dS)Nr7ZHEAD)�method��zCan't find )�msg)r��_Printer__data�split�urllib�requestZRequestr\�
urlcleanuprZtransient_internet�urlopenZgetcode�error�	HTTPError�coder2)r*�urlZreq�datar��errr�test_license_exists_at_urls 
������z0ImportSideEffectTests.test_license_exists_at_urlN)r�r�r�r�r+r/r�r�r�skipr�r�r�r�r�r�r�rZrequires_resourceZsystem_must_validate_certr�r�r�r�r�rrrrr��s&	



�r�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�StartupImportTestsc
Cs8tjtjdddgtjdd�}|��d}|�|jdt|��t	|�}|D]}t
�
tj�
t
�|�d��}|rB|�dt|��d	|���q$tjtjdd
ddgtjtjdd�}|��\}}|�|jd||f�t	|�}|�d
|�hd�}|�|�|�|�|�d||�|�d||�hd��tj�}	|�|�|	�|�dS)N�-Ir�z!import sys; print(repr(sys.path))rU)�stdoutrVrz*.pthzfound z .pth files in: z-vz#import sys; print(set(sys.modules)))rr�rVr>re�_sre�
sre_constants�	sre_parse�sre_compiler��copyreg>
�reprlib�	functools�_collections�operator�heapq�	itertools�weakref�types�keyword�collections)r}�Popenrr��PIPE�communicater2�
returncode�repr�eval�globrrr0rfZskipTestr�r<rB�intersectionrq�
difference�builtin_module_names)
r*�popenrZisolated_pathsrZ	pth_filesr�r@Zre_modsZcollection_modsrrr�test_startup_importssB������z'StartupImportTests.test_startup_importscCs&t�tjddg���}|�|d�dS)Nr��9import sys; sys.exit(hasattr(sys, "__interactivehook__"))z''__interactivehook__' not added by site�r}rrr��waitr��r*�rrrr�test_startup_interactivehookIs
��z/StartupImportTests.test_startup_interactivehookcC�(t�tjdddg���}|�|d�dS)Nr�r�rz,'__interactivehook__' added in isolated mode)r}rrr�rrBrrrr�%test_startup_interactivehook_isolatedN���z8StartupImportTests.test_startup_interactivehook_isolatedcCr")Nr�r�zYimport site, sys; site.enablerlcompleter(); sys.exit(hasattr(sys, "__interactivehook__"))z6'__interactivehook__' not added by enablerlcompleter()rrrrr�.test_startup_interactivehook_isolated_explicitTr$zAStartupImportTests.test_startup_interactivehook_isolated_explicitN)r�r�r�rr!r#r%rrrrr�s
0r�r|zonly supported on Windowsc@s6eZdZd
dd�Zdd�Zdd�Zdd	�Zd
d�ZdS)�
_pthFileTestsTc
Cs6ddl}t��}|�tj|�tj�|tj�	t
j�d�}|�t
j
�}tj�|tj�	|�d�}t�t
j|�t�||�t�tj�tj�	|�dd��D]}t�|tj�|tj�	|�d��qM|rntj�|�dd}	n
tj�|�dd}	t|	d��}
|D]}t||
d�q�Wd�|S1s�wY|S)Nrr7zvcruntime*.dllz._pthrTr�)�_winapi�tempfile�mkdtempr\r�rmtreerrr0r�rr�ZGetModuleFileNameZ	dllhandle�shutilr
r�splitextr[r�)r*�lines�exe_pthr'Ztemp_dir�exe_fileZdll_src_fileZdll_file�fnZ	_pth_file�f�linerrr�_create_underpth_exe]s*$$�
��z"_pthFileTests._create_underpth_execCsDg}|D]}|r|ddkrqtj�tj�||��}|�|�q|S)Nr�#)rrr3r0�append)r*�
sys_prefixr-rr2Zabs_pathrrr�"_calc_sys_path_for_underpth_nositeqsz0_pthFileTests._calc_sys_path_for_underpth_nositecs�tj�tj�tj���tj�tj�}dg�fdd�td�D��d�d�}|�|�}|�	tj�|�|�}tj
��}d|d<d	�|t�
d
��|d
<tj|ddg|d
d�}|���d�}|�|d�|�||d�dS)N�fake-path-namec�g|]}��qSrr�r9�_�Zlibpathrrr:�z;_pthFileTests.test_underpth_nosite_file.<locals>.<listcomp>r�rn�	# comment�from-env�
PYTHONPATH�{};{}�PATHr�zCimport sys; print("\n".join(sys.path) if sys.flags.no_site else "")�ansi)r�rVr�zsys.flags.no_site was False�sys.path is incorrect)rr�dirnamer��__file__rr��ranger3r7r�r
�format�getenvr}�check_output�rstripr�r�r2)r*�
exe_prefixZ	pth_linesr/rr��outputZactual_sys_pathrr<r�test_underpth_nosite_filezs<����

�
���z'_pthFileTests.test_underpth_nosite_filec
s�tj�tj�tj���tj�tj�}|�dg�fdd�td�D��d�d�d��}tj�|�}tj	�
�}d|d	<d
�|t�d��|d<t
j|dd
tj�|d��tj�|d�fg|d�}|�|d�dS)Nr8cr9rrr:r<rrr:�r=z4_pthFileTests.test_underpth_file.<locals>.<listcomp>r�rnr>�import siter?r@rArBr���import sys; sys.exit(not sys.flags.no_site and %r in sys.path and %r in sys.path and %r not in sys.path and all("\r" not in p and "\n" not in p for p in sys.path))r�rD�rrrEr�rFrr�r3rGr�r
rHrIr}r�r0r��r*rLr/r6r�r�rr<r�test_underpth_file�s8�����
����z _pthFileTests.test_underpth_filec
s�tj�tj�tj���tj�tj�}|jdg�fdd�td�D��d�d�d�dd	�}tj�|�}tj	�
�}d
|d<d�|t�d
��|d
<t
j|ddtj�|d��tj�|d
�fg|d�}|�|d�dS)Nr8cr9rrr:r<rrr:�r=z8_pthFileTests.test_underpth_dll_file.<locals>.<listcomp>r�rnr>rOF)r.r?r@rArBr�rPr�rDrQrRrr<r�test_underpth_dll_file�s<������
����z$_pthFileTests.test_underpth_dll_fileN)T)r�r�r�r3r7rNrSrTrrrrr&Zs
	r&�__main__)1r�rZtest.supportr�rrrrZtest.support.os_helperrrrr�r�rr�rrer+rvr}rr%r(Zurllib.errorr�Zurllib.requestr	r
�flags�no_siterrrr�r
rrZTestCaserr�rJr�r�r�r�r&r��mainrrrr�<module>sT

F7]Cm�