Your IP : 216.73.216.213


Current Path : /opt/alt/python36/lib64/python3.6/test/__pycache__/
Upload File :
Current File : //opt/alt/python36/lib64/python3.6/test/__pycache__/test_bz2.cpython-36.opt-2.pyc

3

��2ap��@s^ddlmZddlmZmZddlZddlmZmZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlmZddlZddlZyddlZWnek
r�dZYnXejd�ZddlmZmZmZdadd	�ZGd
d�dej�ZGdd
�d
e�ZGdd�de�ZGdd�de�Z Gdd�de�Z!Gdd�de�Z"dd�Z#e$dk�rZe#�dS)�)�support)�
bigmemtest�_4GN)�BytesIO�DEFAULT_BUFFER_SIZE)�unlink�bz2)�BZ2File�
BZ2Compressor�BZ2DecompressorcCs8tdkrttjd��atr*tjdg|d�Stj|�SdS)NZbunzip2)�input)�has_cmdline_bunzip2�bool�shutilZwhich�
subprocessZcheck_outputr�
decompress)�data�r�-/opt/alt/python36/lib64/python3.6/test_bz2.py�ext_decompresss
rc@s�eZdZddddddddd	d
ddd
ddddddddgZdje�ZdZdZdZdZ	e
d&�Zx^eje
jje
jje�d��D]>Zeed�� Ze	ejee�e	d��7Z	WdQRXe	d'krvPqvWejed d!�Zd"d#�Zd$d%�ZdS)(�BaseTests root:x:0:0:root:/root:/bin/bash
sbin:x:1:1:bin:/bin:
sdaemon:x:2:2:daemon:/sbin:
sadm:x:3:4:adm:/var/adm:
slp:x:4:7:lp:/var/spool/lpd:
s sync:x:5:0:sync:/sbin:/bin/sync
s-shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
s!halt:x:7:0:halt:/sbin:/sbin/halt
s"mail:x:8:12:mail:/var/spool/mail:
s"news:x:9:13:news:/var/spool/news:
s#uucp:x:10:14:uucp:/var/spool/uucp:
s operator:x:11:0:operator:/root:
s!games:x:12:100:games:/usr/games:
s,gopher:x:13:30:gopher:/usr/lib/gopher-data:
s(ftp:x:14:50:FTP User:/var/ftp:/bin/bash
s#nobody:x:65534:65534:Nobody:/home:
s.postfix:x:100:101:postfix:/var/spool/postfix:
s-niemeyer:x:500:500::/home/niemeyer:/bin/bash
s>postgres:x:101:102:PostgreSQL Server:/var/lib/pgsql:/bin/bash
s6mysql:x:102:103:MySQL server:/var/lib/mysql:/bin/bash
s#www:x:103:104::/var/www:/bin/false
�s�BZh91AY&SY.�N>_�@��n?��0���F��#&�F��Ц�MQ���4hh$�i4�4S�<Q�H���Շ���
��I��/Epu�]ɻDL
Q	1ߠ���2O9��7d�I�J�L#����/��#C��W����M��Xa<e�t�L�����˄.�����`n}�lh	E,�ZVH>���9gd6
�Պ��.K�v��xw�ߡ���|/";���ձ#A���o��y\�O煚��f8�2��"%�>V,��z⟣�"�E)I�^��r�U�2�6���U��0��^��DF����ݸ����ankR���3]���f��"6l$�j@���l1..�k�ls����E��
��k��n��Q�%y�v��z��̹zn7.G�]��B@�!8`sBZh9rE8P�sthis is not a valid bzip2 filer�iz*.py�rbN�)�
compresslevelcCstj|_dS)N)rZTESTFN�filename)�selfrrr�setUpRszBaseTest.setUpcCstjj|j�rtj|j�dS)N)�os�path�isfilerr)rrrr�tearDownUszBaseTest.tearDownii)�__name__�
__module__�__qualname__�
TEXT_LINES�join�TEXT�DATA�
EMPTY_DATA�BAD_DATAZ	test_size�	bytearray�BIG_TEXT�globrr �dirname�__file__Zfname�openZfh�readinto�
memoryviewr�compress�BIG_DATArr"rrrrr&sF
"$rc@s�eZdZd}dd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�Zd=d>�Z d?d@�Z!dAdB�Z"dCdD�Z#dEdF�Z$dGdH�Z%dIdJ�Z&dKdL�Z'dMdN�Z(dOdP�Z)dQdR�Z*dSdT�Z+dUdV�Z,dWdX�Z-dYdZ�Z.d[d\�Z/d]d^�Z0d_d`�Z1e2j3e4da�dbdc��Z5ddde�Z6dfdg�Z7dhdi�Z8djdk�Z9dldm�Z:dndo�Z;dpdq�Z<drds�Z=dtdu�Z>dvdw�Z?dxdy�Z@dzd{�ZAd|S)~�BZ2FileTestrrc
Cs6t|jd�� }|j|j|�|j|�WdQRXdS)N�wb)r1r�writer))r�streams�suffix�frrr�createTempFile]szBZ2FileTest.createTempFilecCsp|jttd�|jtttjd�|jtttjd�|jtttjd�|jtttjdd�|jtttjdd�dS)Ngw��/�^@�z�rxZrbtr)r�
)�assertRaises�	TypeErrorr	�
ValueErrorr�devnull)rrrr�testBadArgsbszBZ2FileTest.testBadArgscCsF|j�t|j��*}|jt|jt��|j|j�|j�WdQRXdS)N)	r<r	rr@rA�read�float�assertEqualr()r�bz2frrr�testReadjszBZ2FileTest.testReadc
Cs8|jd|jd�t|j��}|jt|j�WdQRXdS)Nr)r9r:)r<r+r	rr@�OSErrorrE)rrHrrr�testReadBadFilepszBZ2FileTest.testReadBadFilecCsN|jdd�t|j��.}|jt|jt��|j|j�|jd�WdQRXdS)N�)r9)	r<r	rr@rArErFrGr()rrHrrr�testReadMultiStreamuszBZ2FileTest.testReadMultiStreamcCsntj}t|j�t_zN|jdd�t|j��.}|jt|j	t
��|j|j	�|jd�WdQRXWd|t_XdS)NrL)r9)
�_compression�BUFFER_SIZE�lenr)r<r	rr@rArErFrGr()r�buffer_sizerHrrr�testReadMonkeyMultiStream{s$z%BZ2FileTest.testReadMonkeyMultiStreamc
Cs:|j|jd�t|j��}|j|j�|j�WdQRXdS)N)r:)r<r+r	rrGrEr()rrHrrr�testReadTrailingJunk�sz BZ2FileTest.testReadTrailingJunkcCs@|jd|jd�t|j��}|j|j�|jd�WdQRXdS)NrL)r9r:)r<r+r	rrGrEr()rrHrrr�testReadMultiStreamTrailingJunk�sz+BZ2FileTest.testReadMultiStreamTrailingJunkcCsF|j�t|j��*}|jt|jt��|j|jd�d�WdQRXdS)Nrr)r<r	rr@rArErFrG)rrHrrr�	testRead0�szBZ2FileTest.testRead0c
CsR|j�t|j��6}d}x|jd�}|s*P||7}qW|j||j�WdQRXdS)Nrr?)r<r	rrErGr()rrH�text�strrrr�testReadChunk10�s
zBZ2FileTest.testReadChunk10cCsZ|jdd�t|j��:}d}x|jd�}|s.P||7}qW|j||jd�WdQRXdS)NrL)r9rr?)r<r	rrErGr()rrHrVrWrrr�testReadChunk10MultiStream�s
z&BZ2FileTest.testReadChunk10MultiStreamcCs>|j�t|j��"}|j|jd�|jdd��WdQRXdS)N�d)r<r	rrGrEr()rrHrrr�testRead100�szBZ2FileTest.testRead100c
Cs^|j�t|j��B}|j�}|jt|�d�|j|jj|��|j	|j
�|j�WdQRXdS)Nr)r<r	r�peek�assertNotEqualrP�
assertTruer(�
startswithrGrE)rrH�pdatarrr�testPeek�szBZ2FileTest.testPeekcCs�|j�t|j���}d}t|�}|j|j|�|�|j||jd|��t|j�|}tt|j��}|j|j|�|�|j|d|�|j|d��WdQRXdS)Nr)r<r	rr,rGr2r(rP)rrH�n�brrr�testReadInto�szBZ2FileTest.testReadIntocCsR|j�t|j��6}|jt|jd�x|jD]}|j|j�|�q,WWdQRXdS)N)r<r	rr@rA�readliner&rG)rrH�linerrr�testReadLine�s
zBZ2FileTest.testReadLinecCsZ|jdd�t|j��:}|jt|jd�x"|jdD]}|j|j�|�q4WWdQRXdS)NrL)r9)r<r	rr@rArer&rG)rrHrfrrr�testReadLineMultiStream�s
z#BZ2FileTest.testReadLineMultiStreamcCsD|j�t|j��(}|jt|jd�|j|j�|j�WdQRXdS)N)r<r	rr@rA�	readlinesrGr&)rrHrrr�
testReadLines�szBZ2FileTest.testReadLinescCsL|jdd�t|j��,}|jt|jd�|j|j�|jd�WdQRXdS)NrL)r9)r<r	rr@rArirGr&)rrHrrr�testReadLinesMultiStream�sz$BZ2FileTest.testReadLinesMultiStreamcCs8|j�t|j��}|jtt|��|j�WdQRXdS)N)r<r	rrG�list�iterr&)rrHrrr�testIterator�szBZ2FileTest.testIteratorcCs@|jdd�t|j�� }|jtt|��|jd�WdQRXdS)NrL)r9)r<r	rrGrlrmr&)rrHrrr�testIteratorMultiStream�sz#BZ2FileTest.testIteratorMultiStreamcCs:|j�t|j�}|j�|jtt|�|jt|j�dS)N)r<r	r�closer@rB�nextri)rrHrrr�testClosedIteratorDeadlock�s

z&BZ2FileTest.testClosedIteratorDeadlockcCsdt|jd�� }|jt|j�|j|j�WdQRXt|jd��}|jt|j	��|j�WdQRXdS)N�wr)
r	rr@rAr8r(r1rGrrE)rrHr;rrr�	testWrite�s
zBZ2FileTest.testWritecCs�t|jd��B}d}x6|j|d|dd�}|s4P|j|�|d7}qWWdQRXt|jd��}|jt|j��|j�WdQRXdS)Nrsrr?rr)r	rr(r8r1rGrrE)rrHrbrWr;rrr�testWriteChunks10�s
zBZ2FileTest.testWriteChunks10cCsdtj|jdd�}t|jddd��}|j|j�WdQRXt|jd��}|j|j�|�WdQRXdS)NrL)rrsr)	rr4r(r	rr8r1rGrE)rZexpectedrHr;rrr� testWriteNonDefaultCompressLevels
z,BZ2FileTest.testWriteNonDefaultCompressLevelcCsvt|jd�� }|jt|j�|j|j�WdQRX|jt|jdg�t|jd��}|jt	|j
��|j�WdQRXdS)Nrs�ar)r	rr@rA�
writelinesr&rBr1rGrrEr()rrHr;rrr�testWriteLinesszBZ2FileTest.testWriteLinescCs`t|jd��}|jd�WdQRXt|jd��(}|jt|jd�|jt|jdg�WdQRXdS)Nrssabc�r�a)r	rr8r@rJrx)rrHrrr�testWriteMethodsOnReadOnlyFiles
z*BZ2FileTest.testWriteMethodsOnReadOnlyFilecCs�t|jd�� }|jt|j�|j|j�WdQRXt|jd�� }|jt|j�|j|j�WdQRXt|jd�� }|jt|j	��|jd�WdQRXdS)Nrsrwr�)
r	rr@rAr8r(r1rGrrE)rrHr;rrr�
testAppend szBZ2FileTest.testAppendcCsT|j�t|j��8}|jt|j�|jd�|j|j�|jdd��WdQRXdS)N�)	r<r	rr@rA�seekrGrEr()rrHrrr�testSeekForward*s

zBZ2FileTest.testSeekForwardcCsb|jdd�t|j��B}|jt|j�|jt|j�d�|j|j	�|jdd��WdQRXdS)Nr})r9r)
r<r	rr@rAr�rPr(rGrE)rrHrrr�testSeekForwardAcrossStreams1s
z(BZ2FileTest.testSeekForwardAcrossStreamscCsR|j�t|j��6}|jd�|jdd�|j|j�|jdd��WdQRXdS)Ni�rrij���i^)r<r	rrEr�rGr()rrHrrr�testSeekBackwards8s

zBZ2FileTest.testSeekBackwardscCs�|jdd�t|j��`}t|j�d}x|dkrD|t|j|��8}q(W|jdd�|j|j�|jdd�|j�WdQRXdS)	Nr})r9rZrrrij���i���)r<r	rrPr(rEr�rG)rrHZreadtorrr�testSeekBackwardsAcrossStreams?s
z*BZ2FileTest.testSeekBackwardsAcrossStreamscCsR|j�t|j��6}|jdd�|j|j�|jt|j�dd��WdQRXdS)Nrr}ij���)r<r	rr�rGrEr(rP)rrHrrr�testSeekBackwardsFromEndHsz$BZ2FileTest.testSeekBackwardsFromEndcCsP|jdd�t|j��0}|jdd�|j|j�|jddd��WdQRXdS)Nr})r9i�i���i���)r<r	rr�rGrEr()rrHrrr�%testSeekBackwardsFromEndAcrossStreamsNsz1BZ2FileTest.testSeekBackwardsFromEndAcrossStreamscCsR|j�t|j��6}|jd�|j|j�t|j��|j|j�d�WdQRXdS)Ni�Ir)	r<r	rr�rG�tellrPr(rE)rrHrrr�testSeekPostEndTs

zBZ2FileTest.testSeekPostEndcCsZ|jdd�t|j��:}|jd�|j|j�t|j�d�|j|j�d�WdQRXdS)NrL)r9i�Ir)	r<r	rr�rGr�rPr(rE)rrHrrr�testSeekPostEndMultiStream[s

z&BZ2FileTest.testSeekPostEndMultiStreamcCs\|j�t|j��@}|jd�|jd�|j|j�t|j��|j|j�d�WdQRXdS)Ni�Ir)	r<r	rr�rGr�rPr(rE)rrHrrr�testSeekPostEndTwicebs

z BZ2FileTest.testSeekPostEndTwicecCsd|jdd�t|j��D}|jd�|jd�|j|j�t|j�d�|j|j�d�WdQRXdS)NrL)r9i�Ir)	r<r	rr�rGr�rPr(rE)rrHrrr�testSeekPostEndTwiceMultiStreamjs

z+BZ2FileTest.testSeekPostEndTwiceMultiStreamc
CsN|j�t|j��2}|jd�|j|j�d�|j|j�|j�WdQRXdS)Nrrij���)r<r	rr�rGr�rEr()rrHrrr�testSeekPreStartrs

zBZ2FileTest.testSeekPreStartcCsV|jdd�t|j��6}|jd�|j|j�d�|j|j�|jd�WdQRXdS)Nr})r9rrij���)r<r	rr�rGr�rEr()rrHrrr�testSeekPreStartMultiStreamys

z'BZ2FileTest.testSeekPreStartMultiStreamcCs^|j�t|jd��2}t|�}z|j|j�|j��Wd|j�XWdQRX|jt|j�dS)Nr)	r<r1rr	rG�filenorpr@rB)rZrawfrHrrr�
testFileno�szBZ2FileTest.testFilenocCs�tt|j��}z(|j|j��|j�|j|j��Wd|j�X|jt|j�tt�d�}z|j	|j��Wd|j�X|jt|j�t|j�}dd�|_t|�}z|j	|j��Wd|j�X|jt|j�dS)NrscSsdS)NFrrrrr�<lambda>�sz*BZ2FileTest.testSeekable.<locals>.<lambda>)
r	rr)r^�seekablerErpr@rB�assertFalse)rrH�srcrrr�testSeekable�s&




zBZ2FileTest.testSeekablecCs�tt|j��}z(|j|j��|j�|j|j��Wd|j�X|jt|j�tt�d�}z|j	|j��Wd|j�X|jt|j�dS)Nrs)
r	rr)r^�readablerErpr@rBr�)rrHrrr�testReadable�s

zBZ2FileTest.testReadablecCs�tt|j��}z(|j|j��|j�|j|j��Wd|j�X|jt|j�tt�d�}z|j	|j��Wd|j�X|jt|j�dS)Nrs)
r	rr)r��writablerErpr@rBr^)rrHrrr�testWritable�s

zBZ2FileTest.testWritablecCs*|j�xtd�D]}t|j�}~qWdS)Ni')r<�ranger	r)r�i�orrr�testOpenDel�s
zBZ2FileTest.testOpenDelcCs|jttd�dS)Nz
/non/existent)r@rJr	)rrrr�testOpenNonexistent�szBZ2FileTest.testOpenNonexistentcCs�d}t|jd��}|j|�WdQRXt|j��}|j�}WdQRX|j|dg�t|j��}t|j��}WdQRX|j|dg�dS)Ns,BZh91AY&SY�b�]� !�h3M<]��BCe�%tr7sTest)r1rr8r	rirGrl)rrr;rH�linesZxlinesrrr�testReadlinesNoNewline�sz"BZ2FileTest.testReadlinesNoNewlinec#Cs�d}t|jd��}|jd�WdQRXt|jd�}|j�y|�WdQRXWntk
rbYnX|jd�y$t|jd��}ddWdQRXWntk
r�YnX|jd�dS)Nr7sxxxrz4__enter__ on a closed file didn't raise an exceptionrrz1/0 didn't raise an exception)r	rr8rprBZfail�ZeroDivisionError)rr;rrr�testContextProtocol�s"
zBZ2FileTest.testContextProtocolz!Threading required for this test.csbdd
�d}t|jd��@���fdd���fdd	�t|�D�}tj|��WdQRXWdQRXdS)N�1r}�r?r7cs xtd�D]}�j��q
WdS)NrL)r�r8)r�)rr;rr�comp�sz'BZ2FileTest.testThreading.<locals>.compcsg|]}tj�d��qS))�target)�	threadingZThread)�.0r�)r�rr�
<listcomp>�sz-BZ2FileTest.testThreading.<locals>.<listcomp>i)r	rr�rZ
start_threads)rZnthreadsZthreadsr)r�rr;r�
testThreading�szBZ2FileTest.testThreadingcCs`tjddd�}|j|jd��}|jd�WdQRX|j|jd��}|j|j�d�WdQRXdS)Nrr�)Zblockedr7sabcr)r�)rZimport_fresh_moduler	rr8rGrE)r�moduler;rrr�testWithoutThreading�s
z BZ2FileTest.testWithoutThreadingcCs|j�t|jd�}|d}t|j��H}|j|�|jt|�|jd|d��|j|j�|j|d��WdQRXt|j��:}|j	�|jt|�|jd�|j|j	�|jd�WdQRXt|j��,}|j
�|jtt|�|j|j
�g�WdQRXdS)Nrr}r)
r<rPr&r	rrErGrqr(rerir@�
StopIteration)rZlinelenZhalflenrHrrr�testMixedIterationAndReadss
$ z&BZ2FileTest.testMixedIterationAndReadscCs�dd}dd}t|jd��}|j|�WdQRXt|jd��}|j|�WdQRXt|j��}|j|j�||�WdQRXdS)Nsfooi�sbarrsrw)r	rr8rGrE)rZdata1Zdata2rHrrr�testMultiStreamOrderingsz#BZ2FileTest.testMultiStreamOrderingc Cs�|j}y|jd�}Wntk
r2|jd�YnXt|d��}|j|j�WdQRXt|d��}|j|j�|j�WdQRXt|d��}|j|j�|j�WdQRXdS)N�asciiz%Temporary file name needs to be ASCIIr7r)	r�encode�UnicodeEncodeErrorZskipTestr	r8r)rGrE)rZstr_filenameZbytes_filenamer;rrr�testOpenBytesFilename sz!BZ2FileTest.testOpenBytesFilenamecCsZtj|j�}t|d��}|j|j�WdQRXt|d��}|j|j�|j�WdQRXdS)Nr7r)�pathlibZPathrr	r8r)rGrE)rrr;rrr�testOpenPathLikeFilename.s
z$BZ2FileTest.testOpenPathLikeFilenamecCshtjdtd�dd�}|jt|�tj�tt|��}|j	|j
d�d�dt}|j|j
jj�|d�dS)N�g��>A�	)rrz)Excessive amount of data was decompressed)rr4�intZ
assertLessrPrNrOr	rrGrEr�assertLessEqualZ_buffer�rawr�)rZbombZdecompZ
max_decomprrr�testDecompressLimited5sz!BZ2FileTest.testDecompressLimitedcCs^t|j��J}t|��*}|jt|jt��|j|j�|j�WdQRX|j	|j
�WdQRXdS)N)rr)r	r@rArErFrGr(r��closed)r�biorHrrr�testReadBytesIOCs

zBZ2FileTest.testReadBytesIOcCsjt|j��V}t|��B}|j�}|jt|�d�|j|jj|��|j	|j
�|j�WdQRXWdQRXdS)Nr)rr)r	r\r]rPr^r(r_rGrE)rr�rHr`rrr�testPeekBytesIOJs
zBZ2FileTest.testPeekBytesIOcCsht��X}t|d�� }|jt|j�|j|j�WdQRX|jt|j��|j�|j	|j
�WdQRXdS)Nrs)rr	r@rAr8r(rGr�getvaluer�r�)rr�rHrrr�testWriteBytesIORszBZ2FileTest.testWriteBytesIOcCs`t|j��L}t|��8}|jt|j�|jd�|j|j�|jdd��WdQRXWdQRXdS)Nr)	rr)r	r@rAr�rGrEr()rr�rHrrr�testSeekForwardBytesIOZs


z"BZ2FileTest.testSeekForwardBytesIOcCs^t|j��J}t|��6}|jd�|jdd�|j|j�|jdd��WdQRXWdQRXdS)Ni�rrij���i^)rr)r	rEr�rGr()rr�rHrrr�testSeekBackwardsBytesIOas


z$BZ2FileTest.testSeekBackwardsBytesIOcCs�|jdd�}tt|���}|jt|j�WdQRXtt|���0}|j|jt|j��|j�|jt|jd�WdQRXx@t	d�D]4}tt|d|����}|jt|jd�WdQRXq�WdS)Nr?r�i����)
r)r	rr@�EOFErrorrErGrPr(r�)rZ	truncatedr;r�rrr�test_read_truncatedhszBZ2FileTest.test_read_truncatedN)rr)Br#r$r%r<rDrIrKrMrRrSrTrUrXrYr[rardrgrhrjrkrnrorrrtrurvryr|r~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��unittestZ
skipUnlessr�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr6Zsx

	

	

r6c@sDeZdZdd�Zdd�Zdd�Zeeddd	�d
d��Zdd
�Z	dS)�BZ2CompressorTestcCsBt�}|jt|j�|j|j�}||j�7}|jt|�|j�dS)N)r
r@rAr4r(�flushrGr)r�bz2crrrr�testCompressws
zBZ2CompressorTest.testCompresscCs.t�}|jd�}||j�7}|j||j�dS)Nr)r
r4r�rGr*)rr�rrrr�testCompressEmptyString~s
z)BZ2CompressorTest.testCompressEmptyStringcCslt�}d}d}x:|j|d|dd�}|s0P||j|�7}|d7}qW||j�7}|jt|�|j�dS)Nrrr?r)r
r(r4r�rGr)rr�rbrrWrrr�testCompressChunks10�sz&BZ2CompressorTest.testCompressChunks10rZr})�size�memusecCspt�}d|}z|j|�}||j�7}Wdd}Xtj|�}z*|jt|�|�|jt|jd��d�Wdd}XdS)N�xr)r
r4r�rrrGrP�strip)rr�r�r�
compressedrrr�testCompress4G�s

z BZ2CompressorTest.testCompress4GcCs@x:ttjd�D](}|jt��tjt�|�WdQRXqWdS)Nr)r��pickle�HIGHEST_PROTOCOLr@rA�dumpsr
)r�protorrr�
testPickle�szBZ2CompressorTest.testPickleN)
r#r$r%r�r�r�rrr�r�rrrrr�vs

r�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zee	ddd
�dd��Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zejdd��ZdS)�BZ2DecompressorTestcCs|jttd�dS)N�*)r@rAr)rrrr�test_Constructor�sz$BZ2DecompressorTest.test_ConstructorcCs2t�}|jt|j�|j|j�}|j||j�dS)N)rr@rArr)rGr()r�bz2drVrrr�testDecompress�sz"BZ2DecompressorTest.testDecompresscCs\t�}d}d}x:|j|d|dd�}|s0P||j|�7}|d7}qW|j||j�dS)Nrrr?r)rr)rrGr()rr�rVrbrWrrr�testDecompressChunks10�sz*BZ2DecompressorTest.testDecompressChunks10cCs:t�}d}|j|j|�}|j||j�|j|j|�dS)Nsthis is unused data)rrr)rGr(�unused_data)rr�r�rVrrr�testDecompressUnusedData�s
z,BZ2DecompressorTest.testDecompressUnusedDatacCs6t�}|j|j�}|jt|jd�|jt|jd�dS)Nsanythingr)rrr)r@r�)rr�rVrrr�testEOFError�sz BZ2DecompressorTest.testEOFErrorrZgffffff
@)r�r�c
Csjd}tj|d�j|d�}z<|||d}tj|�}t�}|j|�}|j||k�Wdd}d}d}XdS)Nr?i��littleri(i�)�randomZgetrandbits�to_bytesrr4rrr^)rr�Z	blocksize�blockrr�r�Zdecompressedrrr�testDecompress4G�s

z$BZ2DecompressorTest.testDecompress4GcCs@x:ttjd�D](}|jt��tjt�|�WdQRXqWdS)Nr)r�r�r�r@rAr�r)rr�rrrr��szBZ2DecompressorTest.testPicklecCst�}d}g}t|j�d}|j|j|jd|�|d��|j|j�|jt|d�|�|j|jd|d��|j|j�|jt|d�|�|j|j|j|d�|d��|jt|d�|�x2|j	s�|j|jd|d��|jt|d	�|�q�Wdj
|�}|j||j�|j|jd�dS)
NrZ�@)�
max_lengthrr���r�r�r�)
rrPr5�appendrr�Zneeds_inputrGr��eofr'r-r�)r�bzdr��outZlen_rrr�testDecompressorChunksMaxsize�s(


z1BZ2DecompressorTest.testDecompressorChunksMaxsizecCs�t�}g}|j|j|jdd�dd�d�|j|jdd��|j|j|jdd�d��|j|j|jdd���|jdj|�|j�dS)NrZr)r�rr}�i�)rrGrr)r�r'r()rr�r�rrr�test_decompressor_inputbuf_1�sz0BZ2DecompressorTest.test_decompressor_inputbuf_1cCs�t�}g}|j|j|jdd�dd�d�|j|jd��|j|j|jdd�d��|j|j|jdd�d��|j|j|jdd���|jdj|�|j�dS)N��r)r�rir}i,)rrGrr)r�r'r()rr�r�rrr�test_decompressor_inputbuf_2sz0BZ2DecompressorTest.test_decompressor_inputbuf_2cCstt�}g}|j|j|jdd�d��|j|j|jdd�d��|j|j|jdd���|jdj|�|j�dS)Nr�rLi,r)rr�rr)rGr'r()rr�r�rrr�test_decompressor_inputbuf_3*sz0BZ2DecompressorTest.test_decompressor_inputbuf_3cCs6t�}|jt|j|jd�|jt|j|jd�dS)N�)rr@�	Exceptionrr+)rr�rrr�test_failure:sz BZ2DecompressorTest.test_failurecCsLtjtd�}t�}|�}xtd�D]}|j�q"W|j|�|ddd�dS)N�gettotalrefcountrZrr?)Zdelta)rZ
get_attribute�sysrr��__init__ZassertAlmostEqual)rr�r�Zrefs_beforer�rrr�test_refleaks_in___init__@sz-BZ2DecompressorTest.test_refleaks_in___init__N)r#r$r%r�r�r�r�r�rrr�r�r�r�r�r�r�rZ
refcount_testr�rrrrr��sr�c@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�CompressDecompressTestcCs"tj|j�}|jt|�|j�dS)N)rr4r(rGr)rrrrrr�Ksz#CompressDecompressTest.testCompresscCstjd�}|j||j�dS)Nr)rr4rGr*)rrVrrrr�Os
z.CompressDecompressTest.testCompressEmptyStringcCstj|j�}|j||j�dS)N)rrr)rGr()rrVrrrr�Ssz%CompressDecompressTest.testDecompresscCstjd�}|j|d�dS)Nr)rrrG)rrVrrr�testDecompressEmptyWs
z*CompressDecompressTest.testDecompressEmptycCstj|j�}|j|d�dS)Nr)rrr*rG)rrVrrr�testDecompressToEmptyString[sz2CompressDecompressTest.testDecompressToEmptyStringcCs|jttj|jdd��dS)Nr?i����)r@rBrrr))rrrr�testDecompressIncomplete_sz/CompressDecompressTest.testDecompressIncompletecCs|jttj|j�dS)N)r@rJrrr+)rrrr�testDecompressBadDatabsz,CompressDecompressTest.testDecompressBadDatacCs&tj|jd�}|j||jd�dS)NrL)rrr)rGr()rrVrrr�testDecompressMultiStreamesz0CompressDecompressTest.testDecompressMultiStreamcCs$tj|j|j�}|j||j�dS)N)rrr)r+rGr()rrVrrr�testDecompressTrailingJunkisz1CompressDecompressTest.testDecompressTrailingJunkcCs,tj|jd|j�}|j||jd�dS)NrL)rrr)r+rGr()rrVrrr�%testDecompressMultiStreamTrailingJunkmsz<CompressDecompressTest.testDecompressMultiStreamTrailingJunkN)
r#r$r%r�r�r�r�r�r�rrrrrrrrr�Jsr�c@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�OpenTestcOstj||�S)N)rr1)r�args�kwargsrrrr1usz
OpenTest.openc(Cs�x�dD]�}|dkrt|j�|j|j|��}|j|j�WdQRXt|jd�� }t|j��}|j||j�WdQRX|j|jd��}|j|j�|j�WdQRX|j|jd��}|j|j�WdQRXt|jd��$}t|j��}|j||jd�WdQRXqWdS)Nr7�xbrZabr})r7r)rrr1r8r(rrErG)r�moder;�	file_datarrr�test_binary_modesxs
zOpenTest.test_binary_modesc(Cs�x�dD]�}|dkrt|j�|j|j|��}|j|j�WdQRXt|jd�� }t|j��}|j||j�WdQRX|j|jd��}|j|j�|j�WdQRX|j|jd��}|j|j�WdQRXt|jd��$}t|j��}|j||jd�WdQRXqWdS)Nrs�xrrzrwr})rsr)rrr1r8r(rrErG)rrr;r	rrr�test_implicit_binary_modes�s
z#OpenTest.test_implicit_binary_modesc(Cs"|jjd�}|jdtj�}�xd	D]�}|dkr8t|j�|j|j|��}|j|�WdQRXt|jd��$}t	|j
��jd�}|j||�WdQRX|j|jd��}|j|j
�|�WdQRX|j|jd��}|j|�WdQRXt|jd��(}t	|j
��jd�}|j||d�WdQRXq"WdS)
Nr��
�wt�xtr�rtZatr})rr)r(�decode�replacer�lineseprrr1r8rrErG)rrV�text_native_eolrr;r	rrr�test_text_modes�s"
zOpenTest.test_text_modescCsfx`dD]X}t|j�|j|j|��}WdQRX|jt�� |j|j|��}WdQRXWdQRXqWdS)Nrrr)rrr)rrr1r@�FileExistsError)rrr;rrr�test_x_mode�s


zOpenTest.test_x_modecCs�|jt|j�d��}|j|j�|j�WdQRX|jt|j�d��}|j|j�|j�WdQRX|jjd�}|jt|j�d��}|j|j�|�WdQRXdS)Nrzrr�r)r1rr)rGrEr(r)rr;rVrrr�test_fileobj�szOpenTest.test_fileobjcCst|jt|j|jd�|jt|j|jd�|jt|j|jddd�|jt|j|jddd�|jt|j|jddd	�dS)
NZwbtZxbtrzutf-8)�encoding�ignore)�errorsr
)�newline)r@rBr1r)rrrr�test_bad_params�szOpenTest.test_bad_paramscCs�|jjd�}|jdtj�}|j|jddd��}|j|�WdQRXt|jd��$}t|j	��jd�}|j
||�WdQRX|j|jddd��}|j
|j	�|�WdQRXdS)Nr�r
rz	utf-16-le)rrr)r(rrrrr1rr8rrErG)rrVrr;r	rrr�
test_encoding�szOpenTest.test_encodingcCsX|j|jd��}|jd�WdQRX|j|jdddd��}|j|j�d�WdQRXdS)Nr7sfoo�barrr�r)rrZfoobar)r1rr8rGrE)rr;rrr�test_encoding_error_handler�s
z$OpenTest.test_encoding_error_handlercCsh|jjd�}|j|jddd��}|j|�WdQRX|j|jddd��}|j|j�|g�WdQRXdS)Nr�rr
)rr�
)r(rr1rr8rGri)rrVr;rrr�test_newline�s
zOpenTest.test_newlineN)
r#r$r%r1r
rrrrrrrr!rrrrrrs		
rcCstjttttt�tj�dS)N)rZrun_unittestr6r�r�r�rZ
reap_childrenrrrr�	test_main�sr"�__main__)%ZtestrZtest.supportrrr��iorrrr�r.r�r�rrr�rrNr��ImportError�
import_modulerr	r
rr
rZTestCaserr6r�r�r�rr"r#rrrr�<module>sH

	4 2#(x