Your IP : 216.73.216.213


Current Path : /proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/test_bz2.cpython-34.pyo

�
g f.��@s�ddlmZddlmZmZddlZddlmZddlZddl	Z	ddl
Z
ddlZddlZddlm
Z
yddlZWnek
r�dZYnXejd�ZddlmZmZmZGdd	�d	ej�ZGd
d�de�ZGdd
�d
e�ZGdd�de�ZGdd�de�ZGdd�de�Zdd�Zedkr�e�ndS)�)�support)�
bigmemtest�_4GN)�BytesIO)�unlink�bz2)�BZ2File�
BZ2Compressor�BZ2Decompressorc@s�eZdZdZdddddddd	d
ddd
dddddddddgZdje�ZdZdZdZ	dd�Z
dd�Zej
dkr�d d!�Znd"d!�Zd#S)$�BaseTestzBase for other testcases.s 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 filecCstj|_dS)N)rZTESTFN�filename)�self�r�2/opt/alt/python34/lib64/python3.4/test/test_bz2.py�setUp6szBaseTest.setUpcCs,tjj|j�r(tj|j�ndS)N)�os�path�isfiler
r)rrrr�tearDown9szBaseTest.tearDown�win32cCs
tj|�S)N)r�
decompress)r�datarrrr?szBaseTest.decompressc
Cs�tjddddtjdtjdtj�}|jj|�|jj�|jj�}|jj�|j	�dkr�t
j|�}n|S)NZbunzip2�shellT�stdin�stdout�stderrr)�
subprocess�Popen�PIPEZSTDOUTr�write�closer�read�waitrr)rr�popZretrrrrBs		

N)�__name__�
__module__�__qualname__�__doc__�
TEXT_LINES�join�TEXT�DATA�
EMPTY_DATA�BAD_DATArr�sys�platformrrrrrrs>	rc@s�eZdZdZdddd�Zdd�Zdd	�Zd
d�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.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Zd:d;�Zd<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.dZd[�Z/d\d]�Z0d^d_�Z1d`da�Z2e3j4e5db�dcdd��Z6dedf�Z7dgdh�Z8didj�Z9dkdl�Z:dmdn�Z;dodp�Z<dqdr�Z=dsdt�Z>dudv�Z?dwdx�Z@dyS)z�BZ2FileTestzTest the BZ2File class.�rc
Cs@t|jd��(}|j|j|�|j|�WdQXdS)N�wb)�openr
r r,)r�streams�suffix�frrr�createTempFileSszBZ2FileTest.createTempFilecCs�|jttd�|jtttjd�|jtttjd�|jtttjd�|jtttjdd�|jtttjdd�dS)Ngw��/�^@�zZrxZrbt�
compresslevelr�
)�assertRaises�	TypeErrorr�
ValueErrorr�devnull)rrrr�testBadArgsXszBZ2FileTest.testBadArgscCsU|j�t|j��6}|jt|jd�|j|j�|j�WdQXdS)N)r8rr
r<r=r"�assertEqualr+)r�bz2frrr�testRead`s
zBZ2FileTest.testReadc
CsH|jddd|j�t|j��}|jt|j�WdQXdS)Nr5rr6)r8r.rr
r<�OSErrorr")rrBrrr�testReadBadFilefszBZ2FileTest.testReadBadFilecCs_|jdd�t|j��:}|jt|jd�|j|j�|jd�WdQXdS)Nr5�)r8rr
r<r=r"rAr+)rrBrrr�testReadMultiStreamkszBZ2FileTest.testReadMultiStreamcCs�tj}t|j�t_z_|jdd�t|j��:}|jt|j	d�|j
|j	�|jd�WdQXWd|t_XdS)Nr5rF)rZ_BUFFER_SIZE�lenr,r8rr
r<r=r"rAr+)rZbuffer_sizerBrrr�testReadMonkeyMultiStreamqs	'z%BZ2FileTest.testReadMonkeyMultiStreamc
CsH|jd|j�t|j�� }|j|j�|j�WdQXdS)Nr6)r8r.rr
rAr"r+)rrBrrr�testReadTrailingJunk~sz BZ2FileTest.testReadTrailingJunkcCsR|jddd|j�t|j��$}|j|j�|jd�WdQXdS)Nr5rFr6)r8r.rr
rAr"r+)rrBrrr�testReadMultiStreamTrailingJunk�sz+BZ2FileTest.testReadMultiStreamTrailingJunkcCsU|j�t|j��6}|jt|jd�|j|jd�d�WdQXdS)Nrr)r8rr
r<r=r"rA)rrBrrr�	testRead0�s
zBZ2FileTest.testRead0c
Csi|j�t|j��J}d}x'|jd�}|s>Pn||7}q%W|j||j�WdQXdS)Nrr;)r8rr
r"rAr+)rrB�text�strrrr�testReadChunk10�s
zBZ2FileTest.testReadChunk10cCss|jdd�t|j��N}d}x'|jd�}|sDPn||7}q+W|j||jd�WdQXdS)Nr5rFrr;)r8rr
r"rAr+)rrBrMrNrrr�testReadChunk10MultiStream�sz&BZ2FileTest.testReadChunk10MultiStreamcCsL|j�t|j��-}|j|jd�|jdd��WdQXdS)N�d)r8rr
rAr"r+)rrBrrr�testRead100�s
zBZ2FileTest.testRead100c
Csz|j�t|j��[}|j�}|jt|�d�|j|jj|��|j	|j
�|j�WdQXdS)Nr)r8rr
�peek�assertNotEqualrH�
assertTruer+�
startswithrAr")rrB�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��WdQXdS)N�)r8rr
�	bytearrayrA�readintor+rH)rrB�n�brrr�testReadInto�s
zBZ2FileTest.testReadIntocCsf|j�t|j��G}|jt|jd�x'|jD]}|j|j�|�q<WWdQXdS)N)r8rr
r<r=�readliner)rA)rrB�linerrr�testReadLine�s

zBZ2FileTest.testReadLinecCsp|jdd�t|j��K}|jt|jd�x+|jdD]}|j|j�|�qFWWdQXdS)Nr5rF)r8rr
r<r=r_r)rA)rrBr`rrr�testReadLineMultiStream�s
z#BZ2FileTest.testReadLineMultiStreamcCsU|j�t|j��6}|jt|jd�|j|j�|j�WdQXdS)N)r8rr
r<r=�	readlinesrAr))rrBrrr�
testReadLines�s
zBZ2FileTest.testReadLinescCs_|jdd�t|j��:}|jt|jd�|j|j�|jd�WdQXdS)Nr5rF)r8rr
r<r=rcrAr))rrBrrr�testReadLinesMultiStream�sz$BZ2FileTest.testReadLinesMultiStreamcCsE|j�t|j��&}|jtt|��|j�WdQXdS)N)r8rr
rA�list�iterr))rrBrrr�testIterator�s
zBZ2FileTest.testIteratorcCsO|jdd�t|j��*}|jtt|��|jd�WdQXdS)Nr5rF)r8rr
rArfrgr))rrBrrr�testIteratorMultiStream�sz#BZ2FileTest.testIteratorMultiStreamcCsM|j�t|j�}|j�|jtt|�|jt|j�dS)N)r8rr
r!r<r>�nextrc)rrBrrr�testClosedIteratorDeadlock�s


z&BZ2FileTest.testClosedIteratorDeadlockcCst|jd��*}|jt|j�|j|j�WdQXt|jd��)}|j|j|j	��|j�WdQXdS)N�w�rb)
rr
r<r=r r+r4rArr")rrBr7rrr�	testWrite�s
zBZ2FileTest.testWritecCs�t|jd��T}d}xD|j|d|dd�}|sGPn|j|�|d7}qWWdQXt|jd��)}|j|j|j��|j�WdQXdS)Nrlrr;r2rm)rr
r+r r4rArr")rrBr\rNr7rrr�testWriteChunks10�s
zBZ2FileTest.testWriteChunks10cCs~tj|jdd�}t|jddd��}|j|j�WdQXt|jd��}|j|j�|�WdQXdS)Nr:rFrlrm)	r�compressr+rr
r r4rAr")rZexpectedrBr7rrr� testWriteNonDefaultCompressLevel�s
z,BZ2FileTest.testWriteNonDefaultCompressLevelcCs�t|jd��*}|jt|j�|j|j�WdQX|jt|jdg�t|jd��)}|j|j	|j
��|j�WdQXdS)Nrl�arm)rr
r<r=�
writelinesr)r>r4rArr"r+)rrBr7rrr�testWriteLinesszBZ2FileTest.testWriteLinescCsvt|jd��}|jd�WdQXt|jd��6}|jt|jd�|jt|jdg�WdQXdS)Nrlsabc�r�a)rr
r r<rDrs)rrBrrr�testWriteMethodsOnReadOnlyFiles
z*BZ2FileTest.testWriteMethodsOnReadOnlyFilecCs�t|jd��*}|jt|j�|j|j�WdQXt|jd��*}|jt|j�|j|j�WdQXt|jd��-}|j|j|j	��|jd�WdQXdS)Nrlrrrm�)
rr
r<r=r r+r4rArr")rrBr7rrr�
testAppendszBZ2FileTest.testAppendcCsi|j�t|j��J}|jt|j�|jd�|j|j�|jdd��WdQXdS)N�)	r8rr
r<r=�seekrAr"r+)rrBrrr�testSeekForward s


zBZ2FileTest.testSeekForwardcCs||jdd�t|j��W}|jt|j�|jt|j�d�|j|j	�|jdd��WdQXdS)Nr5rxrz)
r8rr
r<r=r{rHr+rAr")rrBrrr�testSeekForwardAcrossStreams's
z(BZ2FileTest.testSeekForwardAcrossStreamscCsf|j�t|j��G}|jd�|jdd�|j|j�|jdd��WdQXdS)Ni�rzr2ij���i^)r8rr
r"r{rAr+)rrBrrr�testSeekBackwards.s


zBZ2FileTest.testSeekBackwardscCs�|jdd�t|j���}t|j�d}x)|dkr`|t|j|��8}q8W|jdd�|j|j�|jdd�|j�WdQXdS)	Nr5rxrQrrzr2ij���i���)r8rr
rHr+r"r{rA)rrBZreadtorrr�testSeekBackwardsAcrossStreams5sz*BZ2FileTest.testSeekBackwardsAcrossStreamscCsf|j�t|j��G}|jdd�|j|j�|jt|j�dd��WdQXdS)Nrzrxij���)r8rr
r{rAr"r+rH)rrBrrr�testSeekBackwardsFromEnd>s
z$BZ2FileTest.testSeekBackwardsFromEndcCsc|jdd�t|j��>}|jdd�|j|j�|jddd��WdQXdS)Nr5rxi�i���i���)r8rr
r{rAr"r+)rrBrrr�%testSeekBackwardsFromEndAcrossStreamsDsz1BZ2FileTest.testSeekBackwardsFromEndAcrossStreamscCsh|j�t|j��I}|jd�|j|j�t|j��|j|j�d�WdQXdS)Ni�Ir)	r8rr
r{rA�tellrHr+r")rrBrrr�testSeekPostEndJs


zBZ2FileTest.testSeekPostEndcCsr|jdd�t|j��M}|jd�|j|j�t|j�d�|j|j�d�WdQXdS)Nr5rFi�Ir)	r8rr
r{rAr�rHr+r")rrBrrr�testSeekPostEndMultiStreamQs

#z&BZ2FileTest.testSeekPostEndMultiStreamcCsu|j�t|j��V}|jd�|jd�|j|j�t|j��|j|j�d�WdQXdS)Ni�Ir)	r8rr
r{rAr�rHr+r")rrBrrr�testSeekPostEndTwiceXs


z BZ2FileTest.testSeekPostEndTwicecCs|jdd�t|j��Z}|jd�|jd�|j|j�t|j�d�|j|j�d�WdQXdS)Nr5rFi�Ir)	r8rr
r{rAr�rHr+r")rrBrrr�testSeekPostEndTwiceMultiStream`s

#z+BZ2FileTest.testSeekPostEndTwiceMultiStreamc
Csb|j�t|j��C}|jd�|j|j�d�|j|j�|j�WdQXdS)Nrzrij���)r8rr
r{rAr�r"r+)rrBrrr�testSeekPreStarths


zBZ2FileTest.testSeekPreStartcCsl|jdd�t|j��G}|jd�|j|j�d�|j|j�|jd�WdQXdS)Nr5rxrzrij���)r8rr
r{rAr�r"r+)rrBrrr�testSeekPreStartMultiStreamos

z'BZ2FileTest.testSeekPreStartMultiStreamcCsv|j�t|jd��A}t|�}z |j|j�|j��Wd|j�XWdQX|jt|j�dS)Nrm)	r8r4r
rrA�filenor!r<r>)rZrawfrBrrr�
testFilenovs
 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)NrlcSsdS)NFrrrrr�<lambda>�sz*BZ2FileTest.testSeekable.<locals>.<lambda>)
rrr,rU�seekabler"r!r<r>�assertFalse)rrB�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)Nrl)
rrr,rU�readabler"r!r<r>r�)rrBrrr�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)Nrl)
rrr,r��writabler"r!r<r>rU)rrBrrr�testWritable�s
zBZ2FileTest.testWritablecCs7|j�x&td�D]}t|j�}~qWdS)Ni')r8�rangerr
)r�i�orrr�testOpenDel�s
zBZ2FileTest.testOpenDelcCs|jttd�dS)Nz
/non/existent)r<rDr)rrrr�testOpenNonexistent�szBZ2FileTest.testOpenNonexistentcCs�d}t|jd��}|j|�WdQXt|j��}|j�}WdQX|j|dg�t|j��}t|j��}WdQX|j|dg�dS)Ns,BZh91AY&SY�b�]� !�h3M<]��BCe�%tr3sTest)r4r
r rrcrArf)rrr7rB�linesZxlinesrrr�testReadlinesNoNewline�sz"BZ2FileTest.testReadlinesNoNewlinec!Cs�d}t|jd��}|jd�WdQXt|jd�}|j�y|�WdQXWntk
roYnX|jd�y't|jd��}ddWdQXWntk
r�YnX|jd�dS)Nr3sxxxrmz4__enter__ on a closed file didn't raise an exceptionr2rz1/0 didn't raise an exception)rr
r r!r>Zfail�ZeroDivisionError)rr7rrr�testContextProtocol�s"




zBZ2FileTest.testContextProtocolz!Threading required for this test.csydd
�d}t|jd��Q���fdd���fdd	�t|�D�}tj|��WdQXWdQXdS)N�1rx�r;r3cs(x!td�D]}�j��q
WdS)NrF)r�r )r�)rr7rr�comp�sz'BZ2FileTest.testThreading.<locals>.compcs"g|]}tjd���qS)�target)�	threadingZThread)�.0r�)r�rr�
<listcomp>�s	z-BZ2FileTest.testThreading.<locals>.<listcomp>i)rr
r�rZ
start_threads)rZnthreadsZthreadsr)r�rr7r�
testThreading�s
zBZ2FileTest.testThreadingcCsxtjddd�}|j|jd��}|jd�WdQX|j|jd��}|j|j�d�WdQXdS)NrZblockedr�r3sabcrm)z	threading)rZimport_fresh_modulerr
r rAr")r�moduler7rrr�testWithoutThreading�s
z BZ2FileTest.testWithoutThreadingcCsA|j�t|jd�}|d}t|j��^}|j|�|jt|�|jd|d��|j|j�|j|d��WdQXt|j��K}|j	�|jt|�|jd�|j|j	�|jd�WdQXt|j��:}|j
�|jtt|�|j|j
�g�WdQXdS)Nrrxr2)
r8rHr)rr
r"rArjr+r_rcr<�
StopIteration)rZlinelenZhalflenrBrrr�testMixedIterationAndReads�s


')
#
z&BZ2FileTest.testMixedIterationAndReadscCs�dd}dd}t|jd��}|j|�WdQXt|jd��}|j|�WdQXt|j��!}|j|j�||�WdQXdS)Nsfooi�sbarrlrr)rr
r rAr")rZdata1Zdata2rBrrr�testMultiStreamOrderings

z#BZ2FileTest.testMultiStreamOrderingcCs�|j}y|jd�}Wntk
r=|jd�YnXt|d��}|j|j�WdQXt|d�� }|j|j�|j�WdQXt|d�� }|j|j�|j�WdQXdS)N�asciiz%Temporary file name needs to be ASCIIr3rm)	r
�encode�UnicodeEncodeErrorZskipTestrr r,rAr")rZstr_filenameZbytes_filenamer7rrr�testOpenBytesFilenames	
z!BZ2FileTest.testOpenBytesFilenamecCspt|j��[}t|��6}|jt|jd�|j|j�|j�WdQX|j|j	�WdQXdS)N)
rr,rr<r=r"rAr+r��closed)r�biorBrrr�testReadBytesIO's
zBZ2FileTest.testReadBytesIOcCs�t|j��p}t|��[}|j�}|jt|�d�|j|jj|��|j	|j
�|j�WdQXWdQXdS)Nr)rr,rrSrTrHrUr+rVrAr")rr�rBrWrrr�testPeekBytesIO.szBZ2FileTest.testPeekBytesIOcCs�t��t}t|d��*}|jt|j�|j|j�WdQX|j|j|j��|j�|j	|j
�WdQXdS)Nrl)rrr<r=r r+rAr�getvaluer�r�)rr�rBrrr�testWriteBytesIO6s"zBZ2FileTest.testWriteBytesIOcCstt|j��_}t|��J}|jt|j�|jd�|j|j�|jdd��WdQXWdQXdS)Nrz)	rr,rr<r=r{rAr"r+)rr�rBrrr�testSeekForwardBytesIO>s

z"BZ2FileTest.testSeekForwardBytesIOcCsqt|j��\}t|��G}|jd�|jdd�|j|j�|jdd��WdQXWdQXdS)Ni�rzr2ij���i^)rr,rr"r{rAr+)rr�rBrrr�testSeekBackwardsBytesIOEs

z$BZ2FileTest.testSeekBackwardsBytesIOcCs�|jdd�}tt|���}|jt|j�WdQXtt|���B}|j|jt|j��|j�|jt|jd�WdQXxOt	d�D]A}tt|d|����}|jt|jd�WdQXq�WdS)Nr;r2�i����)
r,rrr<�EOFErrorr"rArHr+r�)rZ	truncatedr7r�rrr�test_read_truncatedLs%zBZ2FileTest.test_read_truncatedN)Ar%r&r'r(r8r@rCrErGrIrJrKrLrOrPrRrXr^rarbrdrerhrirkrnrorqrtrwryr|r}r~rr�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�rrrrr1Psv
	

	

r1c@seeZdZdd�Zdd�Zdd�Zededd	d
�dd��Zd
d�Z	dS)�BZ2CompressorTestcCs^t�}|jt|j�|j|j�}||j�7}|j|j|�|j�dS)N)r	r<r=rpr+�flushrAr)r�bz2crrrr�testCompress[s
	zBZ2CompressorTest.testCompresscCs?t�}|jd�}||j�7}|j||j�dS)Nr)r	rpr�rAr-)rr�rrrr�testCompressEmptyStringbs	z)BZ2CompressorTest.testCompressEmptyStringcCs�t�}d}d}xJ|j|d|dd�}|sAPn||j|�7}|d7}qW||j�7}|j|j|�|j�dS)Nrrr;r2)r	r+rpr�rAr)rr�r\rrNrrr�testCompressChunks10hs	z&BZ2CompressorTest.testCompressChunks10�sizerQ�memuserxcCs�t�}d|}z#|j|�}||j�7}Wdd}Xtj|�}z9|jt|�|�|jt|jd��d�Wdd}XdS)N�xr)r	rpr�rrrArH�strip)rr�r�r�
compressedrrr�testCompress4Gus	
#z BZ2CompressorTest.testCompress4GcCsKxDttjd�D]/}|jt��tjt�|�WdQXqWdS)Nr2)r��pickle�HIGHEST_PROTOCOLr<r=�dumpsr	)r�protorrr�
testPickle�szBZ2CompressorTest.testPickleN)
r%r&r'r�r�r�rrr�r�rrrrr�Zs

%r�c@s}eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zede	dd
d�dd��Z
dd�ZdS)�BZ2DecompressorTestcCs|jttd�dS)N�*)r<r=r
)rrrr�test_Constructor�sz$BZ2DecompressorTest.test_ConstructorcCsEt�}|jt|j�|j|j�}|j||j�dS)N)r
r<r=rr,rAr+)r�bz2drMrrr�testDecompress�s	z"BZ2DecompressorTest.testDecompresscCsyt�}d}d}xJ|j|d|dd�}|sAPn||j|�7}|d7}qW|j||j�dS)Nrrr;r2)r
r,rrAr+)rr�rMr\rNrrr�testDecompressChunks10�s	z*BZ2DecompressorTest.testDecompressChunks10cCsOt�}d}|j|j|�}|j||j�|j|j|�dS)Nsthis is unused data)r
rr,rAr+�unused_data)rr�r�rMrrr�testDecompressUnusedData�s
	z,BZ2DecompressorTest.testDecompressUnusedDatacCsKt�}|j|j�}|jt|jd�|jt|jd�dS)Nsanythingr)r
rr,r<r�)rr�rMrrr�testEOFError�s	z BZ2DecompressorTest.testEOFErrorr�rQr�gffffff
@c
Cs�d}tj|d�j|d�}zP|||d}tj|�}t�}|j|�}|j||k�Wdd}d}d}XdS)Nr;i��littler2i(i�)�randomZgetrandbits�to_bytesrrpr
rrU)rr�Z	blocksize�blockrr�r�Zdecompressedrrr�testDecompress4G�s	z$BZ2DecompressorTest.testDecompress4GcCsKxDttjd�D]/}|jt��tjt�|�WdQXqWdS)Nr2)r�r�r�r<r=r�r
)rr�rrrr��szBZ2DecompressorTest.testPickleN)r%r&r'r�r�r�r�r�rrr�r�rrrrr��s%r�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�CompressDecompressTestcCs2tj|j�}|j|j|�|j�dS)N)rrpr+rAr)rrrrrr��sz#CompressDecompressTest.testCompresscCs&tjd�}|j||j�dS)Nr)rrprAr-)rrMrrrr��sz.CompressDecompressTest.testCompressEmptyStringcCs)tj|j�}|j||j�dS)N)rrr,rAr+)rrMrrrr��sz%CompressDecompressTest.testDecompresscCs#tjd�}|j|d�dS)Nr)rrrA)rrMrrr�testDecompressEmpty�sz*CompressDecompressTest.testDecompressEmptycCs&tj|j�}|j|d�dS)Nr)rrr-rA)rrMrrr�testDecompressToEmptyString�sz2CompressDecompressTest.testDecompressToEmptyStringcCs'|jttj|jdd��dS)Nr;i����)r<r>rrr,)rrrr�testDecompressIncomplete�sz/CompressDecompressTest.testDecompressIncompletecCs|jttj|j�dS)N)r<rDrrr.)rrrr�testDecompressBadData�sz,CompressDecompressTest.testDecompressBadDatacCs1tj|jd�}|j||jd�dS)NrF)rrr,rAr+)rrMrrr�testDecompressMultiStream�sz0CompressDecompressTest.testDecompressMultiStreamcCs0tj|j|j�}|j||j�dS)N)rrr,r.rAr+)rrMrrr�testDecompressTrailingJunk�sz1CompressDecompressTest.testDecompressTrailingJunkcCs8tj|jd|j�}|j||jd�dS)NrF)rrr,r.rAr+)rrMrrr�%testDecompressMultiStreamTrailingJunk�sz<CompressDecompressTest.testDecompressMultiStreamTrailingJunkN)
r%r&r'r�r�r�r�r�r�r�r�r�r�rrrrr��sr�c@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�OpenTestzTest the open function.cOstj||�S)N)rr4)r�args�kwargsrrrr4�sz
OpenTest.openc$CsNxGdD]?}|dkr)t|j�n|j|j|��}|j|j�WdQXt|jd��/}|j|j��}|j||j�WdQX|j|jd�� }|j|j�|j�WdQX|j|jd��}|j|j�WdQXt|jd��3}|j|j��}|j||jd�WdQXqWdS)Nr3�xbrmZabrx)zwbr�)rr
r4r r+rr"rA)r�moder7�	file_datarrr�test_binary_modes�s
zOpenTest.test_binary_modesc$CsNxGdD]?}|dkr)t|j�n|j|j|��}|j|j�WdQXt|jd��/}|j|j��}|j||j�WdQX|j|jd�� }|j|j�|j�WdQX|j|jd��}|j|j�WdQXt|jd��3}|j|j��}|j||jd�WdQXqWdS)Nrl�xrmrurrrx)rlr�)rr
r4r r+rr"rA)rr�r7r�rrr�test_implicit_binary_modess
z#OpenTest.test_implicit_binary_modesc$Csx|jjd�}|jdtj�}xJd	D]B}|dkrPt|j�n|j|j|��}|j|�WdQXt|jd��5}|j	|j
��jd�}|j||�WdQX|j|jd��}|j|j
�|�WdQX|j|jd��}|j|�WdQXt|jd��9}|j	|j
��jd�}|j||d�WdQXq.WdS)
Nr��
�wt�xtrm�rt�atrx)r�r�)r+�decode�replacer�lineseprr
r4r rr"rA)rrM�text_native_eolr�r7r�rrr�test_text_modess"
zOpenTest.test_text_modescCstxmdD]e}t|j�|j|j|��}WdQX|jt��#|j|j|��}WdQXWdQXqWdS)Nr�r�r�)r�zxbzxt)rr
r4r<�FileExistsError)rr�r7rrr�test_x_mode)s

zOpenTest.test_x_modecCs�|jt|j�d�� }|j|j�|j�WdQX|jt|j�d�� }|j|j�|j�WdQX|jjd�}|jt|j�d��}|j|j�|�WdQXdS)Nrurmr�r�)r4rr,rAr"r+r�)rr7rMrrr�test_fileobj2szOpenTest.test_fileobjcCs�|jt|j|jd�|jt|j|jd�|jt|j|jddd�|jt|j|jddd�|jt|j|jddd	�dS)
NZwbtZxbtrm�encodingzutf-8�errors�ignore�newliner�)r<r>r4r
)rrrr�test_bad_params;s					zOpenTest.test_bad_paramscCs�|jjd�}|jdtj�}|j|jddd��}|j|�WdQXt|jd��5}|j|j	��jd�}|j
||�WdQX|j|jddd��}|j
|j	�|�WdQXdS)Nr�r�r�r�z	utf-16-lermr�)r+r�r�rr�r4r
r rr"rA)rrMr�r7r�rrr�
test_encodingHszOpenTest.test_encodingcCso|j|jd��}|jd�WdQX|j|jddddd��}|j|j�d�WdQXdS)	Nr3sfoo�barr�r�r�r�r�Zfoobar)r4r
r rAr")rr7rrr�test_encoding_error_handlerTs
!z$OpenTest.test_encoding_error_handlercCs�|jjd�}|j|jddd��}|j|�WdQX|j|jddd�� }|j|j�|g�WdQXdS)Nr�r�r�r�r��
)r+r�r4r
r rArc)rrMr7rrr�test_newline\s
zOpenTest.test_newlineN)r%r&r'r(r4r�r�r�r�r�r�r�r�rrrrrr��s		
r�cCs'tjttttt�tj�dS)N)rZrun_unittestr1r�r�r�r�Z
reap_childrenrrrr�	test_mainesr�__main__)ZtestrZtest.supportrrr��iorrr�r�rr/rr��ImportError�
import_modulerrr	r
ZTestCaserr1r�r�r�r�rr%rrrr�<module>s4
9��29(x