Your IP : 216.73.216.213


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

U

i�f�w�@s ddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
ddlmZddl
mZmZddlmZmZe�d�ZdZdZej�ej�d	ZGd
d�dej�ZGdd
�d
ej�ZGdd�de�ZGdd�de�Z dd�Z!Gdd�dej�Z"ddd�Z#e$dk�re#dd�dS)�N)�PIPE�Popen)�support)�_4G�
bigmemtest)�assert_python_ok�assert_python_failure�gzipsy  int length=DEFAULTALLOC, err = Z_OK;
  PyObject *RetVal;
  int flushmode = Z_FINISH;
  unsigned long start_total_out;

s�/* zlibmodule.c -- gzip-compatible data compression */
/* See http://www.gzip.org/zlib/
/* See http://www.winimage.com/zLibDll for Windows */
z-gzdirc@s$eZdZdd�Zdd�Zdd�ZdS)�UnseekableIOcCsdS)NF���selfrr�3/opt/alt/python38/lib64/python3.8/test/test_gzip.py�seekable$szUnseekableIO.seekablecCs
tj�dS�N��io�UnsupportedOperationrrrr�tell'szUnseekableIO.tellcGs
tj�dSrr)r
�argsrrr�seek*szUnseekableIO.seekN)�__name__�
__module__�__qualname__rrrrrrrr
#sr
c@s"eZdZejZdd�Zdd�ZdS)�BaseTestcCst�|j�dSr�r�unlink�filenamerrrr�setUp1szBaseTest.setUpcCst�|j�dSrrrrrr�tearDown4szBaseTest.tearDownN)rrrr�TESTFNrrrrrrrr.src@sreZdZd[dd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zee
dd�dd��Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Zd:d;�Z d<d=�Z!d>d?�Z"d@dA�Z#dBdC�Z$dDdE�Z%dFdG�Z&dHdI�Z'dJdK�Z(dLdM�Z)dNdO�Z*dPdQ�Z+dRdS�Z,dTdU�Z-dVdW�Z.dXdY�Z/dZS)\�TestGzip�bc	Csrt|�}t�|jd|��}|�|�}W5QRX|�|t|��t�|jd|��}|�|��|�W5QRXdS)N�w�r)�bytesr	�GzipFiler�write�assertEqual�len�read)r
�data�modeZb_data�f�lrrr�write_and_read_back9szTestGzip.write_and_read_backc	Csdt�|jd��D}|�td�|��|��ttd�rFt�	|���|�
�W5QRX|�
�dS)N�wb�2�fsync)r	r&rr'�data1�flush�fileno�hasattr�osr2�close�r
r-rrr�
test_writeAs
zTestGzip.test_writec	Cs�t�|j�}t�|d��}|�td�W5QRX|�|jt	�t�|d��}|�t�W5QRXt�|��}|�
�}W5QRX|�|td�|�|jt	�dS)Nr#r1�a�3)�pathlib�Pathrr	r&r'r3ZassertIsInstance�name�strr*r()r
rr-�drrr�"test_write_read_with_pathlike_fileOsz+TestGzip.test_write_read_with_pathlike_filecCsD|�ttd��tttd���}|jddddgd�}|�|�dS)Nr1��B��)�shape)r/�
memoryviewr3r%�range�cast)r
�mr+rrr�test_write_memoryview^szTestGzip.test_write_memoryviewcCs|�ttd��dS)Nr1)r/�	bytearrayr3rrrr�test_write_bytearraydszTestGzip.test_write_bytearraycCs|�t�dtd��dS)N�I�()r/�arrayr3rrrr�test_write_arraygszTestGzip.test_write_arrayc
Cs�t�|jd��P}|�t��|�d�W5QRX|�t��|�g�W5QRX|�t�W5QRXt�|jd��}|�|��t�W5QRXdS)Nr0��rb)	r	r&r�assertRaises�	TypeErrorr'r3r(r*r9rrr�test_write_incompatible_typejsz%TestGzip.test_write_incompatible_typec	Cs>|��t�|jd��}|��}W5QRX|�|td�dS)Nr$r1)r:r	r&rr*r(r3�r
r-rArrr�	test_readwszTestGzip.test_readc	Csz|��g}d}t�|jd��<}|��}|s.qV|�|�|t|�7}|�|��|�q W5QRX|�d�	|�t
d�dS)Nrr$�r1)r:r	r&r�read1�appendr)r(r�joinr3)r
Zblocks�nreadr-rArrr�
test_read1~s
zTestGzip.test_read1�)�sizeZmemusecCs8tjtdd�}tjt�|�dd�}|�|�|�t�dS)Nr`�Z
compresslevelrT��fileobjr,)r	�compressr3r&r�BytesIOr(r*)r
ra�
compressedr-rrr�test_read_large�szTestGzip.test_read_largec	Cs|��t�|jd�}|j}|�|j�|��|�|j�|�	t
��|�d�W5QRX|�	t
��|�d�W5QRX|�	t
��|�
�W5QRXt�|jd�}|j}|�|j�|��|�|j�|�	t
��|�d�W5QRX|�	t
��|��W5QRXdS)Nr$r`rr#rZ)r:r	r&rrd�assertFalse�closedr8�
assertTruerU�
ValueErrorr*rrr'r4)r
r-rdrrr�test_io_on_closed_object�s*z!TestGzip.test_io_on_closed_objectc	Csn|��t�|jd��}|�td�W5QRXt�|jd��}|��}W5QRX|�|tdtd�dS)N�ab�rTr1)	r:r	r&rr'�data2r*r(r3rXrrr�test_append�szTestGzip.test_appendc
Cs�t�|jdd��}|�d�W5QRXtdd�D]*}t�|jdd��}|�d�W5QRXq0t�|jd��$}d}|�d	�}||7}|spq�qpW5QRX|�|d
�dS)Nr0�	�ar��rnrTrZi s�aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)r	r&rr'rIr*r()r
r-�iZzgfile�contentsZztxtrrr�test_many_append�s
zTestGzip.test_many_appendc	Cs~t�|jd��}|�td�W5QRXt�|jd��}|�|��td�W5QRX|�t��t�|jd�W5QRXdS)N�xbr1rT)	r	r&rr'r3r(r*rU�FileExistsErrorr9rrr�test_exclusive_write�szTestGzip.test_exclusive_writec
Csb|��t�|jd��*}t�|��}dd�|D�}W5QRXW5QRX|�|dtjdd��dS)NrTcSsg|]}|�qSrr)�.0�linerrr�
<listcomp>�sz1TestGzip.test_buffered_reader.<locals>.<listcomp>r1T��keepends)	r:r	r&rr�BufferedReaderr(r3�
splitlines)r
r-r$�linesrrr�test_buffered_reader�s
"zTestGzip.test_buffered_readerc	Csb|��t�|jd��B}d}|�|�}|s4|dkr4qT|�t|�|k�|dd}qW5QRXdS)NrTrr`r1)r:r	r&r�readlinerkr))r
r-Zline_length�Lrrr�
test_readline�s
zTestGzip.test_readlinec	Cs^|��t�|jd��}|��}W5QRXt�|jd��}|�d�}|gkr:qPq:W5QRXdS)NrT�)r:r	r&r�	readlines)r
r-r�rrr�test_readlines�s
zTestGzip.test_readlinesc	Cs�|��t�|j��r}|��}|��}|s,q�|��}|�|�t|�dkrPd}nt|�}|�|�}|�	|d|�|�|�|�qW5QRXdS)N�
)
r:r	r&rrr�rr)r*r()r
r-ZoldposZline1ZnewposZamountZline2rrr�test_seek_read�s

zTestGzip.test_seek_readc	CsZ|��t�|j��(}|�d�|jddd�|�d�}W5QRX|�|tdd��dS)Nr�r`)�whence��)r:r	r&rr*rr(r3)r
r-�yrrr�test_seek_whences
zTestGzip.test_seek_whencec	CsDt�|jd��,}tddd�D]}|�|�|�d�qW5QRXdS)Nr#rrC�sGZ
)r	r&rrIrr')r
r-�posrrr�test_seek_writes
zTestGzip.test_seek_writec	Csl|��t�|jd��}|�|jjd�W5QRXt�|j�t�|jd��}|�|jjd�W5QRXdS)Nr$rT�xrx)	r:r	r&rr(Z	myfileobjr,rrr9rrr�	test_modeszTestGzip.test_modec
CsHdD]>}t�|j|��&}|�t|d��|�|j|j�W5QRXqdS)N)r0rTr?)r	r&rrkr6r(r?)r
r,r-rrr�test_1647484%szTestGzip.test_1647484c	CsJ|��t�|jd��*}|�t|jd��|�|jj|j�W5QRXdS)NrTr?)	r:r	r&rrkr6rdr(r?r9rrr�test_paddedfile_getattr+sz TestGzip.test_paddedfile_getattrc	Cs�d}tj|jd|d��}|�t�W5QRXt�|j��D}|�t|d��|�|j�|�	�}|�
|t�|�
|j|�W5QRXdS)N��[r#��mtimer�)r	r&rr'r3rkr6ZassertIsNoner�r*r()r
r��fWrite�fReadZdataReadrrr�
test_mtime1szTestGzip.test_mtimec	CsPd}tj|jd|d��}|�t�W5QRXt|jd���}|�d�}|�|d�|�d�}|�|d�|�d�}|�|d�|�d	�}|�|t�	d
|��|�d�}|�|d�|�d�}	|�|	d�|j�
d
�d}
|�t|
��}|�||
�|�t
�|j�jd�|�d	�}|�|d�|�d	�}
|�|
t�	d
tt���W5QRXdS)Nr�r#r�rT���r`�rFz<i���zLatin-1�rEs��d�)r	r&rr'r3�openr*r(�structZpack�encoder)rr7�stat�st_size)r
r�r�r�ZidBytesZcmByteZ	flagsByteZ
mtimeBytes�xflByteZosByteZexpectedZ	nameBytesZ
crc32BytesZ
isizeBytesrrr�
test_metadata<s0







zTestGzip.test_metadatac	Cs�dddg}d}|D]�\}}}|�|��jtj|jd|d�}|�|�t�W5QRXt|jd��&}|�|�|�d�}|�	||�W5QRXW5QRXqdS)	N)Zfastr`�)Zbestrrr�)Ztradeoff�r�rEr#rbrTr`)
�subTestr	r&rr'r3r�rr*r()	r
ZcasesZ	xflOffsetr?�levelZexpectedXflByter�r�r�rrr�test_compresslevel_metadatais�

z$TestGzip.test_compresslevel_metadatac	Cs�t�|jd��}|�d�W5QRXt�|jd�}|��z|�W5QRXWntk
rbYnX|�d�z&t�|jd��}ddW5QRXWntk
r�YnX|�d�dS)Nr0sxxxrTz4__enter__ on a closed file didn't raise an exceptionr`rz1/0 didn't raise an exception)r	r&rr'r8rlZfail�ZeroDivisionErrorr9rrr�test_with_open}s 
zTestGzip.test_with_openc	Cs�t�|jd��}|�td�W5QRXt|jd��}|�d�W5QRXt�|jd�� }|��}|�|tdd�W5QRXdS)Nr0r1rns2rTzIncorrect data in file)r	r&rr'r3r�r*r(rXrrr�test_zero_padded_file�szTestGzip.test_zero_padded_filecCs|�ttjt��dSr)rk�
issubclassr	�BadGzipFile�OSErrorrrrr�test_gzip_BadGzipFile_exception�sz(TestGzip.test_gzip_BadGzipFile_exceptionc	CsTt|jd��}|�td�W5QRXt�|jd��}|�tj|j�W5QRXdS)Nr0r1r$)	r�rr'r3r	r&rUr�r�)r
�filerrr�test_bad_gzip_file�szTestGzip.test_bad_gzip_filec	Csptd}t�}tj|dd��}|�|�W5QRX|��}t|�}tj|dd��}|�|��|�W5QRXdS)Nr1r0rcrT)r3r
r	r&r'�getvaluer(r*)r
�uncompressed�bufr-rgrrr�test_non_seekable_file�szTestGzip.test_non_seekable_filec	Cs�td}t�|jd��}|�|�W5QRXdd�}t�|jd��v}d|_d}|�D]<}|�|�}|dkrnq�|�|�t	|��|�|t	|�7}qT|�|�d	�d�|�|t	|��W5QRXdS)
Nrtr0csstddd�D]
}|VqqdS)N�r1r�)rI)�nrrr�sizes�sz!TestGzip.test_peek.<locals>.sizesrT�!rrZ�d)
r3r	r&rr'Zmax_read_chunk�peekr(r*r))r
r�r-r�r^r��srrr�	test_peek�s

zTestGzip.test_peekc
Csftd�d�jdd�}|��t�|jd��0}tj|dd��}|�	|�
�|�W5QRXW5QRXdS)Nr1�asciiTr~r$��encoding)r3�decoder�r:r	r&rr�
TextIOWrapperr(r�)r
r�r-�trrr�test_textio_readlines�s
zTestGzip.test_textio_readlinesc
CsLt�|jtjtjB�}t�|d�� }tj|dd��}W5QRXW5QRXdS)Nr0r#rc)r7r�r�O_WRONLY�O_CREAT�fdopenr	r&)r
�fdr-�grrr�test_fileobj_from_fdopen�sz!TestGzip.test_fileobj_from_fdopencCs�t�|jd���t|jd���}tj|dd��}|�|jtj�W5QRXtj|dd��}|�|jtj�W5QRXtj|dd��}|�|jtj�W5QRXtj|dd��}|�|jtj�W5QRX|�	t
��tj|dd�W5QRXW5QRXd	D]D}t|j|��.}tj|d
��}|�|jtj�W5QRXW5QRXq�dD]\}d|k�r^t�|j�t|j|��.}tj|d
��}|�|jtj�W5QRXW5QRX�qDdS)Nr0�r+br$rcr#r;r��z)rTr��rd)r0rnrx)
r	r&rr8r�r(r,ZREADZWRITErUrlrr)r
r-r�r,rrr�test_fileobj_mode�s,"&
zTestGzip.test_fileobj_modec	Cs�|j}z|�d�}Wntk
r2|�d�YnXt�|d��}|�td�W5QRXt�|d��}|�|�	�td�W5QRXt�|d��}|�|�	�td�W5QRXdS)Nr�z%Temporary file name needs to be ASCIIr0r1rT)
rr��UnicodeEncodeErrorZskipTestr	r&r'r3r(r*)r
Zstr_filenameZbytes_filenamer-rrr�test_bytes_filename�szTestGzip.test_bytes_filenamecCsttjdtd�dd�}|�t|�tj�t�|�}tj|d�}|�	|�
d�d�dtj}|�|jj
��|d�dS)Nr�g��>Arrrbr�r`z)Excessive amount of data was decompressed)r	re�intZ
assertLessr)r�DEFAULT_BUFFER_SIZErfr&r(r*ZassertLessEqual�_buffer�rawr)r
ZbombZdecompZ
max_decomprrr�test_decompress_limited�s

�z TestGzip.test_decompress_limitedcCslttfD]^}dD]T}tj|f|��}|�t|�t�tjt�	|�dd��}|�|�
�|�W5QRXqqdS)N�r)r`)r�)rrrTrc)r3rpr	rer(�typer%r&rrfr*)r
r+r�datacr-rrr�
test_compressszTestGzip.test_compresscCs�d}ttfD]�}dD]|}|j||d��dtj|f|�d|i�}|�t|�t�tjt	�
|�dd��}|�d�|�|j|�W5QRXW5QRXqqdS)Nr�r�)r+rr�rTrcr`)
r3rpr�r	rer(r�r%r&rrfr*r�)r
r�r+rr�r-rrr�test_compress_mtimes
zTestGzip.test_compress_mtimec
CspttfD]b}t��}tj|dd��}|�|�W5QRX|�t�|�	��|�t�
|�}|�t�|�|�qdS)Nr0rc)r3rprrfr	r&r'r(�
decompressr�re)r
r+r�r-r�rrr�test_decompresss
zTestGzip.test_decompressc
Cs�td}t�|�dd�}tjt�|�d��}|�t|j�W5QRXtjt�|�d��,}|�	|�t
|��|�|�t|jd�W5QRXtdd�D]:}tjt�|d|��d��}|�t|jd�W5QRXq�dS)Nr1i����r�r`r�r�)r3r	rer&rrfrU�EOFErrorr*r(r)rI)r
r+Z	truncatedr-rurrr�test_read_truncated(szTestGzip.test_read_truncatedc	Cs6d}tjt�|�d��}|�|��d�W5QRXdS)Ns��cQ�ExtraI-.2�Mxr�sTest)r	r&rrfr(r*)r
Zgzdatar-rrr�test_read_with_extra6szTestGzip.test_read_with_extrac	CsPt�|jd��}|�t�W5QRXt�|jd��}|jjj��W5QRXdS)Nr0rT)	r	r�rr'r3r�r�Z_fpZprependr9rrr�test_prepend_error>szTestGzip.test_prepend_errorN)r")0rrrr/r:rBrLrNrRrWrYr_rrrhrmrqrwrzr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr!8sX





-

r!c@sTeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�TestOpenc	Csltd}t�|jd��}|�|�W5QRXt|jd�� }t�|���}|�||�W5QRXt�|jd��}|�|��|�W5QRXt�|jd��}|�|�W5QRXt|jd��$}t�|���}|�||d�W5QRX|�t	��t�|jd�W5QRXt
�|j�t�|jd��}|�|�W5QRXt|jd�� }t�|���}|�||�W5QRXdS)Nr1r0rTrnr�rx�r3r	r�rr'r�r*r(rUryrr�r
r�r-�	file_datarrr�test_binary_modesFs*zTestOpen.test_binary_modesc	Cs�t�|j�}t�|d��}|�td�W5QRXt�|d��}|�t�W5QRXt�|��}|�|��td�W5QRXdS)Nr0r1rnr<)	r=r>rr	r�r'r3r(r*)r
rr-rrr�test_pathlike_fileaszTestOpen.test_pathlike_filec	Csltd}t�|jd��}|�|�W5QRXt|jd�� }t�|���}|�||�W5QRXt�|jd��}|�|��|�W5QRXt�|jd��}|�|�W5QRXt|jd��$}t�|���}|�||d�W5QRX|�t	��t�|jd�W5QRXt
�|j�t�|jd��}|�|�W5QRXt|jd�� }t�|���}|�||�W5QRXdS)Nr1r#rTr$r;r�r�r�r�rrr�test_implicit_binary_modesjs*z#TestOpen.test_implicit_binary_modesc	Cst�d�d}|�dtj�}t�|jd��}|�|�W5QRXt|jd��&}t�	|�
���d�}|�||�W5QRXt�|jd��}|�|�
�|�W5QRXt�|jd��}|�|�W5QRXt|jd��*}t�	|�
���d�}|�||d�W5QRXdS)	Nr�r1�
�wtrT�rtZatr��r3r��replacer7�linesepr	r�rr'r�r*r(�r
r�Zuncompressed_rawr-r�rrr�test_text_modes�szTestOpen.test_text_modesc	Cs�td}|�d�}t�|�}t�t�|�d��}|�|��|�W5QRXt�t�|�d��}|�|��|�W5QRXt�t�|�d��}|�|��|�W5QRXdS)Nr1r�r$rTr�)	r3r�r	rer�rrfr(r*)r
Zuncompressed_bytesZuncompressed_strrgr-rrr�test_fileobj�s

zTestOpen.test_fileobjc	Cs�|�t��t�d�W5QRX|�t��t�|jd�W5QRX|�t��t�|jd�W5QRX|�t��tj|jddd�W5QRX|�t��tj|jddd�W5QRX|�t��tj|jdd	d
�W5QRXdS)Ngw��/�^@ZwbtZxbtrTzutf-8r��ignore)�errorsr���newline)rUrVr	r�rlrrrrr�test_bad_params�szTestOpen.test_bad_paramsc	Cs�t�d�d}|�dtj�}tj|jddd��}|�|�W5QRXt|jd��&}t�	|�
���d�}|�||�W5QRXtj|jddd��}|�|�
�|�W5QRXdS)	Nr�r1r�r�zutf-16r�rTr�r�r�rrr�
test_encoding�szTestOpen.test_encodingc	CsXt�|jd��}|�d�W5QRXtj|jdddd��}|�|��d�W5QRXdS)Nr0sfoo�barr�r�r�)r�r�Zfoobar)r	r�rr'r(r*r9rrr�test_encoding_error_handler�s
z$TestOpen.test_encoding_error_handlerc	Csjt�d�d}tj|jddd��}|�|�W5QRXtj|jddd��}|�|��|g�W5QRXdS)Nr�r1r�r�r�r��
)r3r�r	r�rr'r(r�)r
r�r-rrr�test_newline�s
zTestOpen.test_newlineN)rrrr�r�r�r�r�r�r�r�rrrrrr�Es	r�cs�fdd�}|S)Ncst�����fdd��}|S)Nc	s*t���z�||�W�St���XdSr)r7�makedirsrZrmtree)r�kwargs)�	directory�functionrr�wrapper�s
z?create_and_remove_directory.<locals>.decorator.<locals>.wrapper)�	functools�wraps)rr�r)rr�	decorator�sz.create_and_remove_directory.<locals>.decoratorr)rr	rrr�create_and_remove_directory�s	r
c@speZdZdZdd�Zee�dd��Zdd�Zee�dd	��Z	ee�d
d��Z
ee�dd
��Zdd�Zdd�Z
dS)�TestCommandLinesThis is a simple test with gzipc
Cs�t���h}tj|dd��}|�|j�W5QRXtjdddf}t|t	t	t	d��}|�
|���\}}W5QRXW5QRX|�|d�|�||j�dS)Nr0rc�-mr	�-d��stdin�stdout�stderrrZ)
rrfr	r&r'r+�sys�
executablerr�communicater�r()r
Zbytes_ioZ	gzip_filer�proc�out�errrrr�test_decompress_stdin_stdout�s
&z,TestCommandLine.test_decompress_stdin_stdoutc	Cs�tj�td�}|�tj�|��tj|dd��}|�|j	�W5QRXt
ddd|�\}}}ttj�td�d��}|�|��|j	�W5QRX|�
tj�|��|�|d	�|�|d
�|�|d
�dS)Nztestgzip.gzr0)r,rr	r
�testgziprTrrZ)r7�pathr]�TEMPDIRri�existsr	r�r'r+rr(r*rk)r
�gzipname�fp�rcrrZgunzipedrrr�test_decompress_infile_outfile�sz.TestCommandLine.test_decompress_infile_outfilecCs@tdddd�\}}}|�d|���|�|d�|�|d�dS)Nrr	r
zthisisatest.outs.filename doesn't end in .gz: 'thisisatest.out'r`rZ)rr(�strip�r
rrrrrr�$test_decompress_infile_outfile_error�sz4TestCommandLine.test_decompress_infile_outfile_errorc	Cs\tjddf}t|tttd��}|�|j�\}}W5QRX|�|d�|�|dd�d�dS)Nrr	rrZr�r�)rrrrrr+r()r
rrrrrrr�test_compress_stdin_outfiles
z+TestCommandLine.test_compress_stdin_outfilec	Cs�tj�td�}|d}|�tj�|��t|d��}|�|j�W5QRXt	dd|�\}}}|�
tj�|��|�|d�|�|d�dS)Nr�.gzr0rr	rZ)r7rr]rrirr�r'r+rrkr()r
�local_testgziprrrrrrrr�$test_compress_infile_outfile_default	sz4TestCommandLine.test_compress_infile_outfile_defaultcCs�dD]�}|j|d���tj�td�}|d}|�tj�|��t|d��}|�|j	�W5QRXt
dd||�\}}}|�tj�|��|�|d�|�|d�t�
|�|�tj�|��W5QRXqdS)	N)�--fast�--best)�compress_levelrr%r0rr	rZ)r�r7rr]rrirr�r'r+rrkr(�remove)r
r*r&rrrrrrrr�test_compress_infile_outfiles
z,TestCommandLine.test_compress_infile_outfilecCs0tdddd�\}}}|�d|�|�|d�dS)Nrr	r(r)s8error: argument --best: not allowed with argument --fastrZ�rZassertInr(r"rrr�%test_compress_fast_best_are_exclusive+sz5TestCommandLine.test_compress_fast_best_are_exclusivecCs0tdddd�\}}}|�d|�|�|d�dS)Nrr	r(r
sAerror: argument -d/--decompress: not allowed with argument --fastrZr-r"rrr�-test_decompress_cannot_have_flags_compression0sz=TestCommandLine.test_decompress_cannot_have_flags_compressionN)rrrr+rr
rr r#r$r'r,r.r/rrrrr�s



rcCst�ttt�dSr)rZrun_unittestr!r�r��verboserrr�	test_main6sr2�__main__Tr0)N)%rQrrr7r=r�rZunittest�
subprocessrrZtestrZtest.supportrrZtest.support.script_helperrr�
import_moduler	r3rpr�abspathr rrfr
ZTestCaserr!r�r
rr2rrrrr�<module>s:

	
\