Your IP : 216.73.216.85


Current Path : /opt/alt/python35/lib64/python3.5/test/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/__pycache__/test_bz2.cpython-35.opt-2.pyc



���]���@s�ddlmZddlmZmZddlZddlmZmZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlmZddlZyddlZWnek
r�dZYnXejd�ZddlmZmZmZdadd	�ZGd
d�dej�ZGdd
�d
e�ZGdd�de�ZGdd�de�ZGdd�de�Z Gdd�de�Z!dd�Z"e#dkr�e"�dS)�)�support)�
bigmemtest�_4GN)�BytesIO�DEFAULT_BUFFER_SIZE)�unlink�bz2)�BZ2File�
BZ2Compressor�BZ2DecompressorcCsNtdkr!ttjd��atr=tjdgd|�Stj|�SdS)NZbunzip2�input)�has_cmdline_bunzip2�bool�shutil�which�
subprocess�check_outputr�
decompress)�data�r�-/opt/alt/python35/lib64/python3.5/test_bz2.py�ext_decompresss
rc@s3eZdZddddddddd	d
ddd
ddddddddgZdje�ZdZdZdZdZ	e
d&�Zx{eje
jje
jje�d��D]OZeed��*Ze	ejee�e	d��7Z	WdQRXe	d'kr�Pq�Wejed 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�
compresslevel�cCstj|_dS)N)rZTESTFN�filename)�selfrrr�setUpPszBaseTest.setUpcCs)tjj|j�r%tj|j�dS)N)�os�path�isfilerr)rrrr�tearDownSszBaseTest.tearDownii)�__name__�
__module__�__qualname__�
TEXT_LINES�join�TEXT�DATA�
EMPTY_DATA�BAD_DATAZ	test_size�	bytearray�BIG_TEXT�globr!r"�dirname�__file__Zfname�openZfh�readinto�
memoryviewr�compress�BIG_DATAr r$rrrrr$sF	1*rc@s�eZdZdddd�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@dzS){�BZ2FileTestrrc
CsAt|jd��(}|j|j|�|j|�WdQRXdS)N�wb)r3r�writer+)r�streams�suffix�frrr�createTempFile[szBZ2FileTest.createTempFilecCs�|jttd�|jtttjd�|jtttjd�|jtttjd�|jtttjdd�|jtttjdd�dS)Ngw��/�^@�z�rxZrbtrr�
)�assertRaises�	TypeErrorr	�
ValueErrorr!�devnull)rrrr�testBadArgs`szBZ2FileTest.testBadArgscCsY|j�t|j��9}|jt|jt��|j|j�|j�WdQRXdS)N)	r>r	rrBrC�read�float�assertEqualr*)r�bz2frrr�testReadhs
zBZ2FileTest.testReadc
CsI|jddd|j�t|j��}|jt|j�WdQRXdS)Nr;rr<)r>r-r	rrB�OSErrorrG)rrJrrr�testReadBadFilenszBZ2FileTest.testReadBadFilecCsc|jdd�t|j��=}|jt|jt��|j|j�|jd�WdQRXdS)Nr;�)	r>r	rrBrCrGrHrIr*)rrJrrr�testReadMultiStreamsszBZ2FileTest.testReadMultiStreamcCs�tj}t|j�t_zc|jdd�t|j��=}|jt|j	t
��|j|j	�|jd�WdQRXWd|t_XdS)Nr;rN)
�_compression�BUFFER_SIZE�lenr+r>r	rrBrCrGrHrIr*)rZbuffer_sizerJrrr�testReadMonkeyMultiStreamys	(z%BZ2FileTest.testReadMonkeyMultiStreamc
CsI|jd|j�t|j�� }|j|j�|j�WdQRXdS)Nr<)r>r-r	rrIrGr*)rrJrrr�testReadTrailingJunk�sz BZ2FileTest.testReadTrailingJunkcCsS|jddd|j�t|j��$}|j|j�|jd�WdQRXdS)Nr;rNr<)r>r-r	rrIrGr*)rrJrrr�testReadMultiStreamTrailingJunk�sz+BZ2FileTest.testReadMultiStreamTrailingJunkcCsY|j�t|j��9}|jt|jt��|j|jd�d�WdQRXdS)Nrr)r>r	rrBrCrGrHrI)rrJrrr�	testRead0�s
zBZ2FileTest.testRead0c
Csg|j�t|j��G}d}x$|jd�}|s;P||7}q%W|j||j�WdQRXdS)NrrA)r>r	rrGrIr*)rrJ�text�strrrr�testReadChunk10�s
zBZ2FileTest.testReadChunk10cCsq|jdd�t|j��K}d}x$|jd�}|sAP||7}q+W|j||jd�WdQRXdS)Nr;rNrrA)r>r	rrGrIr*)rrJrWrXrrr�testReadChunk10MultiStream�sz&BZ2FileTest.testReadChunk10MultiStreamcCsM|j�t|j��-}|j|jd�|jdd��WdQRXdS)N�d)r>r	rrIrGr*)rrJrrr�testRead100�s
zBZ2FileTest.testRead100c
Cs{|j�t|j��[}|j�}|jt|�d�|j|jj|��|j	|j
�|j�WdQRXdS)Nr)r>r	r�peek�assertNotEqualrR�
assertTruer*�
startswithrIrG)rrJ�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.rIr4r*rR)rrJ�n�brrr�testReadInto�s
zBZ2FileTest.testReadIntocCsg|j�t|j��G}|jt|jd�x'|jD]}|j|j�|�q<WWdQRXdS)N)r>r	rrBrC�readliner(rI)rrJ�linerrr�testReadLine�s

zBZ2FileTest.testReadLinecCsq|jdd�t|j��K}|jt|jd�x+|jdD]}|j|j�|�qFWWdQRXdS)Nr;rN)r>r	rrBrCrfr(rI)rrJrgrrr�testReadLineMultiStream�s
z#BZ2FileTest.testReadLineMultiStreamcCsV|j�t|j��6}|jt|jd�|j|j�|j�WdQRXdS)N)r>r	rrBrC�	readlinesrIr()rrJrrr�
testReadLines�s
zBZ2FileTest.testReadLinescCs`|jdd�t|j��:}|jt|jd�|j|j�|jd�WdQRXdS)Nr;rN)r>r	rrBrCrjrIr()rrJrrr�testReadLinesMultiStream�sz$BZ2FileTest.testReadLinesMultiStreamcCsF|j�t|j��&}|jtt|��|j�WdQRXdS)N)r>r	rrI�list�iterr()rrJrrr�testIterator�s
zBZ2FileTest.testIteratorcCsP|jdd�t|j��*}|jtt|��|jd�WdQRXdS)Nr;rN)r>r	rrIrmrnr()rrJrrr�testIteratorMultiStream�sz#BZ2FileTest.testIteratorMultiStreamcCsM|j�t|j�}|j�|jtt|�|jt|j�dS)N)r>r	r�closerBrD�nextrj)rrJrrr�testClosedIteratorDeadlock�s


z&BZ2FileTest.testClosedIteratorDeadlockcCs~t|jd��*}|jt|j�|j|j�WdQRXt|jd��&}|jt|j	��|j�WdQRXdS)N�wr)
r	rrBrCr:r*r3rIrrG)rrJr=rrr�	testWrite�s
zBZ2FileTest.testWritecCs�t|jd��Q}d}xA|j|d|dd�}|sDP|j|�|d7}qWWdQRXt|jd��&}|jt|j��|j�WdQRXdS)NrtrrArr)r	rr*r:r3rIrrG)rrJrcrXr=rrr�testWriteChunks10�s
zBZ2FileTest.testWriteChunks10cCs�tj|jdd�}t|jddd��}|j|j�WdQRXt|jd��}|j|j�|�WdQRXdS)NrrNrtr)	rr6r*r	rr:r3rIrG)rZexpectedrJr=rrr� testWriteNonDefaultCompressLevels
z,BZ2FileTest.testWriteNonDefaultCompressLevelcCs�t|jd��*}|jt|j�|j|j�WdQRX|jt|jdg�t|jd��&}|jt	|j
��|j�WdQRXdS)Nrt�ar)r	rrBrC�
writelinesr(rDr3rIrrGr*)rrJr=rrr�testWriteLinesszBZ2FileTest.testWriteLinescCsxt|jd��}|jd�WdQRXt|jd��6}|jt|jd�|jt|jdg�WdQRXdS)Nrtsabc�r�a)r	rr:rBrLry)rrJrrr�testWriteMethodsOnReadOnlyFiles
z*BZ2FileTest.testWriteMethodsOnReadOnlyFilecCs�t|jd��*}|jt|j�|j|j�WdQRXt|jd��*}|jt|j�|j|j�WdQRXt|jd��*}|jt|j	��|jd�WdQRXdS)Nrtrxr�)
r	rrBrCr:r*r3rIrrG)rrJr=rrr�
testAppendszBZ2FileTest.testAppendcCsj|j�t|j��J}|jt|j�|jd�|j|j�|jdd��WdQRXdS)N�)	r>r	rrBrC�seekrIrGr*)rrJrrr�testSeekForward(s


zBZ2FileTest.testSeekForwardcCs}|jdd�t|j��W}|jt|j�|jt|j�d�|j|j	�|jdd��WdQRXdS)Nr;r~r�)
r>r	rrBrCr�rRr*rIrG)rrJrrr�testSeekForwardAcrossStreams/s
z(BZ2FileTest.testSeekForwardAcrossStreamscCsg|j�t|j��G}|jd�|jdd�|j|j�|jdd��WdQRXdS)Ni�r�rij���i^)r>r	rrGr�rIr*)rrJrrr�testSeekBackwards6s


zBZ2FileTest.testSeekBackwardscCs�|jdd�t|j���}t|j�d}x)|dkr`|t|j|��8}q8W|jdd�|j|j�|jdd�|j�WdQRXdS)	Nr;r~r[rr�rij���i���)r>r	rrRr*rGr�rI)rrJZreadtorrr�testSeekBackwardsAcrossStreams=sz*BZ2FileTest.testSeekBackwardsAcrossStreamscCsg|j�t|j��G}|jdd�|j|j�|jt|j�dd��WdQRXdS)Nr�r~ij���)r>r	rr�rIrGr*rR)rrJrrr�testSeekBackwardsFromEndFs
z$BZ2FileTest.testSeekBackwardsFromEndcCsd|jdd�t|j��>}|jdd�|j|j�|jddd��WdQRXdS)Nr;r~i�i���i���)r>r	rr�rIrGr*)rrJrrr�%testSeekBackwardsFromEndAcrossStreamsLsz1BZ2FileTest.testSeekBackwardsFromEndAcrossStreamscCsi|j�t|j��I}|jd�|j|j�t|j��|j|j�d�WdQRXdS)Ni�Ir)	r>r	rr�rI�tellrRr*rG)rrJrrr�testSeekPostEndRs


zBZ2FileTest.testSeekPostEndcCss|jdd�t|j��M}|jd�|j|j�t|j�d�|j|j�d�WdQRXdS)Nr;rNi�Ir)	r>r	rr�rIr�rRr*rG)rrJrrr�testSeekPostEndMultiStreamYs

#z&BZ2FileTest.testSeekPostEndMultiStreamcCsv|j�t|j��V}|jd�|jd�|j|j�t|j��|j|j�d�WdQRXdS)Ni�Ir)	r>r	rr�rIr�rRr*rG)rrJrrr�testSeekPostEndTwice`s


z BZ2FileTest.testSeekPostEndTwicecCs�|jdd�t|j��Z}|jd�|jd�|j|j�t|j�d�|j|j�d�WdQRXdS)Nr;rNi�Ir)	r>r	rr�rIr�rRr*rG)rrJrrr�testSeekPostEndTwiceMultiStreamhs

#z+BZ2FileTest.testSeekPostEndTwiceMultiStreamc
Csc|j�t|j��C}|jd�|j|j�d�|j|j�|j�WdQRXdS)Nr�rij���)r>r	rr�rIr�rGr*)rrJrrr�testSeekPreStartps


zBZ2FileTest.testSeekPreStartcCsm|jdd�t|j��G}|jd�|j|j�d�|j|j�|jd�WdQRXdS)Nr;r~r�rij���)r>r	rr�rIr�rGr*)rrJrrr�testSeekPreStartMultiStreamws

z'BZ2FileTest.testSeekPreStartMultiStreamcCsw|j�t|jd��A}t|�}z |j|j�|j��Wd|j�XWdQRX|jt|j�dS)Nr)	r>r3rr	rI�filenorqrBrD)rZrawfrJrrr�
testFileno~s
 zBZ2FileTest.testFilenocCstt|j��}z4|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)NrtcSsdS)NFrrrrr�<lambda>�sz*BZ2FileTest.testSeekable.<locals>.<lambda>)
r	rr+r_�seekablerGrqrBrD�assertFalse)rrJ�srcrrr�testSeekable�s&
zBZ2FileTest.testSeekablecCs�tt|j��}z4|j|j��|j�|j|j��Wd|j�X|jt|j�tt�d�}z|j	|j��Wd|j�X|jt|j�dS)Nrt)
r	rr+r_�readablerGrqrBrDr�)rrJrrr�testReadable�s
zBZ2FileTest.testReadablecCs�tt|j��}z4|j|j��|j�|j|j��Wd|j�X|jt|j�tt�d�}z|j	|j��Wd|j�X|jt|j�dS)Nrt)
r	rr+r��writablerGrqrBrDr_)rrJrrr�testWritable�s
zBZ2FileTest.testWritablecCs7|j�x&td�D]}t|j�}~qWdS)Ni')r>�ranger	r)r�i�orrr�testOpenDel�s
zBZ2FileTest.testOpenDelcCs|jttd�dS)Nz
/non/existent)rBrLr	)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�%tr9sTest)r3rr:r	rjrIrm)rrr=rJ�linesZxlinesrrr�testReadlinesNoNewline�sz"BZ2FileTest.testReadlinesNoNewlinec#Cs�d}t|jd��}|jd�WdQRXt|jd�}|j�y|�WdQRXWntk
rqYnX|jd�y(t|jd��}ddWdQRXWntk
r�YnX|jd�dS)Nr9sxxxrz4__enter__ on a closed file didn't raise an exceptionrrz1/0 didn't raise an exception)r	rr:rqrDZfail�ZeroDivisionError)rr=rrr�testContextProtocol�s"



zBZ2FileTest.testContextProtocolz!Threading required for this test.cs{dd
�d}t|jd��R���fdd���fdd	�t|�D�}tj|��WdQRXWdQRXdS)N�1r~�rAr9cs(x!td�D]}�j��q
WdS)NrN)r�r:)r�)rr=rr�comp�sz'BZ2FileTest.testThreading.<locals>.compcs"g|]}tjd���qS)�target)�	threading�Thread)�.0r�)r�rr�
<listcomp>�s	z-BZ2FileTest.testThreading.<locals>.<listcomp>i)r	rr�rZ
start_threads)rZnthreads�threadsr)r�rr=r�
testThreading�s
zBZ2FileTest.testThreadingcCsztjddd�}|j|jd��}|jd�WdQRX|j|jd��}|j|j�d�WdQRXdS)NrZblockedr�r9sabcr)r�)rZimport_fresh_moduler	rr:rIrG)r�moduler=rrr�testWithoutThreading�s
z BZ2FileTest.testWithoutThreadingcCsD|j�t|jd�}|d}t|j��^}|j|�|jt|�|jd|d��|j|j�|j|d��WdQRXt|j��K}|j	�|jt|�|jd�|j|j	�|jd�WdQRXt|j��:}|j
�|jtt|�|j|j
�g�WdQRXdS)Nrr~r)
r>rRr(r	rrGrIrrr*rfrjrB�
StopIteration)rZlinelenZhalflenrJrrr�testMixedIterationAndReadss


'*
$
z&BZ2FileTest.testMixedIterationAndReadscCs�dd}dd}t|jd��}|j|�WdQRXt|jd��}|j|�WdQRXt|j��!}|j|j�||�WdQRXdS)Nsfooi�sbarrtrx)r	rr:rIrG)rZdata1Zdata2rJrrr�testMultiStreamOrderings

z#BZ2FileTest.testMultiStreamOrderingc Cs�|j}y|jd�}Wntk
r=|jd�YnXt|d��}|j|j�WdQRXt|d�� }|j|j�|j�WdQRXt|d�� }|j|j�|j�WdQRXdS)N�asciiz%Temporary file name needs to be ASCIIr9r)	r�encode�UnicodeEncodeErrorZskipTestr	r:r+rIrG)rZstr_filenameZbytes_filenamer=rrr�testOpenBytesFilenames	
 z!BZ2FileTest.testOpenBytesFilenamecCs�tjttd��dd�}|jt|�tj�tt	|��}|j
td�|jd��dt}|j
|jjj�|d�dS)Ng��>Ar�	rz)Excessive amount of data was decompressed)rr6�bytes�intZ
assertLessrRrPrQr	rrIrGr�assertLessEqual�_buffer�rawr�)rZbomb�decompZ
max_decomprrr�testDecompressLimited,s!
z!BZ2FileTest.testDecompressLimitedcCsut|j��_}t|��9}|jt|jt��|j|j�|j�WdQRX|j	|j
�WdQRXdS)N)rr+r	rBrCrGrHrIr*r��closed)r�biorJrrr�testReadBytesIO:s
 zBZ2FileTest.testReadBytesIOcCs�t|j��q}t|��[}|j�}|jt|�d�|j|jj|��|j	|j
�|j�WdQRXWdQRXdS)Nr)rr+r	r]r^rRr_r*r`rIrG)rr�rJrarrr�testPeekBytesIOAszBZ2FileTest.testPeekBytesIOcCs�t��r}t|d��*}|jt|j�|j|j�WdQRX|jt|j��|j�|j	|j
�WdQRXdS)Nrt)rr	rBrCr:r*rIr�getvaluer�r�)rr�rJrrr�testWriteBytesIOIszBZ2FileTest.testWriteBytesIOcCsvt|j��`}t|��J}|jt|j�|jd�|j|j�|jdd��WdQRXWdQRXdS)Nr�)	rr+r	rBrCr�rIrGr*)rr�rJrrr�testSeekForwardBytesIOQs

z"BZ2FileTest.testSeekForwardBytesIOcCsst|j��]}t|��G}|jd�|jdd�|j|j�|jdd��WdQRXWdQRXdS)Ni�r�rij���i^)rr+r	rGr�rIr*)rr�rJrrr�testSeekBackwardsBytesIOXs

z$BZ2FileTest.testSeekBackwardsBytesIOcCs�|jdd�}tt|���}|jt|j�WdQRXtt|���B}|j|jt|j��|j�|jt|jd�WdQRXxPt	d�D]B}tt|d|����}|jt|jd�WdQRXq�WdS)NrAr�i����)
r+r	rrB�EOFErrorrGrIrRr*r�)rZ	truncatedr=r�rrr�test_read_truncated_s%zBZ2FileTest.test_read_truncatedN)Ar%r&r'r>rFrKrMrOrSrTrUrVrYrZr\rbrerhrirkrlrorprsrurvrwrzr}rr�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�rrrrr8Xsv
	

	

r8c@seeZdZdd�Zdd�Zdd�Zededd	d
�dd��Zd
d�Z	dS)�BZ2CompressorTestcCs[t�}|jt|j�|j|j�}||j�7}|jt|�|j�dS)N)r
rBrCr6r*�flushrIr)r�bz2crrrr�testCompressns
	zBZ2CompressorTest.testCompresscCs?t�}|jd�}||j�7}|j||j�dS)Nr)r
r6r�rIr,)rr�rrrr�testCompressEmptyStringus	z)BZ2CompressorTest.testCompressEmptyStringcCs�t�}d}d}xG|j|d|dd�}|s>P||j|�7}|d7}qW||j�7}|jt|�|j�dS)NrrrAr)r
r*r6r�rIr)rr�rcrrXrrr�testCompressChunks10{s	z&BZ2CompressorTest.testCompressChunks10�sizer[�memuser~cCs�t�}d|}z#|j|�}||j�7}Wdd}Xtj|�}z9|jt|�|�|jt|jd��d�Wdd}XdS)N�xr)r
r6r�rrrIrR�strip)rr�r�r�
compressedrrr�testCompress4G�s	
#z BZ2CompressorTest.testCompress4GcCsLxEttjd�D]0}|jt��tjt�|�WdQRXqWdS)Nr)r��pickle�HIGHEST_PROTOCOLrBrC�dumpsr
)r�protorrr�
testPickle�szBZ2CompressorTest.testPickleN)
r%r&r'r�r�r�rrr�r�rrrrr�ms

%r�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zede	dd
d�dd��Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�BZ2DecompressorTestcCs|jttd�dS)N�*)rBrCr)rrrr�test_Constructor�sz$BZ2DecompressorTest.test_ConstructorcCsEt�}|jt|j�|j|j�}|j||j�dS)N)rrBrCrr+rIr*)r�bz2drWrrr�testDecompress�s	z"BZ2DecompressorTest.testDecompresscCsvt�}d}d}xG|j|d|dd�}|s>P||j|�7}|d7}qW|j||j�dS)NrrrAr)rr+rrIr*)rr�rWrcrXrrr�testDecompressChunks10�s	z*BZ2DecompressorTest.testDecompressChunks10cCsOt�}d}|j|j|�}|j||j�|j|j|�dS)Nsthis is unused data)rrr+rIr*�unused_data)rr�r�rWrrr�testDecompressUnusedData�s
	z,BZ2DecompressorTest.testDecompressUnusedDatacCsKt�}|j|j�}|jt|jd�|jt|jd�dS)Nsanythingr)rrr+rBr�)rr�rWrrr�testEOFError�s	z BZ2DecompressorTest.testEOFErrorr�r[r�gffffff
@c
Cs�d}tj|d�j|d�}zP|||d}tj|�}t�}|j|�}|j||k�Wdd}d}d}XdS)NrAi��littleri(i�)�random�getrandbits�to_bytesrr6rrr_)rr��	blocksize�blockrr�r�Zdecompressedrrr�testDecompress4G�s	z$BZ2DecompressorTest.testDecompress4GcCsLxEttjd�D]0}|jt��tjt�|�WdQRXqWdS)Nr)r�r�r�rBrCr�r)rr�rrrr��szBZ2DecompressorTest.testPicklecCs�t�}d}g}t|j�d}|j|j|jd|�d|��|j|j�|jt|d�|�|j|jdd|��|j|j�|jt|d�|�|j|j|j|d�d|��|jt|d�|�xC|j	sI|j|jdd|��|jt|d	�|�qWdj
|�}|j||j�|j|jd�dS)
Nr[�@�
max_lengthrr���r�r�r�)
rrRr7�appendrr��needs_inputrIr��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)Nr[r�rrr~�i�)rrIrr+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�rrir~i,)rrIrr+r�r)r*)rr�r�rrr�test_decompressor_inputbuf_2s	
&&#z0BZ2DecompressorTest.test_decompressor_inputbuf_2cCs�t�}g}|j|j|jdd�d��|j|j|jdd�d��|j|j|jdd���|jdj|�|j�dS)Nr�rNi,r)rr�rr+rIr)r*)rr�r�rrr�test_decompressor_inputbuf_3!s	&&#z0BZ2DecompressorTest.test_decompressor_inputbuf_3cCsGt�}|jt|j|jd�|jt|j|jd�dS)N�)rrB�	Exceptionrr-)rr�rrr�test_failure1s	z BZ2DecompressorTest.test_failureN)r%r&r'r�r�r�r�r�rrr�r�r�r�r�r�r�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)rr6r*rIr)rrrrrr�8sz#CompressDecompressTest.testCompresscCs&tjd�}|j||j�dS)Nr)rr6rIr,)rrWrrrr�<sz.CompressDecompressTest.testCompressEmptyStringcCs)tj|j�}|j||j�dS)N)rrr+rIr*)rrWrrrr�@sz%CompressDecompressTest.testDecompresscCs#tjd�}|j|d�dS)Nr)rrrI)rrWrrr�testDecompressEmptyDsz*CompressDecompressTest.testDecompressEmptycCs&tj|j�}|j|d�dS)Nr)rrr,rI)rrWrrr�testDecompressToEmptyStringHsz2CompressDecompressTest.testDecompressToEmptyStringcCs'|jttj|jdd��dS)NrAi����)rBrDrrr+)rrrr�testDecompressIncompleteLsz/CompressDecompressTest.testDecompressIncompletecCs|jttj|j�dS)N)rBrLrrr-)rrrr�testDecompressBadDataOsz,CompressDecompressTest.testDecompressBadDatacCs1tj|jd�}|j||jd�dS)NrN)rrr+rIr*)rrWrrr�testDecompressMultiStreamRsz0CompressDecompressTest.testDecompressMultiStreamcCs0tj|j|j�}|j||j�dS)N)rrr+r-rIr*)rrWrrr�testDecompressTrailingJunkVsz1CompressDecompressTest.testDecompressTrailingJunkcCs8tj|jd|j�}|j||jd�dS)NrN)rrr+r-rIr*)rrWrrr�%testDecompressMultiStreamTrailingJunkZsz<CompressDecompressTest.testDecompressMultiStreamTrailingJunkN)
r%r&r'r�r�r�r�rrrrrrrrrrr�7sr�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�OpenTestcOstj||�S)N)rr3)r�args�kwargsrrrr3bsz
OpenTest.openc(CsJxCdD];}|dkr&t|j�|j|j|��}|j|j�WdQRXt|jd��,}t|j��}|j||j�WdQRX|j|jd�� }|j|j�|j�WdQRX|j|jd��}|j|j�WdQRXt|jd��0}t|j��}|j||jd�WdQRXqWdS)Nr9�xbr�abr~)r9r	)rrr3r:r*rrGrI)r�moder=�	file_datarrr�test_binary_modeses

 zOpenTest.test_binary_modesc(CsJxCdD];}|dkr&t|j�|j|j|��}|j|j�WdQRXt|jd��,}t|j��}|j||j�WdQRX|j|jd�� }|j|j�|j�WdQRX|j|jd��}|j|j�WdQRXt|jd��0}t|j��}|j||jd�WdQRXqWdS)Nrt�xrr{rxr~)rtr)rrr3r:r*rrGrI)rrr=rrrr�test_implicit_binary_modesvs

 z#OpenTest.test_implicit_binary_modesc(Cst|jjd�}|jdtj�}xFd	D]>}|dkrMt|j�|j|j|��}|j|�WdQRXt|jd��2}t	|j
��jd�}|j||�WdQRX|j|jd��}|j|j
�|�WdQRX|j|jd��}|j|�WdQRXt|jd��6}t	|j
��jd�}|j||d�WdQRXq.WdS)
Nr��
�wt�xtr�rtZatr~)rr)r*�decode�replacer!�lineseprrr3r:rrGrI)rrW�text_native_eolrr=rrrr�test_text_modes�s"

zOpenTest.test_text_modescCswxpdD]h}t|j�|j|j|��}WdQRX|jt��$|j|j|��}WdQRXWdQRXqWdS)Nrr	r)rr	r)rrr3rB�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)Nr{rr�r)r3rr+rIrGr*r)rr=rWrrr�test_fileobj�s  zOpenTest.test_fileobjcCs�|jt|j|jd�|jt|j|jd�|jt|j|jddd�|jt|j|jddd�|jt|j|jddd	�dS)
NZwbtZxbtr�encodingzutf-8�errors�ignore�newliner)rBrDr3r)rrrr�test_bad_params�s					zOpenTest.test_bad_paramscCs�|jjd�}|jdtj�}|j|jddd��}|j|�WdQRXt|jd��2}t|j	��jd�}|j
||�WdQRX|j|jddd��}|j
|j	�|�WdQRXdS)Nr�rrrz	utf-16-lerr)r*rrr!rr3rr:rrGrI)rrWrr=rrrr�
test_encoding�szOpenTest.test_encodingcCsq|j|jd��}|jd�WdQRX|j|jddddd��}|j|j�d�WdQRXdS)	Nr9sfoo�barrrr�rrZfoobar)r3rr:rIrG)rr=rrr�test_encoding_error_handler�s
!z$OpenTest.test_encoding_error_handlercCs�|jjd�}|j|jddd��}|j|�WdQRX|j|jddd�� }|j|j�|g�WdQRXdS)Nr�rrrr�
)r*rr3rr:rIrj)rrWr=rrr�test_newline�s
zOpenTest.test_newlineN)
r%r&r'r3r
rrrrr r!r"r$rrrrr_s		
rcCs'tjttttt�tj�dS)N)rZrun_unittestr8r�r�r�rZ
reap_childrenrrrr�	test_main�sr%�__main__)$ZtestrZtest.supportrrr��iorrr!r�r0r�rr�sysrrPr��ImportError�
import_modulerr	r
rr
rZTestCaserr8r�r�r�rr%r%rrrr�<module>s>
	4��2�(x