File: //usr/local/lib/python3.7/test/__pycache__/test_compileall.cpython-37.opt-2.pyc
B
��gk � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl
Z
d dlZd dlZd dl
Z
d dlZd dl
mZmZ yd dlmZ dZW n ek
r� dZY nX d dlmZ d dlmZ dd lmZ dd
lmZ G dd� d�ZG d
d� dee
jedd�ZG dd� dee
jedd�ZG dd� de
j�ZG dd� d�Z G dd� de e
jedd�Z!G dd� de e
jedd�Z"e#dk�r~e
�$� dS )� N)�mock�
skipUnless)�ProcessPoolExecutorTF)�support)�
script_helper� )�without_source_date_epoch)�SourceDateEpochTestMetac @ s� e Zd Zdd� Zdd� Zdd� Zdd� Ze�e e
d �d
�dd� �Zd
d� Zdd� Z
dd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Ze�d�d d!� �Zd"d#� Ze�d�d$d%� �Ze�d�e�d&�d'd(� ��Zejdd)d*�e�d&�d+d,� ��Zd)S )-�CompileallTestsBasec C s� t �� | _tj�| jd�| _tj� | j�| _
t| jd��}|�d� W d Q R X tj�| jd�| _
tj� | j
�| _t�| j| j
� tj�| jd�| _t�| j� tj�| jd�| _t�| j| j� d S )Nz_test.py�wzx = 123
z _test2.pyZ_subdirz _test3.py)�tempfile�mkdtemp� directory�os�path�join�source_path� importlib�util�cache_from_source�bc_path�open�write�source_path2�bc_path2�shutilZcopyfileZsubdirectory�mkdir�source_path3)�self�file� r �0/usr/local/lib/python3.7/test/test_compileall.py�setUp s
zCompileallTestsBase.setUpc C s t �| j� d S )N)r �rmtreer )r r r r! �tearDown- s zCompileallTestsBase.tearDownc C s8 t j�| jd�| _t| jd��}|�d� W d Q R X d S )Nz_test_bad.pyr zx (
)r r r r �bad_source_pathr r )r r r r r! �add_bad_source_file0 s z'CompileallTestsBase.add_bad_source_filec C sP t | jd��}|�d�}W d Q R X tt�| j�j�}t� dt
jjd|�}||fS )N�rb� z<4sllr )
r r �read�intr �statr �st_mtime�struct�packr r �MAGIC_NUMBER)r r �data�mtimeZcomparer r r! �timestamp_metadata5 s
z&CompileallTestsBase.timestamp_metadatar+ ztest needs os.stat()c C s� t j�d�rt�d��t�| j� | j| � � � t
| jd��}|�� t
|�d � }W d Q R X t
| jd��}|�|� |�|� W d Q R X | j| � � � tj| jddd� | j| � � � d S )N�SOURCE_DATE_EPOCHzSOURCE_DATE_EPOCH is setr'