HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/__pycache__/test_bz2.cpython-37.opt-1.pyc
B

��gǒ�@s8ddlmZddlmZmZddlZddlmZmZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlmZddlZddlZe�d�ZddlmZmZmZdadd	�ZGd
d�dej�ZGdd
�d
e�ZGdd�de�ZGdd�de�ZGdd�de�Z Gdd�de�Z!dd�Z"e#dk�r4e"�dS)�)�support)�
bigmemtest�_4GN)�BytesIO�DEFAULT_BUFFER_SIZE)�unlink�bz2)�BZ2File�
BZ2Compressor�BZ2DecompressorcCs8tdkrtt�d��atr*tjdg|d�St�|�SdS)NZbunzip2)�input)�has_cmdline_bunzip2�bool�shutilZwhich�
subprocessZcheck_outputr�
decompress)�data�r�)/usr/local/lib/python3.7/test/test_bz2.py�ext_decompresss
rc@s�eZdZdZdddddddd	d
ddd
dddddddddgZd�e�ZdZdZdZ	dZ
ed�Zx^e
�
ej�ej�e�d��D]>Zeed�� Ze
e�ee�e
d��7Z
WdQRXe
dkrzPqzWejed d!�Zd"d#�Zd$d%�ZdS)&�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 fileriz*.py�rbN�)�
compresslevelcCstj|_dS)N)rZTESTFN�filename)�selfrrr�setUpNszBaseTest.setUpcCstj�|j�rt�|j�dS)N)�os�path�isfilerr)rrrr�tearDownQszBaseTest.tearDown)�__name__�
__module__�__qualname__�__doc__�
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"sH
"$rc@s�eZdZdZd{dd�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�Z2dbdc�Z3ddde�Z4dfdg�Z5dhdi�Z6djdk�Z7dldm�Z8dndo�Z9dpdq�Z:drds�Z;dtdu�Z<dvdw�Z=dxdy�Z>dzS)|�BZ2FileTestzTest the BZ2File class.rrc	Cs6t|jd�� }|�|j|�|�|�WdQRXdS)N�wb)r1r�writer))r�streams�suffix�frrr�createTempFileYszBZ2FileTest.createTempFilecCsp|�ttd�|�tttjd�|�tttjd�|�tttjd�|jtttjdd�|jtttjdd�dS)Ngw��/�^@�z�rxZrbtr)r�
)�assertRaises�	TypeErrorr	�
ValueErrorr�devnull)rrrr�testBadArgs^szBZ2FileTest.testBadArgsc	CsF|��t|j��*}|�t|jt��|�|��|j�WdQRXdS)N)	r<r	rr@rA�read�float�assertEqualr()r�bz2frrr�testReadfszBZ2FileTest.testReadc	Cs8|jd|jd�t|j��}|�t|j�WdQRXdS)Nr)r9r:)r<r+r	rr@�OSErrorrE)rrHrrr�testReadBadFilelszBZ2FileTest.testReadBadFilec	CsN|jdd�t|j��.}|�t|jt��|�|��|jd�WdQRXdS)N�)r9)	r<r	rr@rArErFrGr()rrHrrr�testReadMultiStreamqszBZ2FileTest.testReadMultiStreamc	Csntj}t|j�t_zN|jdd�t|j��.}|�t|j	t
��|�|�	�|jd�WdQRXWd|t_XdS)NrL)r9)
�_compression�BUFFER_SIZE�lenr)r<r	rr@rArErFrGr()r�buffer_sizerHrrr�testReadMonkeyMultiStreamws$z%BZ2FileTest.testReadMonkeyMultiStreamc	Cs:|j|jd�t|j��}|�|��|j�WdQRXdS)N)r:)r<r+r	rrGrEr()rrHrrr�testReadTrailingJunk�sz BZ2FileTest.testReadTrailingJunkc	Cs@|jd|jd�t|j��}|�|��|jd�WdQRXdS)NrL)r9r:)r<r+r	rrGrEr()rrHrrr�testReadMultiStreamTrailingJunk�sz+BZ2FileTest.testReadMultiStreamTrailingJunkc	CsF|��t|j��*}|�t|jt��|�|�d�d�WdQRXdS)Nrr)r<r	rr@rArErFrG)rrHrrr�	testRead0�szBZ2FileTest.testRead0c	CsR|��t|j��6}d}x|�d�}|s*P||7}qW|�||j�WdQRXdS)Nrr?)r<r	rrErGr()rrH�text�strrrr�testReadChunk10�s
zBZ2FileTest.testReadChunk10c	CsZ|jdd�t|j��:}d}x|�d�}|s.P||7}qW|�||jd�WdQRXdS)NrL)r9rr?)r<r	rrErGr()rrHrVrWrrr�testReadChunk10MultiStream�s
z&BZ2FileTest.testReadChunk10MultiStreamc	Cs>|��t|j��"}|�|�d�|jdd��WdQRXdS)N�d)r<r	rrGrEr()rrHrrr�testRead100�szBZ2FileTest.testRead100c	Cs^|��t|j��B}|��}|�t|�d�|�|j�|��|�	|�
�|j�WdQRXdS)Nr)r<r	r�peek�assertNotEqualrP�
assertTruer(�
startswithrGrE)rrH�pdatarrr�testPeek�szBZ2FileTest.testPeekc	Cs�|��t|j���}d}t|�}|�|�|�|�|�||jd|��t|j�|}tt|j��}|�|�|�|�|�|d|�|j|d��WdQRXdS)N�)r<r	rr,rGr2r(rP)rrH�n�brrr�testReadInto�szBZ2FileTest.testReadIntoc	CsR|��t|j��6}|�t|jd�x|jD]}|�|��|�q,WWdQRXdS)N)r<r	rr@rA�readliner&rG)rrH�linerrr�testReadLine�s
zBZ2FileTest.testReadLinec	CsZ|jdd�t|j��:}|�t|jd�x"|jdD]}|�|��|�q4WWdQRXdS)NrL)r9)r<r	rr@rArfr&rG)rrHrgrrr�testReadLineMultiStream�s
z#BZ2FileTest.testReadLineMultiStreamc	CsD|��t|j��(}|�t|jd�|�|��|j�WdQRXdS)N)r<r	rr@rA�	readlinesrGr&)rrHrrr�
testReadLines�szBZ2FileTest.testReadLinesc	CsL|jdd�t|j��,}|�t|jd�|�|��|jd�WdQRXdS)NrL)r9)r<r	rr@rArjrGr&)rrHrrr�testReadLinesMultiStream�sz$BZ2FileTest.testReadLinesMultiStreamc	Cs8|��t|j��}|�tt|��|j�WdQRXdS)N)r<r	rrG�list�iterr&)rrHrrr�testIterator�szBZ2FileTest.testIteratorc	Cs@|jdd�t|j�� }|�tt|��|jd�WdQRXdS)NrL)r9)r<r	rrGrmrnr&)rrHrrr�testIteratorMultiStream�sz#BZ2FileTest.testIteratorMultiStreamcCs:|��t|j�}|��|�tt|�|�t|j�dS)N)r<r	r�closer@rB�nextrj)rrHrrr�testClosedIteratorDeadlock�s

z&BZ2FileTest.testClosedIteratorDeadlockc	Csdt|jd�� }|�t|j�|�|j�WdQRXt|jd��}|�t|�	��|j�WdQRXdS)N�wr)
r	rr@rAr8r(r1rGrrE)rrHr;rrr�	testWrite�s
zBZ2FileTest.testWritec	Cs�t|jd��B}d}x6|j|d|dd�}|s4P|�|�|d7}qWWdQRXt|jd��}|�t|���|j�WdQRXdS)Nrtrr?rr)r	rr(r8r1rGrrE)rrHrcrWr;rrr�testWriteChunks10�s
zBZ2FileTest.testWriteChunks10c	Csdtj|jdd�}t|jddd��}|�|j�WdQRXt|jd��}|�|��|�WdQRXdS)NrL)rrtr)	rr4r(r	rr8r1rGrE)rZexpectedrHr;rrr� testWriteNonDefaultCompressLevels
z,BZ2FileTest.testWriteNonDefaultCompressLevelc	Csvt|jd�� }|�t|j�|�|j�WdQRX|�t|jdg�t|jd��}|�t	|�
��|j�WdQRXdS)Nrt�ar)r	rr@rA�
writelinesr&rBr1rGrrEr()rrHr;rrr�testWriteLines
szBZ2FileTest.testWriteLinesc	Cs`t|jd��}|�d�WdQRXt|jd��(}|�t|jd�|�t|jdg�WdQRXdS)Nrtsabc�r�a)r	rr8r@rJry)rrHrrr�testWriteMethodsOnReadOnlyFiles
z*BZ2FileTest.testWriteMethodsOnReadOnlyFilec	Cs�t|jd�� }|�t|j�|�|j�WdQRXt|jd�� }|�t|j�|�|j�WdQRXt|jd�� }|�t|�	��|jd�WdQRXdS)Nrtrxr�)
r	rr@rAr8r(r1rGrrE)rrHr;rrr�
testAppendszBZ2FileTest.testAppendc	CsT|��t|j��8}|�t|j�|�d�|�|��|jdd��WdQRXdS)N�)	r<r	rr@rA�seekrGrEr()rrHrrr�testSeekForward&s

zBZ2FileTest.testSeekForwardc	Csb|jdd�t|j��B}|�t|j�|�t|j�d�|�|�	�|jdd��WdQRXdS)Nr~)r9r�)
r<r	rr@rAr�rPr(rGrE)rrHrrr�testSeekForwardAcrossStreams-s
z(BZ2FileTest.testSeekForwardAcrossStreamsc	CsR|��t|j��6}|�d�|�dd�|�|��|jdd��WdQRXdS)Ni�ij���ri^)r<r	rrEr�rGr()rrHrrr�testSeekBackwards4s

zBZ2FileTest.testSeekBackwardsc	Cs�|jdd�t|j��`}t|j�d}x|dkrD|t|�|��8}q(W|�dd�|�|��|jdd�|j�WdQRXdS)Nr~)r9rZrij���ri���)r<r	rrPr(rEr�rG)rrHZreadtorrr�testSeekBackwardsAcrossStreams;s
z*BZ2FileTest.testSeekBackwardsAcrossStreamsc	CsR|��t|j��6}|�dd�|�|��|jt|j�dd��WdQRXdS)Nij���r~r�)r<r	rr�rGrEr(rP)rrHrrr�testSeekBackwardsFromEndDsz$BZ2FileTest.testSeekBackwardsFromEndc	CsP|jdd�t|j��0}|�dd�|�|��|jddd��WdQRXdS)Nr~)r9i���)r<r	rr�rGrEr()rrHrrr�%testSeekBackwardsFromEndAcrossStreamsJsz1BZ2FileTest.testSeekBackwardsFromEndAcrossStreamsc	CsR|��t|j��6}|�d�|�|��t|j��|�|��d�WdQRXdS)Ni�Ir)	r<r	rr�rG�tellrPr(rE)rrHrrr�testSeekPostEndPs

zBZ2FileTest.testSeekPostEndc	CsZ|jdd�t|j��:}|�d�|�|��t|j�d�|�|��d�WdQRXdS)NrL)r9i�Ir)	r<r	rr�rGr�rPr(rE)rrHrrr�testSeekPostEndMultiStreamWs

z&BZ2FileTest.testSeekPostEndMultiStreamc	Cs\|��t|j��@}|�d�|�d�|�|��t|j��|�|��d�WdQRXdS)Ni�Ir)	r<r	rr�rGr�rPr(rE)rrHrrr�testSeekPostEndTwice^s

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

z+BZ2FileTest.testSeekPostEndTwiceMultiStreamc	CsN|��t|j��2}|�d�|�|��d�|�|��|j�WdQRXdS)Nij���r)r<r	rr�rGr�rEr()rrHrrr�testSeekPreStartns

zBZ2FileTest.testSeekPreStartc	CsV|jdd�t|j��6}|�d�|�|��d�|�|��|jd�WdQRXdS)Nr~)r9ij���r)r<r	rr�rGr�rEr()rrHrrr�testSeekPreStartMultiStreamus

z'BZ2FileTest.testSeekPreStartMultiStreamc	Cs^|��t|jd��2}t|�}z|�|��|���Wd|��XWdQRX|�t|j�dS)Nr)	r<r1rr	rG�filenorqr@rB)rZrawfrHrrr�
testFileno|szBZ2FileTest.testFilenocCs�tt|j��}z(|�|���|��|�|���Wd|��X|�t|j�tt�d�}z|�	|���Wd|��X|�t|j�t|j�}dd�|_t|�}z|�	|���Wd|��X|�t|j�dS)NrtcSsdS)NFrrrrr�<lambda>�rz*BZ2FileTest.testSeekable.<locals>.<lambda>)
r	rr)r^�seekablerErqr@rB�assertFalse)rrH�srcrrr�testSeekable�s&




zBZ2FileTest.testSeekablecCs�tt|j��}z(|�|���|��|�|���Wd|��X|�t|j�tt�d�}z|�	|���Wd|��X|�t|j�dS)Nrt)
r	rr)r^�readablerErqr@rBr�)rrHrrr�testReadable�s

zBZ2FileTest.testReadablecCs�tt|j��}z(|�|���|��|�|���Wd|��X|�t|j�tt�d�}z|�	|���Wd|��X|�t|j�dS)Nrt)
r	rr)r��writablerErqr@rBr^)rrHrrr�testWritable�s

zBZ2FileTest.testWritablecCs*|��xtd�D]}t|j�}~qWdS)Ni')r<�ranger	r)r�i�orrr�testOpenDel�s
zBZ2FileTest.testOpenDelcCs|�ttd�dS)Nz
/non/existent)r@rJr	)rrrr�testOpenNonexistent�szBZ2FileTest.testOpenNonexistentc	Cs�d}t|jd��}|�|�WdQRXt|j��}|��}WdQRX|�|dg�t|j��}t|���}WdQRX|�|dg�dS)Ns,BZh91AY&SY�b�]� !�h3M<]��BCe�%tr7sTest)r1rr8r	rjrGrm)rrr;rH�linesZxlinesrrr�testReadlinesNoNewline�sz"BZ2FileTest.testReadlinesNoNewlinec	Cs�d}t|jd��}|�d�WdQRXt|jd�}|��y|�WdQRXWntk
rbYnX|�d�y$t|jd��}ddWdQRXWntk
r�YnX|�d�dS)Nr7sxxxrz4__enter__ on a closed file didn't raise an exceptionrrz1/0 didn't raise an exception)r	rr8rqrBZfail�ZeroDivisionError)rr;rrr�testContextProtocol�s"
zBZ2FileTest.testContextProtocolc
sbdd�d}t|jd��@���fdd���fdd�t|�D�}t�|��WdQRXWdQRXdS)	N�1ir?r7cs xtd�D]}����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>)r	rr�rZ
start_threads)rZnthreadsZthreadsr)r�rr;r�
testThreading�szBZ2FileTest.testThreadingc	Cs|��t|jd�}|d}t|j��H}|�|�|�t|�|jd|d��|�|��|j|d��WdQRXt|j��:}|�	�|�t|�|jd�|�|�	�|jd�WdQRXt|j��,}|�
�|�tt|�|�|�
�g�WdQRXdS)Nrr~r)
r<rPr&r	rrErGrrr(rfrjr@�
StopIteration)rZlinelenZhalflenrHrrr�testMixedIterationAndReads�s
$ z&BZ2FileTest.testMixedIterationAndReadsc	Cszd}d}t|jd��}|�|�WdQRXt|jd��}|�|�WdQRXt|j��}|�|��||�WdQRXdS)Ns�foofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoos�barbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarrtrx)r	rr8rGrE)rZdata1Zdata2rHrrr�testMultiStreamOrdering	sz#BZ2FileTest.testMultiStreamOrderingc	Cs�|j}y|�d�}Wntk
r2|�d�YnXt|d��}|�|j�WdQRXt|d��}|�|��|j�WdQRXt|d��}|�|��|j�WdQRXdS)N�asciiz%Temporary file name needs to be ASCIIr7r)	r�encode�UnicodeEncodeErrorZskipTestr	r8r)rGrE)rZstr_filenameZbytes_filenamer;rrr�testOpenBytesFilenamesz!BZ2FileTest.testOpenBytesFilenamec	CsZt�|j�}t|d��}|�|j�WdQRXt|d��}|�|��|j�WdQRXdS)Nr7r)�pathlibZPathrr	r8r)rGrE)rrr;rrr�testOpenPathLikeFilename"s
z$BZ2FileTest.testOpenPathLikeFilenamecCshtjdtd�dd�}|�t|�tj�tt|��}|�	|�
d�d�dt}|�|j
j��|d�dS)z-Decompressed data buffering should be limited�g��>A�	)rrz)Excessive amount of data was decompressedN)rr4�intZ
assertLessrPrNrOr	rrGrEr�assertLessEqualZ_buffer�rawr�)rZbombZdecompZ
max_decomprrr�testDecompressLimited)sz!BZ2FileTest.testDecompressLimitedc
Cs^t|j��J}t|��*}|�t|jt��|�|��|j�WdQRX|�	|j
�WdQRXdS)N)rr)r	r@rArErFrGr(r��closed)r�biorHrrr�testReadBytesIO7s

zBZ2FileTest.testReadBytesIOc
Csjt|j��V}t|��B}|��}|�t|�d�|�|j�|��|�	|�
�|j�WdQRXWdQRXdS)Nr)rr)r	r\r]rPr^r(r_rGrE)rr�rHr`rrr�testPeekBytesIO>s
zBZ2FileTest.testPeekBytesIOc
Csht��X}t|d�� }|�t|j�|�|j�WdQRX|�t|���|j�|�	|j
�WdQRXdS)Nrt)rr	r@rAr8r(rGr�getvaluer�r�)rr�rHrrr�testWriteBytesIOFszBZ2FileTest.testWriteBytesIOc
Cs`t|j��L}t|��8}|�t|j�|�d�|�|��|jdd��WdQRXWdQRXdS)Nr�)	rr)r	r@rAr�rGrEr()rr�rHrrr�testSeekForwardBytesIONs


z"BZ2FileTest.testSeekForwardBytesIOc
Cs^t|j��J}t|��6}|�d�|�dd�|�|��|jdd��WdQRXWdQRXdS)Ni�ij���ri^)rr)r	rEr�rGr()rr�rHrrr�testSeekBackwardsBytesIOUs


z$BZ2FileTest.testSeekBackwardsBytesIOc
Cs�|jdd�}tt|���}|�t|j�WdQRXtt|���0}|�|�t|j��|j�|�t|jd�WdQRXx@t	d�D]4}tt|d|����}|�t|jd�WdQRXq�WdS)Ni����r�)
r)r	rr@�EOFErrorrErGrPr(r�)rZ	truncatedr;r�rrr�test_read_truncated\szBZ2FileTest.test_read_truncatedN)rr)?r"r#r$r%r<rDrIrKrMrRrSrTrUrXrYr[rarerhrirkrlrorprsrurvrwrzr}rr�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�r�r�r�rrrrr6Vsx

	

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

z BZ2CompressorTest.testCompress4Gc
Cs@x:ttjd�D](}|�t��t�t�|�WdQRXqWdS)Nr)r��pickle�HIGHEST_PROTOCOLr@rA�dumpsr
)r�protorrr�
testPickle�szBZ2CompressorTest.testPickleN)
r"r#r$r�r�r�rrr�r�rrrrr�js

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|�ttd�dS)N�*)r@rAr)rrrr�test_Constructor�sz$BZ2DecompressorTest.test_ConstructorcCs2t�}|�t|j�|�|j�}|�||j�dS)N)rr@rArr)rGr()r�bz2drVrrr�testDecompress�sz"BZ2DecompressorTest.testDecompresscCs\t�}d}d}x:|j|d|dd�}|s0P||�|�7}|d7}qW|�||j�dS)Nrrr?r)rr)rrGr()rr�rVrcrWrrr�testDecompressChunks10�sz*BZ2DecompressorTest.testDecompressChunks10cCs:t�}d}|�|j|�}|�||j�|�|j|�dS)Nsthis is unused data)rrr)rGr(�unused_data)rr�r�rVrrr�testDecompressUnusedData�s
z,BZ2DecompressorTest.testDecompressUnusedDatacCs6t�}|�|j�}|�t|jd�|�t|jd�dS)Nsanythingr)rrr)r@r�)rr�rVrrr�testEOFError�sz BZ2DecompressorTest.testEOFErrorrZgffffff
@)r�r�cCsjd}t�|d��|d�}z<|||d}t�|�}t�}|�|�}|�||k�Wdd}d}d}XdS)Ni���littler)�randomZgetrandbits�to_bytesrr4rrr^)rr�Z	blocksize�blockrr�r�Zdecompressedrrr�testDecompress4G�s

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

z1BZ2DecompressorTest.testDecompressorChunksMaxsizecCs�t�}g}|�|j|jdd�dd�d�|�|�dd��|�|�|jdd�d��|�|�|jdd���|�d�|�|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|jdd�dd�d�|�|�d��|�|�|jdd�d��|�|�|jdd�d��|�|�|jdd���|�d�|�|j�dS)N��r)r�rir~i,)rrGrr)r�r'r()rr�r�rrr�test_decompressor_inputbuf_2	sz0BZ2DecompressorTest.test_decompressor_inputbuf_2cCstt�}g}|�|�|jdd�d��|�|�|jdd�d��|�|�|jdd���|�d�|�|j�dS)Nr�rLi,r)rr�rr)rGr'r()rr�r�rrr�test_decompressor_inputbuf_3sz0BZ2DecompressorTest.test_decompressor_inputbuf_3cCs6t�}|�t|j|jd�|�t|j|jd�dS)N�)rr@�	Exceptionrr+)rr�rrr�test_failure.sz BZ2DecompressorTest.test_failurecCsLt�td�}t�}|�}xtd�D]}|��q"W|j|�|ddd�dS)N�gettotalrefcountrZrr?)Zdelta)rZ
get_attribute�sysrr��__init__ZassertAlmostEqual)rr�r�Zrefs_beforer�rrr�test_refleaks_in___init__4s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"t�|j�}|�t|�|j�dS)N)rr4r(rGr)rrrrrr�?sz#CompressDecompressTest.testCompresscCst�d�}|�||j�dS)Nr)rr4rGr*)rrVrrrr�Cs
z.CompressDecompressTest.testCompressEmptyStringcCst�|j�}|�||j�dS)N)rrr)rGr()rrVrrrr�Gsz%CompressDecompressTest.testDecompresscCst�d�}|�|d�dS)Nr)rrrG)rrVrrr�testDecompressEmptyKs
z*CompressDecompressTest.testDecompressEmptycCst�|j�}|�|d�dS)Nr)rrr*rG)rrVrrr�testDecompressToEmptyStringOsz2CompressDecompressTest.testDecompressToEmptyStringcCs|�ttj|jdd��dS)Ni����)r@rBrrr))rrrr�testDecompressIncompleteSsz/CompressDecompressTest.testDecompressIncompletecCs|�ttj|j�dS)N)r@rJrrr+)rrrr�testDecompressBadDataVsz,CompressDecompressTest.testDecompressBadDatacCs&t�|jd�}|�||jd�dS)NrL)rrr)rGr()rrVrrr�testDecompressMultiStreamYsz0CompressDecompressTest.testDecompressMultiStreamcCs$t�|j|j�}|�||j�dS)N)rrr)r+rGr()rrVrrr�testDecompressTrailingJunk]sz1CompressDecompressTest.testDecompressTrailingJunkcCs,t�|jd|j�}|�||jd�dS)NrL)rrr)r+rGr()rrVrrr�%testDecompressMultiStreamTrailingJunkasz<CompressDecompressTest.testDecompressMultiStreamTrailingJunkN)
r"r#r$r�r�r�r�r�r�r�r�r�rrrrrr�>sr�c@s`eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�OpenTestzTest the open function.cOstj||�S)N)rr1)r�args�kwargsrrrr1isz
OpenTest.openc
Csx�dD]�}|dkrt|j�|�|j|��}|�|j�WdQRXt|jd�� }t|���}|�||j�WdQRX|�|jd��}|�|��|j�WdQRX|�|jd��}|�|j�WdQRXt|jd��$}t|���}|�||jd�WdQRXqWdS)N)r7�xbrrZabr~)rrr1r8r(rrErG)r�moder;�	file_datarrr�test_binary_modesls

zOpenTest.test_binary_modesc
Csx�dD]�}|dkrt|j�|�|j|��}|�|j�WdQRXt|jd�� }t|���}|�||j�WdQRX|�|jd��}|�|��|j�WdQRX|�|jd��}|�|j�WdQRXt|jd��$}t|���}|�||jd�WdQRXqWdS)N)rt�xrrr{rxr~)rrr1r8r(rrErG)rrr;rrrr�test_implicit_binary_modes}s

z#OpenTest.test_implicit_binary_modesc
Cs"|j�d�}|�dtj�}�xdD]�}|dkr8t|j�|�|j|��}|�|�WdQRXt|jd��$}t	|�
���d�}|�||�WdQRX|�|jd��}|�|�
�|�WdQRX|�|jd��}|�|�WdQRXt|jd��(}t	|�
���d�}|�||d�WdQRXq"WdS)	Nr��
)�wt�xtrr�rtZatr~)r(�decode�replacer�lineseprrr1r8rrErG)rrV�text_native_eolrr;rrrr�test_text_modes�s"
zOpenTest.test_text_modescCsfx`dD]X}t|j�|�|j|��}WdQRX|�t�� |�|j|��}WdQRXWdQRXqWdS)N)rrr)rrr1r@�FileExistsError)rrr;rrr�test_x_mode�s


zOpenTest.test_x_modec	Cs�|�t|j�d��}|�|��|j�WdQRX|�t|j�d��}|�|��|j�WdQRX|j�d�}|�t|j�d��}|�|��|�WdQRXdS)Nr{rr�r
)r1rr)rGrEr(r)rr;rVrrr�test_fileobj�szOpenTest.test_fileobjcCst|�t|j|jd�|�t|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_paramsc	Cs�|j�d�}|�dtj�}|j|jddd��}|�|�WdQRXt|jd��$}t|�	���d�}|�
||�WdQRX|j|jddd��}|�
|�	�|�WdQRXdS)Nr�r
rz	utf-16-le)rrr
)r(rrrrr1rr8rrErG)rrVrr;rrrr�
test_encoding�szOpenTest.test_encodingc	CsX|�|jd��}|�d�WdQRX|j|jdddd��}|�|��d�WdQRXdS)Nr7sfoo�barr
r�r)rrZfoobar)r1rr8rGrE)rr;rrr�test_encoding_error_handler�s
z$OpenTest.test_encoding_error_handlerc	Csh|j�d�}|j|jddd��}|�|�WdQRX|j|jddd��}|�|��|g�WdQRXdS)Nr�rr
)rr
�
)r(rr1rr8rGrj)rrVr;rrr�test_newline�s
zOpenTest.test_newlineN)r"r#r$r%r1rr	rrrrrrrrrrrrfs		
rcCst�ttttt�t��dS)N)rZrun_unittestr6r�r�r�rZ
reap_childrenrrrr�	test_main�sr�__main__)$ZtestrZtest.supportrrZunittest�iorrrr�r.r�r�rrr�rrNr��
import_modulerr	r
rr
rZTestCaserr6r�r�r�rrr"rrrr�<module>s@
	42#(x