File: //usr/local/lib/python3.7/distutils/tests/__pycache__/test_archive_util.cpython-37.opt-2.pyc
B
!��g�7 � @ s� d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlmZ d dl m
Z
mZmZm
Z
mZ d dlmZmZ d dlmZ d dlmZmZmZmZ yd dlZd dlZdZW n ek
r� d ZY nX yd dlZdZW n ek
r� ed
�ZY nX yd dlZdZ W n ek
�r d Z Y nX yd dl!Z!W n ek
�rB dZ!Y nX yd dl"Z"W n ek
�rj dZ"Y nX dd� Z#G d
d� dej$ej%e j&�Z'dd� Z(e)dk�r�ee(� � dS )� N)�
splitdrive)�archive_util)�check_archive_formats�make_tarball�make_zipfile�make_archive�ARCHIVE_FORMATS)�find_executable�spawn)�support)�check_warnings�run_unittest�patch�
change_cwdTF�zipc C s8 t jjrdS y| �t�� � W n tk
r2 dS X dS )NTF)�os�path�supports_unicode_filenames�encode�sys�getfilesystemencoding�UnicodeEncodeError)�filename� r �=/usr/local/lib/python3.7/distutils/tests/test_archive_util.py�
can_fs_encode/ s r c @ s� e Zd Ze�ed�dGdd��Ze�ed�dd� �Ze�ed�dd � �Z e�e
d
�dd� �Ze�ed
�d�dd� �Z
e�ed�d�dd� �Zdd� Zdd� ZddddddgZdd� eD �Zd d!� Ze�ed"�o�ed#�o�ed$�d%d&� �Ze�ed'�d(�d)d*� �Ze�e�oed+�d,d-� �Ze�ed.�d/d0� �Zd1d2� Zd3d4� Zd5d6� Zd7d8� Ze�ed�d9d:� �Ze�ed�d;d<� �Ze�e
d=�d>d?� �Z d@dA� Z!e�edB�e�e"dC�dDdE� ��Z#dFS )H�ArchiveUtilTestCasezNeed zlib support to run�archivec C s, | � � }| �||d� | j||dd d� d S )Nz.tar.gzz.tar)�compress)�
_create_files�
_make_tarball)�self�name�tmpdirr r r �test_make_tarball@ s z%ArchiveUtilTestCase.test_make_tarballc C s | � � }| j|dddd� d S )Nr z.tar.gz�gzip)r )r r )r! r# r r r �test_make_tarball_gzipH s z*ArchiveUtilTestCase.test_make_tarball_gzipzNeed bz2 support to runc C s | � � }| j|dddd� d S )Nr z.tar.bz2Zbzip2)r )r r )r! r# r r r �test_make_tarball_bzip2M s z+ArchiveUtilTestCase.test_make_tarball_bzip2zNeed lzma support to runc C s | � � }| j|dddd� d S )Nr z.tar.xzZxz)r )r r )r! r# r r r �test_make_tarball_xzR s z(ArchiveUtilTestCase.test_make_tarball_xzu årchivz'File system cannot handle this filenamec C s | � d� d S )Nu årchiv)r$ )r! r r r �test_make_tarball_latin1W s z,ArchiveUtilTestCase.test_make_tarball_latin1u のアーカイブc C s | � d� d S )Nu のアーカイブ)r$ )r! r r r �test_make_tarball_extended_ s z.ArchiveUtilTestCase.test_make_tarball_extendedc K s� | � � }t�t|�d t|�d kd� tj�||�}t|�� tt|�d df|� W d Q R X || }| � tj�
|�� | �| �|�| j
� d S )Nr z)source and target should be on same drive� �dist)�mkdtemp�unittest�
skipUnlessr r r �joinr r �
assertTrue�exists�assertEqual�_tarinfo�_created_files)r! r# Ztarget_name�suffix�kwargs�tmpdir2� base_name�tarballr r r r h s
z!ArchiveUtilTestCase._make_tarballc C s. t �|�}z|�� }|�� |S |�� X d S )N)�tarfile�openZgetnames�sort�close)r! r �tar�namesr r r r4 x s
zArchiveUtilTestCase._tarinfozdist/z
dist/file1z
dist/file2z dist/sub/zdist/sub/file3z
dist/sub2/c C s g | ]}|� d ��qS )�/)�rstrip)�.0�pr r r �
<listcomp>� s zArchiveUtilTestCase.<listcomp>c C s~ | � � }tj�|d�}t�|� | �|dgd� | �|dgd� t�tj�|d�� | �|ddgd� t�tj�|d�� |S )Nr, Zfile1�xxxZfile2�subZfile3Zsub2)r- r r r0 �mkdirZ
write_file)r! r# r, r r r r � s
z!ArchiveUtilTestCase._create_filesr? r% z*Need the tar, gzip and zlib command to runc C s� | � � }| �� }tj�|d�}t�� }t�|� zt|d� W d t�|� X |d }| �tj� |�� tj�|d�}ddddg}dd d
dg}t�� }t�|� zt
|� t
|� W d t�|� X | �tj� |�� | �| �|�| j
� | �| �|�| j
� tj�|d�}t�� }t�|� zt|dd d� W d t�|� X |d }| �tj� |�� tj�|d�}t�� }t�|� zt|dd d
d� W d t�|� X |d }| �tj� |�� d S )Nr r, z.tar.gzzarchive2.tar.gzr? z-cfzarchive2.tarr% z-fz-9)r z.tarT)r �dry_run)r r- r r r0 �getcwd�chdirr r1 r2 r
r3 r4 r5 ) r! r# r8 r9 �old_dirr: Ztarball2Ztar_cmdZgzip_cmdr r r �test_tarfile_vs_tar� sL
z'ArchiveUtilTestCase.test_tarfile_vs_tarr z The compress program is requiredc C s | � � }tj�| �� d�}t�� }t�|� z.t� �}t� d� t
|ddd� W d Q R X W d t�|� X |d }| �tj�|�� | �
t|j�d� t�|� t�� }t�|� z0t� � }t� d� t
|dddd � W d Q R X W d t�|� X | �tj�|�� | �
t|j�d� d S )
Nr �alwaysr, r )r z.tar.Zr+ T)r rI )r r r r0 r- rJ rK r �warnings�simplefilterr r1 r2 r3 �len�removeZassertFalse)r! r# r9 rL �wr: r r r �test_compress_deprecated� s.
z,ArchiveUtilTestCase.test_compress_deprecatedz Need zip and zlib support to runc C s� | � � }tj�| �� d�}t|�� t|d� W d Q R X |d }| �tj�|�� t �
|��}| �t|�
� �| j� W d Q R X d S )Nr r, z.zip)r r r r0 r- r r r1 r2 �zipfile�ZipFiler3 �sorted�namelist�_zip_created_files)r! r# r9 r: �zfr r r �test_make_zipfile� s
z%ArchiveUtilTestCase.test_make_zipfilezNeed zip support to runc s� t | tjdd � g � tj�� �fdd�}t | tjd|� | �� }tj�| �� d�}t |�� t
|d� W d Q R X |d }| �� |dfd tjifg� | �
tj�|�� t�|��}| �t|�� �| j� W d Q R X d S )
N�zlibc s* |� dd �tjkr � �| |f� �| |�S )N�compression)�getrU �
ZIP_STORED�append)�a�kw)�called�
zipfile_classr r �fake_zipfile s zCArchiveUtilTestCase.test_make_zipfile_no_zlib.<locals>.fake_zipfilerV r r, z.ziprS r] )r r rU rV r r r r0 r- r r r3 r_ r1 r2 rW rX rY )r! re r# r9 r: rZ r )rc rd r �test_make_zipfile_no_zlib� s
z-ArchiveUtilTestCase.test_make_zipfile_no_zlibc C s4 | � tdddg�d� | �tddddddg�� d S )N�gztarrF r �bztar�xztarZztarr? )r3 r ZassertIsNone)r! r r r �test_check_archive_formats s z.ArchiveUtilTestCase.test_check_archive_formatsc C s* | � � }tj�|d�}| �tt|d� d S )Nr rF )r- r r r0 ZassertRaises�
ValueErrorr )r! r# r9 r r r �test_make_archive s z%ArchiveUtilTestCase.test_make_archivec C sd t �� }dd� }|g dftd<