Your IP : 216.73.217.129


Current Path : /opt/alt/python38/lib64/python3.8/test/__pycache__/
Upload File :
Current File : //opt/alt/python38/lib64/python3.8/test/__pycache__/test_py_compile.cpython-38.pyc

U

�M�fk+�@s�ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZddl
mZdd�Zdd�ZGdd	�d	ee
j��ZGd
d�d�ZGdd
�d
ee
jedd�ZGdd�dee
jedd�ZGdd�de
j�Zedkr�e
��dS)�N)�support)�
script_helpercst����fdd��}|S)z+Runs function with SOURCE_DATE_EPOCH unset.c
s>t���,}|�d�|�d��||�W5QR�SQRXdS)N�SOURCE_DATE_EPOCH�RPM_BUILD_ROOT�rZEnvironmentVarGuardZunset��args�kwargs�env��fxn��9/opt/alt/python38/lib64/python3.8/test/test_py_compile.py�wrappers


z*without_source_date_epoch.<locals>.wrapper��	functools�wraps�rrr
rr�without_source_date_epochsrcst����fdd��}|S)z)Runs function with SOURCE_DATE_EPOCH set.c
s<t���*}d|d<|�d��||�W5QR�SQRXdS)NZ	123456789rrrrrr
rrs

z'with_source_date_epoch.<locals>.wrapperrrr
rr�with_source_date_epochsrcseZdZ�fdd�Z�ZS)�SourceDateEpochTestMetac	sZt��||||�}t|�D]:}|�d�rt||�}|r@t|�}nt|�}t|||�q|S)NZtest_)�super�__new__�dir�
startswith�getattrrr�setattr)	�mcls�name�basesZdct�source_date_epoch�cls�attrZmethr��	__class__r
rr(s


zSourceDateEpochTestMeta.__new__)�__name__�
__module__�__qualname__r�
__classcell__r
r
r#rr'src@s�eZdZdd�Zdd�Zdd�Zdd�Ze�e	j
�e	j�pHe	j
�
e	j�d	�d
d��Zdd
�Zdd�Zdd�Ze�ee	d�o�e	��dkd�e�e	jdkd�dd���Zdd�Zdd�Ze�ejjdkd�dd��Zd d!�Zd"d#�Zd$d%�Zd&S)'�PyCompileTestsBasec	Cs�tjt��d�|_tj�|jd�|_|jd|_t	j
�|j�|_tj�
t���d|_tj�
|j�d}|rvt�|�t|jd��}|�d�W5QRXdS)N)r�_test.py�cr�w�x = 123
)�tempfile�mkdtemp�os�getcwd�	directory�path�join�source_path�pyc_path�	importlib�util�cache_from_source�
cache_path�
splitdrive�	cwd_drive�chdir�open�write)�selfZdrive�filer
r
r�setUp9s
zPyCompileTestsBase.setUpcCs"t�|j�|jrt�|j�dS�N)�shutil�rmtreer2r<r0r=�r@r
r
r�tearDownIszPyCompileTestsBase.tearDowncCs<t�|j|j�|�tj�|j��|�tj�|j	��dSrC)
�
py_compile�compiler5r6�
assertTruer0r3�exists�assertFalser:rFr
r
r�test_absolute_pathNsz%PyCompileTestsBase.test_absolute_pathc	Csxzt�|jd|j�Wn"ttfk
r:|�d�Yn:Xtj�|j�sNt�|�	t
��t�|j
|j�W5QRXdS)Nz.actualz.need to be able to create a symlink for a file)r0�symlinkr6�NotImplementedError�OSErrorZskipTestr3�islink�AssertionError�assertRaises�FileExistsErrorrHrIr5rFr
r
r�test_do_not_overwrite_symlinksSsz1PyCompileTestsBase.test_do_not_overwrite_symlinksz7requires os.devnull and for it to be a non-regular filec	Cs*|�t��t�|jtj�W5QRXdSrC)rSrTrHrIr5r0�devnullrFr
r
r�&test_do_not_overwrite_nonregular_files_sz9PyCompileTestsBase.test_do_not_overwrite_nonregular_filescCs$t�|j�|�tj�|j��dSrC)rHrIr5rJr0r3rKr:rFr
r
r�test_cache_pathgsz"PyCompileTestsBase.test_cache_pathc	Csdt�|j��&t�tj�|j�tj�|j	��W5QRX|�
tj�|j	��|�tj�|j
��dSrC)rZ
change_cwdr2rHrIr0r3�basenamer5r6rJrKrLr:rFr
r
r�test_cwdks�zPyCompileTestsBase.test_cwdcCsLt�tj�|j�tj�|j��|�tj�|j��|�	tj�|j
��dSrC)rHrIr0r3�relpathr5r6rJrKrLr:rFr
r
r�test_relative_pathrs
�z%PyCompileTestsBase.test_relative_path�geteuidrznon-root user required�ntz/cannot control directory permissions on Windowsc
Cs^t�|j�}t�|jtj�z*|�t��t�	|j
|j�W5QRXW5t�|j|j�XdSrC)r0�statr2�chmod�S_IREAD�st_moderS�IOErrorrHrIr5r6)r@�moder
r
r�test_exceptions_propagatexsz,PyCompileTestsBase.test_exceptions_propagatec	Cs\tj�tj�t�d�}t���|�tj	|dd��W5QRX|�
tj�tj
�|���dS)N�bad_coding2.pyF)�doraise)r0r3r4�dirname�__file__r�captured_stderr�assertIsNonerHrIrLrKr7r8r9)r@�
bad_codingr
r
r�test_bad_coding�s


�z"PyCompileTestsBase.test_bad_codingc	Cs�t�|j|j�|�tj�|j��|�tj�|j	��t
|jd��}tj�
|��di�}W5QRXtj�d�rvd}nd}|�||�dS)N�rb�testr�r)rHrIr5r6rJr0r3rKrLr:r>r7�_bootstrap_external�
_classify_pyc�read�environ�get�assertEqual)r@�fp�flagsZexpected_flagsr
r
r�test_source_date_epoch�s�z)PyCompileTestsBase.test_source_date_epochztest does not work with -Oc	Cs�tj�|jd�}tj�|�}|d}tj�|�\}}tj�|�}|�	tj�||�tj�dd�
tjj
���t|d��}|�d�W5QRXt�|�|�tj�|��|�tj�|��dS)Nz
foo.bar.pyr+�__pycache__zfoo.bar.{}.pycr,r-)r0r3r4r2r7r8r9�splitrYrv�format�sys�implementation�	cache_tagr>r?rHrIrJrKrL)r@Z
weird_pathr:r6�head�tailZpenultimate_tailrAr
r
r�test_double_dot_no_clobber�s"��
z-PyCompileTestsBase.test_double_dot_no_clobbercCs|�dtj|jdd��dS)Nzopt-2�)�optimize)�assertInrHrIr5rFr
r
r�test_optimization_path�sz)PyCompileTestsBase.test_optimization_pathc	Cs�tj|jtjjd�t|jd��}tj�	|�
�di�}W5QRX|�|d�tj|jtjjd�t|jd��}tj�	|�
�di�}W5QRX|�|d�dS)N)�invalidation_modernrorp�)
rHrIr5�PycInvalidationMode�CHECKED_HASHr>r:r7rqrrrsrv�UNCHECKED_HASH)r@rwrxr
r
r�test_invalidation_mode�s,����z)PyCompileTestsBase.test_invalidation_modec
Cs�tj�tj�t�d�}t���j}|�tj	|ddd��|�tj	|ddd��|�
|��d�|�tj
��tj	|ddd�W5QRXW5QRXdS)NrfFr�)rg�quietT�r�)r0r3r4rhrirrjrkrHrIrv�getvaluerS�PyCompileError)r@rl�stderrr
r
r�
test_quiet�s
zPyCompileTestsBase.test_quietN)r%r&r'rBrGrMrU�unittestZskipIfr0r3rKrV�isfilerWrXrZr\�hasattrr]rrermryr}rxr�r�r�r�r�r
r
r
rr)7s2 �
��
r)c@seZdZdS)�PyCompileTestsWithSourceEpochN�r%r&r'r
r
r
rr��sr�T)�	metaclassr c@seZdZdS)� PyCompileTestsWithoutSourceEpochNr�r
r
r
rr��sr�Fc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�PyCompileCLITestCasec	CsRt��|_tj�|jd�|_tj�	|j�|_
t|jd��}|�d�W5QRXdS)Nr*r,r-)
r.r/r2r0r3r4r5r7r8r9r:r>r?)r@rAr
r
rrB�s

zPyCompileCLITestCase.setUpcCst�|j�dSrC)rrEr2rFr
r
rrG�szPyCompileCLITestCase.tearDowncOsJ|r:|ddkr:d|kr:tjtjdddg|d��dd�Stjd|�|�S)	Nr�-�input�-mrHT)r�Zcapture_output)r�rH)�
subprocess�runr}�
executable�encoderZassert_python_ok)r@rr	r
r
r�pycompilecmd�s
�z!PyCompileCLITestCase.pycompilecmdcGstjd|��S)Nr�rH)r�rH)rZassert_python_failure)r@rr
r
r�pycompilecmd_failure�sz)PyCompileCLITestCase.pycompilecmd_failurecCsR|jd|jd�}|�|jd�|�|jd�|�|jd�|�tj�	|j
��dS)Nr�)r�r�)r�r5rv�
returncode�stdoutr�rJr0r3rKr:)r@�resultr
r
r�
test_stdin�s
zPyCompileCLITestCase.test_stdincCsR|�|j|j�\}}}|�|d�|�|d�|�|d�|�tj�|j��dS)Nrr�)r�r5rvrJr0r3rKr:)r@�rcr�r�r
r
r�test_with_files�s
z$PyCompileCLITestCase.test_with_filescCsNtj�tj�t�d�}|�|�\}}}|�|d�|�|d�|�d|�dS)Nzbadsyntax_3131.pyr�r�sSyntaxError)r0r3r4rhrir�rvr�)r@Z
bad_syntaxr�r�r�r
r
r�test_bad_syntaxs
z$PyCompileCLITestCase.test_bad_syntaxcCsRtj�tj�t�d�}|�|j|�\}}}|�|d�|�|d�|�d|�dS)Nzshould_not_exists.pyr�r�sNo such file or directory)	r0r3r4rhrir�r5rvr�)r@Zshould_not_existsr�r�r�r
r
r�test_file_not_exists
s
z)PyCompileCLITestCase.test_file_not_existsN)r%r&r'rBrGr�r�r�r�r�r�r
r
r
rr��s
r��__main__)r�importlib.utilr7r0rHrDr_r�r}r.r�rorZtest.supportrrr�typeZTestCaserr)r�r�r�r%�mainr
r
r
r�<module>s:��6