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.7/test/__pycache__/test_runpy.cpython-37.opt-2.pyc
B

��g0|�@s^ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZm
Z
mZmZmZmZmZddlmZmZmZmZddlZddlmZmZmZmZdZddddddd�Zeeddgejdd	d	e ed
ddd�d
�Z!e!�"e�Gdd�d�Z#Gdd�dej$e#�Z%Gdd�dej$e#�Z&Gdd�dej$e#�Z'e(dk�rZe�)�dS)�N)�forget�make_legacy_pyc�unload�verbose�
no_tracing�create_empty_file�temp_dir)�make_pkg�make_script�make_zip_pkg�make_zip_script)�	_run_code�_run_module_code�
run_module�run_patha�# Check basic code execution
result = ['Top level assignment']
def f():
    result.append('Lower level reference')
f()
del f
# Check the sys module
import sys
run_argv0 = sys.argv[0]
run_name_in_sys_modules = __name__ in sys.modules
module_in_sys_modules = (run_name_in_sys_modules and
                         globals() is sys.modules[__name__].__dict__)
# Check nested operation
import runpy
nested = runpy._run_module_code('x=1\n', mod_name='<run>')
)�__name__�__file__�
__cached__�__package__�__doc__�__spec__zTop level assignmentzLower level referenceF�z<run>)�xr�
__loader__)�sys�runpy�result�	run_argv0�run_name_in_sys_modules�module_in_sys_modules�nestedc@s,eZdZddddddgZdd�Zd	d
�ZdS)�CodeExecutionMixin�name�parent�origin�cached�has_location�submodule_search_locationsc	Cs8|��}|��}xPt|�D]D}|�d�r|�d�r||krD|�|�||dkr|d�|�qW|�d�}|�d�}|dkr�|�|�nb|jdk	r�|�t|j�t|j��x>|j	D]4}d|}|t
||�f}|t
||�f}|�||�q�W|�t|�t|��x2|D]*}|||f}|||f}|�||��qWdS)N�__r rz	__spec__.)�copy�list�
startswith�endswith�popZassertIsNone�loader�assertEqual�type�CHECKED_SPEC_ATTRIBUTES�getattr�set)	�self�	result_ns�expected_ns�kZresult_specZ
expected_spec�attr�actualZexpected�r:�+/usr/local/lib/python3.7/test/test_runpy.py�assertNamespaceMatchesMs2




z)CodeExecutionMixin.assertNamespaceMatchesc
Cs�t�}|��}|d}tjd}tj�||�}|d�}|�||�|�tjd|�|�tj�||�|�d|i}	||d<||	�}|�||	�|�||�|�tjd|�|�tj�||�|�dS)Nrr�sentinel)	�objectr)r�argv�modules�getr<ZassertIsZassertIsNot)
r4Zcreate_namespaceZexpected_namespacer=r6�run_nameZsaved_argv0Z	saved_modr5Z
initial_nsr:r:r;�check_code_executionus 
z'CodeExecutionMixin.check_code_executionN)r�
__module__�__qualname__r1r<rCr:r:r:r;r!As	(r!c@seZdZdd�Zdd�ZdS)�ExecutionLayerTestCasecCs.t��}|�ddi�dd�}|�||�dS)NrcSstti|�S)N)r
�example_source)�init_globalsr:r:r;�	create_ns�sz7ExecutionLayerTestCase.test_run_code.<locals>.create_ns)�example_namespacer)�updaterC)r4r6rIr:r:r;�
test_run_code�s

z$ExecutionLayerTestCase.test_run_codecsdd�d}d}d}tjj�||d��t��}|��|||�|ddd����fdd	�}|�||�dS)
Nz
<Nonsense>zSome other nonsensezNow you're just being silly�)r$r.T)rrrrrrrrcstt|���S)N)rrG)rH)�mod_name�mod_specr:r;rI�sz>ExecutionLayerTestCase.test_run_module_code.<locals>.create_ns)�	importlib�	machinery�
ModuleSpecrJr)rKrC)r4�	mod_fnameZ
mod_loaderZmod_packager6rIr:)rNrOr;�test_run_module_code�s&
z+ExecutionLayerTestCase.test_run_module_codeN)rrDrErLrTr:r:r:r;rF�s	rFc@s�eZdZdd�Zdd�Zdd�Zd9dd	�Zd:ddd�dd
�Zdd�Zdd�Z	d;ddd�dd�Z
d<ddd�dd�Zdd�Zd=dd�Z
dd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�ZdS)>�RunModuleTestCasecCs4yt|�Wntk
r YnX|�d|�dS)NzExpected import error for )r�ImportError�fail)r4rNr:r:r;�expect_import_error�s
z%RunModuleTestCase.expect_import_errorcCs^|�d�|�d�|�d�|�d�|�d�|�d�|�d�|�d�|�d	�dS)
Nrzsys.imp.ericzos.path.halfza.beez.howardz..eatenz.test_runpyz	.unittestZmultiprocessing)rX)r4r:r:r;�test_invalid_names�s







z$RunModuleTestCase.test_invalid_namescCs|�td�dd�dS)Nrr)r/r)r4r:r:r;�test_library_module�sz%RunModuleTestCase.test_library_moduleFcCs,t�|�|rdStj�|d�}t|�|S)Nz__init__.py)�os�mkdir�path�joinr)r4�pkg_dir�	namespace�	pkg_fnamer:r:r;�_add_pkg_dir�s
zRunModuleTestCase._add_pkg_dir�
runpy_test)r`�parent_namespacescCs<|s|r|std��d}|tjd}tj�t���}}	tdkrLtd|	�t	j�
d|�tdkrrtdt	jd�|r�|g|}
||
d<xJ|
D]B}tj�|	|�}	|�|	|�}tdkr�td	|	�tdkr�td
|�q�Wtj�|	|�}
t
|
d�}|�|�|��tdk�rtd
|
�|d||}tj�||
�}||
||fS)
Nz2Can't mark top level module as a namespace package�
__runpy_pkg__�pyrz  Package tree in:rz  Updated sys.path:���z  Next level in:z
  Created:�w�.)�RuntimeErrorr[�extsepr]�realpath�tempfileZmkdtempr�printr�insertr^rb�open�write�closerP�util�spec_from_file_location)r4�source�depthZmod_baser`rd�pkg_nameZ
test_fnamer_Zsub_dirZnamespace_flagsZnamespace_flagrarS�mod_filerNrOr:r:r;�	_make_pkg�s<







zRunModuleTestCase._make_pkgc	Cs�x$ttj�D]}|�d�rtj|=qWtdkr6td�tjd=tdkrNtd�x�tj|dd�D]�\}}}xX|D]P}yt�	tj�
||��Wqntk
r�}ztdkr�t|�Wdd}~XYqnXqnWx`|D]X}tj�
||�}yt�|�Wq�tk
�r}ztdk�rt|�Wdd}~XYq�Xq�Wq^Wy t�|�tdk�rFtd�Wn6tk
�r~}ztdk�rnt|�Wdd}~XYnXdS)	Nrerz  Removed sys.modules entriesrz  Removed sys.path entryF)�topdownz  Removed package tree)
r*rr@r+rrnr]r[�walk�remover^�OSError�rmdir)	r4�top�entry�root�dirs�filesr"Zex�fullnamer:r:r;�_del_pkg�s:



"


zRunModuleTestCase._del_pkgcCs\d}|d|7<|d|d<|d}tj�|j|d�}||d<|rX|d|7<dS)N�crrrr)rPrsrtr")r4�ns�	alter_sysZchar_to_add�specZnew_specr:r:r;�_fix_ns_for_legacy_pycs

z(RunModuleTestCase._fix_ns_for_legacy_pycc
	s|jt|||d�\}}�}t��t��}|��||j��d�d|d���rb|�|ddd����fdd�}	z�td	kr�t	d
��|�
|	|�t��t
��t�|�tjs�t|�t��t��td	kr�t	d��|�|��|�
|	|�Wd|�|�Xtd	k�rt	d�dS)
N)r`rdrir)rrrrrT)rrrcst�|�d�S)N)r�)r)rH)r�rNr:r;rI4sz2RunModuleTestCase._check_module.<locals>.create_nsrzRunning from source:zRunning from compiled:zModule executed successfully)ryrGrrJr)rKr%�
rpartitionrrnrCrP�invalidate_caches�
__import__r[r|r�dont_write_bytecoderrr�r�)
r4rvr�r`rdr_rSrOr6rIr:)r�rNr;�
_check_modulesF





zRunModuleTestCase._check_modulec	s$|jt|d||d�\}}}}|�d�d�t|�t��}	|	�||tj�	|��|d���rn|	�|ddd����fdd	�}
z�t
d
kr�td��|�|
|	�t�
�t|�t�|�tjs�t|�t|�t
d
kr�td��t�
�|�|	��|�|
|	�Wd|�|�Xt
d
k�r td
�dS)N�__main__)r`rdrir)rrrrrT)rrrcst�|�d�S)N)r�)r)rH)r�rwr:r;rI]sz3RunModuleTestCase._check_package.<locals>.create_nsrzRunning from source:zRunning from compiled:zPackage executed successfully)ryrGr�rrJr)rKrPrs�cache_from_sourcerrnrCr�r�r[r|rr�rrr�r�)r4rvr�r`rdr_rSrNrOr6rIr:)r�rwr;�_check_packageGsH







z RunModuleTestCase._check_packagecCs�|dkrtd��d}|}x"t|�D]}|}tj�||�}q"Wtj�|d�}t|�tdkrdtd|�tj�|d�}	|�|	�tdkr�td|	�tj�|	d�}
|�|
�tdkr�td	|
�tj�|
d
�}t|�tdkr�td|�dS)Nrz$Relative module test needs depth > 1rez
sibling.pyz  Added sibling module:�unclez  Added uncle package:Zcousinz  Added cousin package:z	nephew.pyz  Added nephew module:)	�
ValueError�ranger[r]r^rrrnrb)r4Zbase_dirrurvrwZ
module_dir�iZ
parent_dirZ
sibling_fnameZ	uncle_dirZ
cousin_dirZnephew_fnamer:r:r;�_add_relative_modulesps.




z'RunModuleTestCase._add_relative_modulesNc	CsZd}|�||�\}}}}|dkr&|}n|}�z
|�|||�|�d�d}	tdkr\td|�t||d�}
|�|
d|�|�|
d|	�|�d	|
�|�d
|
�~
t�	�t
|�t�|�t
j�s4t|�t|�tdkr�td|�t�	�t||d�}|�|d|�|�|d|	�|�d	|�|�d
|�~Wd|�|�Xtdk�rVtd�dS)
Nza\
from __future__ import absolute_import
from . import sibling
from ..uncle.cousin import nephew
rirrzRunning from source:)rBrrZsiblingZnephewzRunning from compiled:zModule executed successfully)ryr�r�rrnrr/�assertInrPr�r�r[r|rr�rrr�)r4rvrB�contentsr_rSrNrO�
expected_namerwZd1Zd2r:r:r;�_check_relative_imports�sD



z)RunModuleTestCase._check_relative_importscCs2x,td�D] }tdkr td|�|�|�q
WdS)N�rzTesting package depth:)r�rrnr�)r4rvr:r:r;�test_run_module�s
z!RunModuleTestCase.test_run_modulecCs:x4tdd�D]&}tdkr"td|�|j|ddd�qWdS)Nrr�zTesting package depth:T)r`rd)r�rrnr�)r4rvr:r:r;�$test_run_module_in_namespace_package�s
z6RunModuleTestCase.test_run_module_in_namespace_packagecCs4x.tdd�D] }tdkr"td|�|�|�qWdS)Nrr�zTesting package depth:)r�rrnr�)r4rvr:r:r;�test_run_package�s
z"RunModuleTestCase.test_run_packagecCsR|�ddd�}|\}}}}|�dd�}|�|j|�tj�|dd�}ttt	t
f}x�|D]�}|j}|�|���d�
|�}	t|dd	d
��}
|
�|	�WdQRXyt|�Wn2|k
r�}z|�dt
|��Wdd}~XYnX|�d�
|��yt|d
�Wn4|k
�r.}z|�dt
|��Wdd}~XYnX|�d�
|��WdQRXqVWdS)NrMrr�z	.__main__rez__init__.pyz raise {0}('{0} in __init__.py.')Zwt�ascii)�encodingzfinding speczNothing raised; expected {}z
.submodule)ry�replace�
addCleanupr�r[r]r^rV�AttributeError�	TypeErrorr�rZsubTest�formatrprqrZassertNotInrW)r4rr_�_rNZinit�
exceptionsZ	exceptionr"rurx�errr:r:r;� test_run_package_init_exceptions�s,

""z2RunModuleTestCase.test_run_package_init_exceptionsc	CsR|�dd�\}}}}z,t|�|�td��t|�WdQRXWd|�|�XdS)NrMrzfound in sys\.modules)ryr��assertWarnsRegex�RuntimeWarningrr�)r4r_r�rNr:r:r;�test_submodule_imported_warning�sz1RunModuleTestCase.test_submodule_imported_warningc	Cs�|�ddd�\}}}}|�|j|�|�dd�}t|�|�|tj�t�	��t�
dt�t|�WdQRXt|�|�
td��t|�WdQRXdS)NrMrr�z	.__main__�errorzfound in sys\.modules)ryr�r�r�r�r�rr@�warnings�catch_warnings�simplefilterr�rr�)r4r_r�rN�packager:r:r;� test_package_imported_no_warning�s
z2RunModuleTestCase.test_package_imported_no_warningcCs8x2tdd�D]$}tdkr"td|�|j|dd�qWdS)Nrr�zTesting package depth:T)rd)r�rrnr�)r4rvr:r:r;�%test_run_package_in_namespace_package�s
z7RunModuleTestCase.test_run_package_in_namespace_packagecCs8x2tdd�D]$}tdkr"td|�|j|dd�qWdS)Nrr�zTesting package depth:T)r`)r�rrnr�)r4rvr:r:r;�test_run_namespace_package�s
z,RunModuleTestCase.test_run_namespace_packagecCs:x4tdd�D]&}tdkr"td|�|j|ddd�qWdS)Nrr�zTesting package depth:T)r`rd)r�rrnr�)r4rvr:r:r;�/test_run_namespace_package_in_namespace_package�s
zARunModuleTestCase.test_run_namespace_package_in_namespace_packagecCs6x0td�D]$}tdkr td|�|j|dd�q
WdS)Nr�rzTesting package depth:T)r�)r�rrnr�)r4rvr:r:r;�test_run_module_alter_syss
z+RunModuleTestCase.test_run_module_alter_syscCs8x2tdd�D]$}tdkr"td|�|j|dd�qWdS)Nrr�zTesting package depth:T)r�)r�rrnr�)r4rvr:r:r;�test_run_package_alter_syss
z,RunModuleTestCase.test_run_package_alter_syscCs4x.tdd�D] }tdkr"td|�|�|�qWdS)N��rz"Testing relative imports at depth:)r�rrnr�)r4rvr:r:r;�test_explicit_relative_imports
z/RunModuleTestCase.test_explicit_relative_importcCs6x0tdd�D]"}tdkr"td|�|�|d�qWdS)Nr�r�rz'Testing main relative imports at depth:r�)r�rrnr�)r4rvr:r:r;�test_main_relative_imports
z+RunModuleTestCase.test_main_relative_importc	s�d}d�|�t|�\}}�}t��t��}|��|tj�|���	d�d|d����fdd�}z|�
||�Wd|�|�XdS)Nrz*And now for something completely differentrir)rrrrrcst�|��S)N)r)rH)rNrBr:r;rI$sz2RunModuleTestCase.test_run_name.<locals>.create_ns)ryrGrrJr)rKrPrsr�r�rCr�)r4rvr_rSrOr6rIr:)rNrBr;�
test_run_names

zRunModuleTestCase.test_run_namecCs�ddl}d}d}ddg}d|dg}t�}t�}xltd|�D]^}d	�|g|�}	|�|	�x|D]}
|�|	d	|
�q`Wx|D]}
|�|	d	|
�q�Wq<Wd	�|g|�}	|�|	�|�|	d
�|�d|�\}}}
}|�|j|�x$td|d�D]}|�|d|�q�WxX|�	|g�D]H}|�
||j�|�
|jt
jj�|j�rV|�|j�n|�|j��qW|�t|�d|�|�t|�d|�dS)
Nrr�rer�zuncle.cousinzuncle.cousin.nephewz.siblingrriz.runpy_testrMr�)�pkgutilr3r�r^�addryr�r�r�Z
walk_packagesZassertIsInstanceZ
ModuleInfoZ
module_finderrPrQ�
FileFinderZispkgr|r"r/�len)r4r�Z	max_depthZ	base_nameZpackage_suffixesZmodule_suffixesZexpected_packagesZexpected_modulesrvrwr"r_rSrNrOZ
moduleinfor:r:r;�test_pkgutil_walk_packages+s<




z,RunModuleTestCase.test_pkgutil_walk_packages)F)rc)F)F)N)rrDrErXrYrZrbryr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r:r:r:r;rU�s:
'(
(
rUc@s�eZdZd dd�Zd!dd�Zdd	�Zd
d�Zdd
�Zdd�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zedd��Zdd�ZdS)"�RunPathTestCaseNFcCs|dkrt}t||||�S)N)rGr
)r4�
script_dirZscript_basenameru�omit_suffixr:r:r;�_make_test_scriptRsz!RunPathTestCase._make_test_scriptTc
s��fdd�}t��}	|dkr"|}
n|}
|rJtj�|
|�}|j}|sRd|_nd}}|	�|||d||ddd��|�||	�d���fdd�}|r�|dkr�tj��|�}|s�d|_||	d<�|	d	<��	d
�d|	d<|�||	�dS)
Ncs
t�|�S)N)r)rH)�script_namer:r;rI]sz0RunPathTestCase._check_script.<locals>.create_nsrMT)rrrrrrrrzprove.issue15230.is.fixedcst�|��S)N)r)rH)rBr�r:r;rIzsrrrirr)
rJr)rPrsrtr%r.rKrCr�)
r4r�r�Z
expected_fileZexpected_argv0rN�expect_spec�check_loaderrIr6Z	spec_namerOZ
mod_cachedr:)rBr�r;�
_check_scriptYsB
zRunPathTestCase._check_scriptcCst�|�}|�t|t|�dS)N)�re�escape�assertRaisesRegexrVr)r4r��msgr:r:r;�_check_import_error�s
z#RunPathTestCase._check_import_errorc	Cs:t��*}d}|�||�}|j|d||dd�WdQRXdS)N�scriptz
<run_path>F)r�)rr�r�)r4r�rNr�r:r:r;�test_basic_script�s

z!RunPathTestCase.test_basic_scriptc	Cs>t��.}d}|j||dd�}|j|d||dd�WdQRXdS)Nr�T)r�z
<run_path>F)r�)rr�r�)r4r�rNr�r:r:r;�test_basic_script_no_suffix�s
z+RunPathTestCase.test_basic_script_no_suffixc	CsRt��B}d}|�||�}tj|dd�}t�|�|j|d||dd�WdQRXdS)Nr�T)�doraisez
<run_path>F)r�)rr��
py_compile�compiler[r|r�)r4r�rNr��
compiled_namer:r:r;�test_script_compiled�s

z$RunPathTestCase.test_script_compiledc	Cs:t��*}d}|�||�}|j|d|||d�WdQRXdS)Nr�z
<run_path>)rN)rr�r�)r4r�rNr�r:r:r;�test_directory�s

zRunPathTestCase.test_directoryc	Cs`t��P}d}|�||�}tj|dd�}t�|�tjsRt|�}|j	|d|||d�WdQRXdS)Nr�T)r�z
<run_path>)rN)
rr�r�r�r[r|rr�rr�)r4r�rNr�r�Z
legacy_pycr:r:r;�test_directory_compiled�s

z'RunPathTestCase.test_directory_compiledc	Cs:t��*}d}|�||�}d|}|�||�WdQRXdS)N�not_mainz"can't find '__main__' module in %r)rr�r�)r4r�rNr�r�r:r:r;�test_directory_error�s
z$RunPathTestCase.test_directory_errorc	CsLt��<}d}|�||�}t|d|�\}}|j|d|||dd�WdQRXdS)Nr��test_zipz
<run_path>F)rNr�)rr�rr�)r4r�rNr��zip_name�fnamer:r:r;�test_zipfile�szRunPathTestCase.test_zipfilec	CsZt��J}d}|�||�}tj|dd�}t|d|�\}}|j|d|||dd�WdQRXdS)Nr�T)r�r�z
<run_path>F)rNr�)rr�r�r�rr�)r4r�rNr�r�r�r�r:r:r;�test_zipfile_compiled�s
z%RunPathTestCase.test_zipfile_compiledc	CsJt��:}d}|�||�}t|d|�\}}d|}|�||�WdQRXdS)Nr�r�z"can't find '__main__' module in %r)rr�rr�)r4r�rNr�r�r�r�r:r:r;�test_zipfile_error�sz"RunPathTestCase.test_zipfile_errorc	
Csft��V}t��D}d}d|}|�|||�}t|d|�\}}d}|�t|t|�WdQRXWdQRXdS)Nr�z import runpy
runpy.run_path(%r)
r�zrecursion depth exceeded)rr�rr��RecursionErrorr)	r4r�Z	dummy_dirrNrur�r�r�r�r:r:r;�test_main_recursion_error�sz)RunPathTestCase.test_main_recursion_errorc
Cs`t��P}tj�|d�}t|ddd��}|�d�WdQRXt|�}|�|dd�WdQRXdS)Nz	script.pyrh�latin1)r�u%
#coding:latin1
s = "non-ASCII: hé"
�sunon-ASCII: hé)rr[r]r^rprqrr/)r4r��filename�frr:r:r;�
test_encoding�szRunPathTestCase.test_encoding)NF)NTT)rrDrEr�r�r�r�r�r�r�r�r�r�r�r�rr�r�r:r:r:r;r�Os

+	
r�r�)*Zunittestr[Zos.pathrr�rmrPZimportlib.machinery�importlib.utilr�r�Ztest.supportrrrrrrrZtest.support.script_helperr	r
rrrr
rrrrGZimplicit_namespacer?�dictrJrKr!ZTestCaserFrUr�r�mainr:r:r:r;�<module>sL$
O'