HEX
Server: Apache
System: Linux opal14.opalstack.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
User: curbgloabal_opal (1234)
PHP: 8.1.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib64/python3.6/test/__pycache__/test_zipapp.cpython-36.pyc
3


 \�6�@s�dZddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
Gdd�dej�ZGdd�dej�Z
edkr�ej�dS)	z#Test harness for the zipapp module.�N)�patchc@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zejejd,kd-�d.d/��Zejejd,kd-�d0d1��Zd2S)3�
ZipAppTestz!Test zipapp module functionality.cCs&tj�}|j|j�tj|j�|_dS)N)�tempfile�TemporaryDirectory�
addCleanup�cleanup�pathlib�Path�name�tmpdir)�selfr�r
�#/usr/lib64/python3.6/test_zipapp.py�setUpszZipAppTest.setUpcCsN|jd}|j�|dj�|jd}tjt|�t|��|j|j��dS)N�sourcez__main__.pyz
source.pyz)r�mkdir�touch�zipapp�create_archive�str�
assertTrue�is_file)rr�targetr
r
r�test_create_archives

zZipAppTest.test_create_archivecCsF|jd}|j�|dj�|jd}tj||�|j|j��dS)Nrz__main__.pyz
source.pyz)rrrrrrr)rrrr
r
r� test_create_archive_with_pathlib s

z+ZipAppTest.test_create_archive_with_pathlibc
Cs�|jd}|j�|dj�|dj�|dj�|ddj�tj�}tjt|�|�|jd�t	j
|d��&}|jd|j��|jd	|j��WdQRXdS)
Nrz__main__.py�fooZbarz__init__.pyr�rzfoo/zbar/)
rrr�io�BytesIOrrr�seek�zipfile�ZipFile�assertIn�namelist)rrr�zr
r
r� test_create_archive_with_subdirs)s

z+ZipAppTest.test_create_archive_with_subdirscCsH|jd}|j�|dj�tjt|��|jd}|j|j��dS)Nrz__main__.pyz
source.pyz)rrrrrrrr)rrZexpected_targetr
r
r�"test_create_archive_default_target8s

z-ZipAppTest.test_create_archive_default_targetcCsX|jd}|j�|dj�|jd}|jtj��tjt|�t|��WdQRXdS)Nrzfoo.pyz
source.pyz)rrr�assertRaisesr�ZipAppErrorrr)rrrr
r
r�test_no_mainAs

zZipAppTest.test_no_maincCs\|jd}|j�|dj�|jd}|jtj��tjt|�t|�dd�WdQRXdS)Nrz__main__.pyz
source.pyzz
pkg.mod:fn)�main)rrrr'rr(rr)rrrr
r
r�test_main_and_main_pyJs

z ZipAppTest.test_main_and_main_pycCs�|jd}|j�|dj�|jd}tjt|�t|�dd�tjt|�d��(}|jd|j	��|jd|j
d��WdQRXdS)	Nrzfoo.pyz
source.pyzz
pkg.mod:fn)r*rz__main__.pyspkg.mod.fn())rrrrrrr r!r"r#�read)rrrr$r
r
r�test_main_writtenSs

zZipAppTest.test_main_writtencCs�|jd}|j�|dj�|dj�|jd}tjt|�t|�dd�tjt|�d��}|jd|j	�j
d	��WdQRXdS)
Nrzfoo.pyzbar.pyz
source.pyzz
pkg.mod:fn)r*r�z__main__.py)rrrrrrr r!�assertEqualr#�count)rrrr$r
r
r�test_main_only_written_once^s

z&ZipAppTest.test_main_only_written_oncecCs�|jd}|j�|jd}ddddddd	d
ddg
}xT|D]L}|j|d
��6|jtj��tjt|�t|�|d
�WdQRXWdQRXq:WdS)Nrz
source.pyz�rzfoo:z:barz12:barza.b.c.:dz.a:bza:b.za:.bza:silly name)r*)rrZsubTestr'rr(rr)rrrZproblemsr*r
r
r�test_main_validationos


zZipAppTest.test_main_validationc
Csh|jd}|j�|dj�|jd}tjt|�t|��|jd��}|j|jd�d�WdQRXdS)Nrz__main__.pyz
source.pyz�rb�s#!)	rrrrrr�openZassertNotEqualr,)rrr�fr
r
r�test_default_no_shebang}s

z"ZipAppTest.test_default_no_shebangc
Cs||jd}|j�|dj�|jd}tjt|�t|�dd�|jd��(}|j|jd�d�|jd	|j	��WdQRXdS)
Nrz__main__.pyz
source.pyz�python)�interpreterr4r5s#!spython
)
rrrrrrr6r/r,�readline)rrrr7r
r
r�test_custom_interpreter�s

z"ZipAppTest.test_custom_interpretercCsR|jd}|j�|dj�tj�}tjt|�|dd�|j|j	�j
d��dS)Nrz__main__.pyr9)r:s	#!python
)rrrrrrrrr�getvalue�
startswith)rrrr
r
r�test_pack_to_fileobj�s
zZipAppTest.test_pack_to_fileobjcCsZ|jd}|j�|dj�|jd}tjt|�t|�dd�|jtjt|��d�dS)Nrz__main__.pyz
source.pyzr9)r:)rrrrrrr/�get_interpreter)rrrr
r
r�test_read_shebang�s

zZipAppTest.test_read_shebangcCsV|jd}|j�|dj�|jd}tjt|�t|��|jtjt|��d�dS)Nrz__main__.pyz
source.pyz)rrrrrrr/r@)rrrr
r
r�test_read_missing_shebang�s

z$ZipAppTest.test_read_missing_shebangcCs||jd}|j�|dj�|jd}tjt|�t|�dd�|jd}tjt|�t|�dd�|jtjt|��d�dS)Nrz__main__.pyz
source.pyzr9)r:zchanged.pyzz	python2.7)rrrrrrr/r@)rrr�
new_targetr
r
r�test_modify_shebang�s


zZipAppTest.test_modify_shebangcCst|jd}|j�|dj�|jd}tjt|�t|�dd�tj�}tjt|�|dd�|j|j	�j
d��dS)Nrz__main__.pyz
source.pyzr9)r:z	python2.7s#!python2.7
)rrrrrrrrrr=r>)rrrrCr
r
r�test_write_shebang_to_fileobj�s

z(ZipAppTest.test_write_shebang_to_fileobjcCsh|jd}|j�|dj�|jd}|jd}tj||dd�tj||dd�|jtj|�d�dS)Nrz__main__.pyztarget1.pyzztarget2.pyzr9)r:z	python2.7)rrrrrr/r@)rrZtarget1Ztarget2r
r
r�test_read_from_pathobj�s


z!ZipAppTest.test_read_from_pathobjcCs~|jd}|j�|dj�|jd}tj�}tjt|�|dd�tj�}|jd�tj||dd�|j	|j
�jd��dS)	Nrz__main__.pyz
source.pyzr9)r:rz	python2.7s#!python2.7
)rrrrrrrrrrr=r>)rrrZtemp_archiverCr
r
r�test_read_from_fileobj�s


z!ZipAppTest.test_read_from_fileobjcCs||jd}|j�|dj�|jd}tjt|�t|�dd�|jd}tjt|�t|�dd�|jtjt|��d�dS)Nrz__main__.pyz
source.pyzr9)r:zchanged.pyz)rrrrrrr/r@)rrrrCr
r
r�test_remove_shebang�s


zZipAppTest.test_remove_shebangc
Cs�|jd}|j�|dj�tj�}tjt|�|dd�tj�}|jd�tj||dd�|jd�t	j
|d��}|jt|j
��dh�WdQRXdS)Nrz__main__.pyr9)r:rr)rrrrrrrrrr r!r/�setr#)rrrrCr$r
r
r�test_content_of_copied_archive�s


z)ZipAppTest.test_content_of_copied_archiveZwin32z*Windows does not support an executable bitcCsZ|jd}|j�|dj�|jd}tjt|�t|�dd�|j|j�jtj	@�dS)Nrz__main__.pyz
source.pyzr9)r:)
rrrrrrr�stat�st_mode�S_IEXEC)rrrr
r
r�test_shebang_is_executable�s

z%ZipAppTest.test_shebang_is_executablecCsZ|jd}|j�|dj�|jd}tjt|�t|�dd�|j|j�jtj	@�dS)Nrz__main__.pyz
source.pyz)r:)
rrrrrrZassertFalserKrLrM)rrrr
r
r�!test_no_shebang_is_not_executables

z,ZipAppTest.test_no_shebang_is_not_executableN)�__name__�
__module__�__qualname__�__doc__rrrr%r&r)r+r-r1r3r8r<r?rArBrDrErFrGrHrJ�unittestZskipIf�sys�platformrNrOr
r
r
rrs4					
			

rc@s^eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	e
dejd�dd��Z
dd�ZdS)�ZipAppCmdlineTestz$Test zipapp module command line API.cCs&tj�}|j|j�tj|j�|_dS)N)rrrrrr	r
r)rrr
r
rrszZipAppCmdlineTest.setUpcCs8|jd}|j�|dj�|jd}tj||�|S)Nrz__main__.pyz
source.pyz)rrrrr)rrrr
r
r�make_archives

zZipAppCmdlineTest.make_archivecCsN|jd}|j�|dj�t|�g}tj|�|jd�}|j|j��dS)Nrz__main__.pyz.pyz)	rrrrrr*Zwith_suffixrr)rr�argsrr
r
r�test_cmdline_create!s



z%ZipAppCmdlineTest.test_cmdline_createcCs@|j�}|jd}t|�dt|�g}tj|�|j|j��dS)Nz
target.pyzz-o)rXrrrr*rr)r�originalrrYr
r
r�test_cmdline_copy+s


z#ZipAppCmdlineTest.test_cmdline_copyc	CsV|j�}|jd}t|�dt|�g}|jt��}tj|�WdQRX|j|jj	�dS)Nz
target.pyzz-o)
rXrrr'�
SystemExitrr*r�	exception�code)rr[rrY�cmr
r
r�test_cmdline_copy_inplace3s
z+ZipAppCmdlineTest.test_cmdline_copy_inplacec	CsZ|j�}|jd}t|�dt|�ddg}|jt��}tj|�WdQRX|j|jj	�dS)Nz
target.pyzz-oz-mzfoo:bar)
rXrrr'r]rr*rr^r_)rr[rrYr`r
r
r�test_cmdline_copy_change_main=s
z/ZipAppCmdlineTest.test_cmdline_copy_change_mainz
sys.stdout)Znew_callablec
CsX|j�}t|�dg}|jt��}tj|�WdQRX|j|jjd�|j|j	�d�dS)Nz--inforzInterpreter: <none>
)
rXrr'r]rr*r/r^r_r=)rZmock_stdoutrrYr`r
r
r�test_info_commandGsz#ZipAppCmdlineTest.test_info_commandc	CsH|jd}t|�dg}|jt��}tj|�WdQRX|j|jj�dS)Nz	dummy.pyzz--info)	rrr'r]rr*rr^r_)rrrYr`r
r
r�test_info_errorRs

z!ZipAppCmdlineTest.test_info_errorN)rPrQrRrSrrXrZr\rarbrr�StringIOrcrdr
r
r
rrWs	


rW�__main__)rSrrrKrUrrTrr Z
unittest.mockrZTestCaserrWrPr*r
r
r
r�<module>sM