File: //lib64/python3.6/test/__pycache__/test_compileall.cpython-36.pyc
3
\Z[ � @ 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 G dd � d e
j�ZG d
d� de
j�ZG dd
� d
e
j�Zedk�re
j� dS )� N)�mock�
skipUnless)�ProcessPoolExecutorTF)�support)�
script_helperc @ s� e Zd Zdd� Zdd� Zdd� Zdd� Zeje e
d �d
�dd� �Zd
d� Zdd� Z
dd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zejd�d d!� �Zd"d#� Zejd�d$d%� �Zejd�ejd&�d'd(� ��Zejdd)d*�ejd&�d+d,� ��Zd)S )-�CompileallTestsc
C s� t j� | _tjj| jd�| _tjj | j�| _
t| jd��}|jd� W d Q R X tjj| jd�| _
tjj | j
�| _tj| j| j
� tjj| jd�| _tj| j� tjj| jd�| _tj| 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 �'/usr/lib64/python3.6/test_compileall.py�setUp s
zCompileallTests.setUpc C s t j| j� d S )N)r �rmtreer )r r r r �tearDown) s zCompileallTests.tearDownc C s8 t jj| jd�| _t| jd��}|jd� 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_file, s z#CompileallTests.add_bad_source_filec C sN t | jd��}|jd�}W d Q R X ttj| j�j�}tj dt
jj|�}||fS )N�rb� z<4sl)
r r �read�intr �statr �st_mtime�struct�packr r �MAGIC_NUMBER)r r �data�mtimeZcomparer r r r- 1 s
zCompileallTests.datar( ztest needs os.stat()c C s� t j| j� | j| j� � t| jd��}|j� t|�d� }W dQ R X t| jd��}|j |� |j |� W dQ R X | j
| j� � tj| j
ddd� | j| j� � dS )zOCheck that compileall recreates bytecode when the new metadata is
used.r$ N�wbFT)�force�quiet)�
py_compile�compiler �assertEqualr- r r r&