Your IP : 216.73.216.196


Current Path : /opt/alt/python310/lib64/python3.10/test/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/test/__pycache__/test_bz2.cpython-310.opt-2.pyc

o

0�i��@sdddlmZddlmZmZddlZddlZddlmZm	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlmZddlmZddlmZddlZddlZe�d�Zdd	lmZmZmZdad
d�ZGdd
�d
ej �Z!Gdd�de!�Z"Gdd�de!�Z#Gdd�de!�Z$Gdd�de!�Z%Gdd�de!�Z&dd�Z'e(dkr�e�)�dSdS)�)�support)�
bigmemtest�_4GN)�BytesIO�DEFAULT_BUFFER_SIZE)�
import_helper)�threading_helper)�unlink�bz2)�BZ2File�
BZ2Compressor�BZ2DecompressorcCs4tdurtt�d��atrtjdg|d�St�|�S)NZbunzip2)�input)�has_cmdline_bunzip2�bool�shutilZwhich�
subprocessZcheck_outputr
�
decompress)�data�r�4/opt/alt/python310/lib64/python3.10/test/test_bz2.py�ext_decompresss

rc	@s�eZdZ	gd�Zd�e�ZdZdZdZdZ	e
d�Ze�e
j�e�e
j�e��d��D]*Zeed	��Ze	e�ee�e	d
��7Z	Wd
�n1sJwYe	dkrUnq+ejedd�Zd
d�Zdd�Zd
S)�BaseTest)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��Z
compresslevelcCst��\}|_t�|�dS�N)�tempfileZmkstemp�filename�os�close)�self�fdrrr�setUpRszBaseTest.setUpcCst|j�dSr)r	r�r"rrr�tearDownVszBaseTest.tearDown)�__name__�
__module__�__qualname__�
TEXT_LINES�join�TEXT�DATA�
EMPTY_DATA�BAD_DATAZ	test_size�	bytearray�BIG_TEXT�globr �path�escape�dirname�__file__Zfname�openZfh�readinto�
memoryviewr
�compress�BIG_DATAr$r&rrrrr&s&
&��rc@s�eZdZ	d|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`�Z1dadb�Z2dcdd�Z3dedf�Z4dgdh�Z5didj�Z6dkdl�Z7dmdn�Z8dodp�Z9dqdr�Z:dsdt�Z;dudv�Z<dwdx�Z=dydz�Z>d{S)}�BZ2FileTestrrcCsLt|jd��}|�|j|�|�|�Wd�dS1swYdS)N�wb)r7r�writer-)r"�streams�suffix�frrr�createTempFile]s"�zBZ2FileTest.createTempFilecCs�|�ttd�|�tttjd�|�tttjd�|�tttjd�|jtttjdd�|jtttjdd�|�tttjdd	�dS)
Ngw��/�^@�zZrxZrbtrr�
�r�)�assertRaises�	TypeErrorr�
ValueErrorr �devnullr%rrr�testBadArgsbszBZ2FileTest.testBadArgscCs\|��t|j��}|�t|jt��|�|��|j�Wd�dS1s'wYdSr�	rBrrrGrH�read�float�assertEqualr,�r"�bz2frrr�testReadm�
"�zBZ2FileTest.testReadcCsN|jd|jd�t|j��}|�t|j�Wd�dS1s wYdS)Nr�r?r@)rBr/rrrG�OSErrorrMrPrrr�testReadBadFiless"�zBZ2FileTest.testReadBadFilecCsd|jdd�t|j��}|�t|jt��|�|��|jd�Wd�dS1s+wYdS�N��r?rLrPrrr�testReadMultiStreamxs
"�zBZ2FileTest.testReadMultiStreamcCs�tj}t|j�t_z;|jdd�t|j��}|�t|j	t
��|�|�	�|jd�Wd�n1s4wYW|t_dSW|t_dS|t_wrW)
�_compression�BUFFER_SIZE�lenr-rBrrrGrHrMrNrOr,)r"Zbuffer_sizerQrrr�testReadMonkeyMultiStream~s�
�z%BZ2FileTest.testReadMonkeyMultiStreamcCsP|j|jd�t|j��}|�|��|j�Wd�dS1s!wYdS)N)r@�rBr/rrrOrMr,rPrrr�testReadTrailingJunk�s"�z BZ2FileTest.testReadTrailingJunkcCsV|jd|jd�t|j��}|�|��|jd�Wd�dS1s$wYdS)NrXrTr_rPrrr�testReadMultiStreamTrailingJunk�s"�z+BZ2FileTest.testReadMultiStreamTrailingJunkcCs\|��t|j��}|�t|jt��|�|�d�d�Wd�dS1s'wYdS)Nrr)rBrrrGrHrMrNrOrPrrr�	testRead0�rSzBZ2FileTest.testRead0cCsf|��t|j�� }d}	|�d�}|sn||7}q
|�||j�Wd�dS1s,wYdS)NrTrD�rBrrrMrOr,�r"rQ�text�strrrr�testReadChunk10�s
�"�zBZ2FileTest.testReadChunk10cCsn|jdd�t|j��"}d}	|�d�}|sn||7}q|�||jd�Wd�dS1s0wYdS)NrXrYrTrDrcrdrrr�testReadChunk10MultiStream�s
�"�z&BZ2FileTest.testReadChunk10MultiStreamcCsT|��t|j��}|�|�d�|jdd��Wd�dS1s#wYdS)N�d)rBrrrOrMr,rPrrr�testRead100�s"�zBZ2FileTest.testRead100cCst|��t|j��'}|��}|�t|�d�|�|j�|��|�	|�
�|j�Wd�dS1s3wYdS�Nr)rBrr�peek�assertNotEqualr]�
assertTruer,�
startswithrOrM)r"rQ�pdatarrr�testPeek�s"�zBZ2FileTest.testPeekcCs�|��t|j��J}d}t|�}|�|�|�|�|�||jd|��t|j�|}tt|j��}|�|�|�|�|�|d|�|j|d��Wd�dS1sVwYdS)N�)rBrrr0rOr8r,r])r"rQ�n�brrr�testReadInto�s""�zBZ2FileTest.testReadIntocCsd|��t|j��}|�t|jd�|jD]
}|�|��|�qWd�dS1s+wYdSr�rBrrrGrH�readliner*rO�r"rQ�linerrr�testReadLine�s
�"�zBZ2FileTest.testReadLinecCsl|jdd�t|j��!}|�t|jd�|jdD]
}|�|��|�qWd�dS1s/wYdSrWrvrxrrr�testReadLineMultiStream�s�"�z#BZ2FileTest.testReadLineMultiStreamcCsZ|��t|j��}|�t|jd�|�|��|j�Wd�dS1s&wYdSr�rBrrrGrH�	readlinesrOr*rPrrr�
testReadLines�s
"�zBZ2FileTest.testReadLinescCsb|jdd�t|j��}|�t|jd�|�|��|jd�Wd�dS1s*wYdSrWr|rPrrr�testReadLinesMultiStream�s
"�z$BZ2FileTest.testReadLinesMultiStreamcCsN|��t|j��}|�tt|��|j�Wd�dS1s wYdSr�rBrrrO�list�iterr*rPrrr�testIterator�s"�zBZ2FileTest.testIteratorcCsV|jdd�t|j��}|�tt|��|jd�Wd�dS1s$wYdSrWr�rPrrr�testIteratorMultiStream�s"�z#BZ2FileTest.testIteratorMultiStreamcCs:|��t|j�}|��|�tt|�|�t|j�dSr)rBrrr!rGrI�nextr}rPrrr�testClosedIteratorDeadlock�s

z&BZ2FileTest.testClosedIteratorDeadlockcCs�t|jd��}|�t|j�|�|j�Wd�n1swYt|jd��}|�t|�	��|j�Wd�dS1s@wYdS)N�wr�
rrrGrHr>r,r7rOrrM�r"rQrArrr�	testWrite�s�"�zBZ2FileTest.testWritecCs�t|jd��%}d}	|j|d|dd�}|sn
|�|�|d7}q
Wd�n1s.wYt|jd��}|�t|���|j�Wd�dS1sPwYdS)Nr�rTrDrr)rrr,r>r7rOrrM)r"rQrsrfrArrr�testWriteChunks10�s
��"�zBZ2FileTest.testWriteChunks10cCs�tj|jdd�}t|jddd��}|�|j�Wd�n1s!wYt|jd��}|�|��|�Wd�dS1s@wYdS)NrXrr�r)	r
r:r,rrr>r7rOrM)r"ZexpectedrQrArrr� testWriteNonDefaultCompressLevel
s�"�z,BZ2FileTest.testWriteNonDefaultCompressLevelcCs�t|jd��}|�t|j�|�|j�Wd�n1swY|�t|jdg�t|jd��}|�t	|�
��|j�Wd�dS1sIwYdS)Nr��ar)rrrGrH�
writelinesr*rIr7rOrrMr,r�rrr�testWriteLiness�"�zBZ2FileTest.testWriteLinescCs�t|jd��
}|�d�Wd�n1swYt|jd��}|�t|jd�|�t|jdg�Wd�dS1s>wYdS)Nr�sabcrE�a)rrr>rGrUr�rPrrr�testWriteMethodsOnReadOnlyFiles�"�z*BZ2FileTest.testWriteMethodsOnReadOnlyFilecCs�t|jd��}|�t|j�|�|j�Wd�n1swYt|jd��}|�t|j�|�|j�Wd�n1sAwYt|jd��}|�t|�	��|jd�Wd�dS1sewYdS)Nr�r�r�r�r�rrr�
testAppend#s��"�zBZ2FileTest.testAppendcCsj|��t|j��"}|�t|j�|�d�|�|��|jdd��Wd�dS1s.wYdS�N�)	rBrrrGrH�seekrOrMr,rPrrr�testSeekForward-s
"�zBZ2FileTest.testSeekForwardcCsx|jdd�t|j��'}|�t|j�|�t|j�d�|�|�	�|jdd��Wd�dS1s5wYdS)Nr�rYr�)
rBrrrGrHr�r]r,rOrMrPrrr�testSeekForwardAcrossStreams4s"�z(BZ2FileTest.testSeekForwardAcrossStreamscCsh|��t|j��!}|�d�|�dd�|�|��|jdd��Wd�dS1s-wYdS�Ni��j���ri^)rBrrrMr�rOr,rPrrr�testSeekBackwards;s
"�zBZ2FileTest.testSeekBackwardscCs�|jdd�t|j��7}t|j�d}|dkr$|t|�|��8}|dks|�dd�|�|��|jdd�|j�Wd�dS1sEwYdS)Nr�rYrirr�ri���)rBrrr]r,rMr�rO)r"rQZreadtorrr�testSeekBackwardsAcrossStreamsBs�""�z*BZ2FileTest.testSeekBackwardsAcrossStreamscCsh|��t|j��!}|�dd�|�|��|jt|j�dd��Wd�dS1s-wYdS)Nr�r�r�)rBrrr�rOrMr,r]rPrrr�testSeekBackwardsFromEndKs
&"�z$BZ2FileTest.testSeekBackwardsFromEndcCsf|jdd�t|j��}|�dd�|�|��|jddd��Wd�dS1s,wYdS)Nr�rYi���)rBrrr�rOrMr,rPrrr�%testSeekBackwardsFromEndAcrossStreamsQs
 "�z1BZ2FileTest.testSeekBackwardsFromEndAcrossStreamscCsh|��t|j��!}|�d�|�|��t|j��|�|��d�Wd�dS1s-wYdS�N��Ir�	rBrrr�rO�tellr]r,rMrPrrr�testSeekPostEndWs
"�zBZ2FileTest.testSeekPostEndcCsp|jdd�t|j��#}|�d�|�|��t|j�d�|�|��d�Wd�dS1s1wYdS�NrXrYr�rr�rPrrr�testSeekPostEndMultiStream^s
"�z&BZ2FileTest.testSeekPostEndMultiStreamcCsr|��t|j��&}|�d�|�d�|�|��t|j��|�|��d�Wd�dS1s2wYdSr�r�rPrrr�testSeekPostEndTwicees

"�z BZ2FileTest.testSeekPostEndTwicecCsz|jdd�t|j��(}|�d�|�d�|�|��t|j�d�|�|��d�Wd�dS1s6wYdSr�r�rPrrr�testSeekPostEndTwiceMultiStreamms

"�z+BZ2FileTest.testSeekPostEndTwiceMultiStreamcCsd|��t|j��}|�d�|�|��d�|�|��|j�Wd�dS1s+wYdS)Nr�r�rBrrr�rOr�rMr,rPrrr�testSeekPreStartus
"�zBZ2FileTest.testSeekPreStartcCsl|jdd�t|j��!}|�d�|�|��d�|�|��|jd�Wd�dS1s/wYdS)Nr�rYr�rr�rPrrr�testSeekPreStartMultiStream|s
"�z'BZ2FileTest.testSeekPreStartMultiStreamc	Csz|��t|jd��"}t|�}z|�|��|���W|��n|��wWd�n1s/wY|�t|j�dS)Nr)	rBr7rrrO�filenor!rGrI)r"ZrawfrQrrr�
testFileno�s�zBZ2FileTest.testFilenocCs�tt|j��}z|�|���|��|�|���W|��n|��w|�t|j�tt�d�}z
|�	|���W|��n|��w|�t|j�t|j�}dd�|_t|�}z
|�	|���W|��n|��w|�t|j�dS)Nr�cSsdS)NFrrrrr�<lambda>�sz*BZ2FileTest.testSeekable.<locals>.<lambda>)
rrr-rn�seekablerMr!rGrI�assertFalse)r"rQ�srcrrr�testSeekable�s&

zBZ2FileTest.testSeekablecC�tt|j��}z|�|���|��|�|���W|��n|��w|�t|j�tt�d�}z
|�	|���W|��n|��w|�t|j�dS�Nr�)
rrr-rn�readablerMr!rGrIr�rPrrr�testReadable��zBZ2FileTest.testReadablecCr�r�)
rrr-r��writablerMr!rGrIrnrPrrr�testWritable�r�zBZ2FileTest.testWritablecCs&|��td�D]}t|j�}~qdS)Ni')rB�rangerr)r"�i�orrr�testOpenDel�s

�zBZ2FileTest.testOpenDelcC�|�ttd�dS)Nz
/non/existent)rGrUrr%rrr�testOpenNonexistent��zBZ2FileTest.testOpenNonexistentcCs�d}t|jd��
}|�|�Wd�n1swYt|j��}|��}Wd�n1s1wY|�|dg�t|j��}t|���}Wd�n1sSwY|�|dg�dS)Ns,BZh91AY&SY�b�]� !�h3M<]��BCe�%tr=sTest)r7rr>rr}rOr�)r"rrArQ�linesZxlinesrrr�testReadlinesNoNewline�s�
��z"BZ2FileTest.testReadlinesNoNewlinecCs�d}t|jd��
}|�d�Wd�n1swYt|jd�}|��z|�Wd�n1s5wYWn	tyDYnw|�d�zt|jd��}ddWd�n1s`wYWn
typYdSw|�d�dS)Nr=sxxxrz4__enter__ on a closed file didn't raise an exceptionrrz1/0 didn't raise an exception)rrr>r!rIZfail�ZeroDivisionError�r"rArrr�testContextProtocol�s0����

���zBZ2FileTest.testContextProtocolc	s�dd�d}t|jd��8���fdd���fdd�t|�D�}t�|��Wd�n1s/wYWd�dSWd�dS1sGwYdS)	N�1irDr=cstd�D]}����qdS�NrX)r�r>)r�)rrArr�comp�s�z'BZ2FileTest.testThreading.<locals>.compcsg|]}tj�d��qS))�target)�	threadingZThread)�.0r�)r�rr�
<listcomp>�sz-BZ2FileTest.testThreading.<locals>.<listcomp>)rrr�rZ
start_threads)r"ZnthreadsZthreadsr)r�rrAr�
testThreading�s��"�zBZ2FileTest.testThreadingcCs>|��t|jd�}|d}t|j��)}|�|�|�t|�|jd|d��|�|��|j|d��Wd�n1s@wYt|j��"}|�	�|�t|�|jd�|�|�	�|jd�Wd�n1sowYt|j��}|�
�|�tt|�|�|�
�g�Wd�dS1s�wYdS)Nrr�r)
rBr]r*rrrMrOr�r,rwr}rG�
StopIteration)r"ZlinelenZhalflenrQrrr�testMixedIterationAndReads�s$
��"�z&BZ2FileTest.testMixedIterationAndReadscCs�d}d}t|jd��
}|�|�Wd�n1swYt|jd��
}|�|�Wd�n1s5wYt|j��}|�|��||�Wd�dS1sUwYdS)Ns�foofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoos�barbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarr�r�)rrr>rOrM)r"Zdata1Zdata2rQrrr�testMultiStreamOrderings��"�z#BZ2FileTest.testMultiStreamOrderingcCs�|j}z|�d�}Wnty|�d�Ynwt|d��}|�|j�Wd�n1s/wYt|d��}|�|��|j�Wd�n1sMwYt|d��}|�|��|j�Wd�dS1slwYdS)N�asciiz%Temporary file name needs to be ASCIIr=r)	r�encode�UnicodeEncodeErrorZskipTestrr>r-rOrM)r"Zstr_filenameZbytes_filenamerArrr�testOpenBytesFilenames���"�z!BZ2FileTest.testOpenBytesFilenamecCs�t�|j�}t|d��}|�|j�Wd�n1swYt|d��}|�|��|j�Wd�dS1s;wYdS)Nr=r)�pathlibZPathrrr>r-rOrM)r"rrArrr�testOpenPathLikeFilename)s�"�z$BZ2FileTest.testOpenPathLikeFilenamecCsj	tjdtd�dd�}|�t|�tj�tt|��}|�	|�
d�d�dt}|�|j
j��|d�dS)N�g��>A�	rrz)Excessive amount of data was decompressed)r
r:�intZ
assertLessr]r[r\rrrOrMr�assertLessEqualZ_buffer�rawr�)r"ZbombZdecompZ
max_decomprrr�testDecompressLimited0s�z!BZ2FileTest.testDecompressLimitedc	Cs�t|j��5}t|��}|�t|jt��|�|��|j�Wd�n1s'wY|�	|j
�Wd�dS1s=wYdSr)rr-rrGrHrMrNrOr,r��closed�r"�biorQrrr�testReadBytesIO>s
�"�zBZ2FileTest.testReadBytesIOc	Cs�t|j��C}t|��&}|��}|�t|�d�|�|j�|��|�	|�
�|j�Wd�n1s3wYWd�dSWd�dS1sKwYdSrk)rr-rrlrmr]rnr,rorOrM)r"r�rQrprrr�testPeekBytesIOEs
��"�zBZ2FileTest.testPeekBytesIOc	Cs�t��<}t|d��}|�t|j�|�|j�Wd�n1s!wY|�t|���|j�|�	|j
�Wd�dS1sBwYdSr�)rrrGrHr>r,rOr�getvaluer�r�r�rrr�testWriteBytesIOMs�"�zBZ2FileTest.testWriteBytesIOc	Cs�t|j��>}t|��!}|�t|j�|�d�|�|��|jdd��Wd�n1s.wYWd�dSWd�dS1sFwYdSr�)	rr-rrGrHr�rOrMr,r�rrr�testSeekForwardBytesIOUs

��"�z"BZ2FileTest.testSeekForwardBytesIOc	Cs�t|j��=}t|�� }|�d�|�dd�|�|��|jdd��Wd�n1s-wYWd�dSWd�dS1sEwYdSr�)rr-rrMr�rOr,r�rrr�testSeekBackwardsBytesIO\s

��"�z$BZ2FileTest.testSeekBackwardsBytesIOc	Cs�|jdd�}tt|���}|�t|j�Wd�n1swYtt|���}|�|�t|j��|j�|�t|jd�Wd�n1sJwYt	d�D]$}tt|d|����}|�t|jd�Wd�n1srwYqSdS)N���r�)
r-rrrG�EOFErrorrMrOr]r,r�)r"Z	truncatedrAr�rrr�test_read_truncatedcs�����zBZ2FileTest.test_read_truncatedcCsrt�dgd��}t|�|j}tt�d��}|�|�|�|�|�|��|�Wd�dS1s2wYdS)N�Q)rr�rF�rXr�)�arrayr]�itemsizerrrOr>r�)r"�qZLENGTHrArrr�test_issue44439ps"�zBZ2FileTest.test_issue44439N)rr)?r'r(r)rBrKrRrVrZr^r`rarbrgrhrjrqrurzr{r~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�r�r�r�r�r�r�r�r�r�r�rrrrr<Zs|

	

	

r<c@sJeZdZdd�Zdd�Zdd�Zejee	ddd	�d
d���Z
dd
�ZdS)�BZ2CompressorTestcCsBt�}|�t|j�|�|j�}||��7}|�t|�|j�dSr)rrGrHr:r,�flushrOr�r"�bz2crrrr�testCompresszs
zBZ2CompressorTest.testCompresscCs.t�}|�d�}||��7}|�||j�dS�Nr)rr:r�rOr.r�rrr�testCompressEmptyString�s
z)BZ2CompressorTest.testCompressEmptyStringcCsjt�}d}d}	|j|d|dd�}|sn||�|�7}|d7}q||��7}|�t|�|j�dS)NrrTrDr)rr,r:r�rOr)r"r�rsrrfrrr�testCompressChunks10�s�z&BZ2CompressorTest.testCompressChunks10rir���sizeZmemusecCsvt�}d|}z|�|�}||��7}Wd}nd}wt�|�}z|�t|�|�|�t|�d��d�Wd}dSd}w)N�xr)rr:r�r
rrOr]�strip)r"r�r�r�
compressedrrr�testCompress4G�s

z BZ2CompressorTest.testCompress4Gc	C�Pttjd�D]}|�t��t�t�|�Wd�n1s wYqdS�Nr)r��pickle�HIGHEST_PROTOCOLrGrH�dumpsr�r"�protorrr�
testPickle�����zBZ2CompressorTest.testPickleN)r'r(r)r�r�r�r�skip_if_pgo_taskrrr�rrrrrr�ys
r�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zej	e
eddd
�dd���Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zejdd��ZdS)�BZ2DecompressorTestcCr�)N�*)rGrHr
r%rrr�test_Constructor�r�z$BZ2DecompressorTest.test_ConstructorcCs2t�}|�t|j�|�|j�}|�||j�dSr)r
rGrHrr-rOr,�r"�bz2drerrr�testDecompress�sz"BZ2DecompressorTest.testDecompresscCsZt�}d}d}	|j|d|dd�}|sn||�|�7}|d7}q|�||j�dS)NrrTrDr)r
r-rrOr,)r"rrersrfrrr�testDecompressChunks10�s�z*BZ2DecompressorTest.testDecompressChunks10cCs:t�}d}|�|j|�}|�||j�|�|j|�dS)Nsthis is unused data)r
rr-rOr,�unused_data)r"rrrerrr�testDecompressUnusedData�s
z,BZ2DecompressorTest.testDecompressUnusedDatacCs6t�}|�|j�}|�t|jd�|�t|jd�dS)Nsanythingr)r
rr-rGr�r
rrr�testEOFError�sz BZ2DecompressorTest.testEOFErrorrigffffff
@r�cCshd}t�|�}z%|||d}t�|�}t�}|�|�}|�||k�Wd}d}d}dSd}d}d}w)Ni�r)�randomZ	randbytesr
r:r
rrn)r"r�Z	blocksize�blockrr�rZdecompressedrrr�testDecompress4G�s


�z$BZ2DecompressorTest.testDecompress4Gc	Cr�r�)r�r�rrGrHrr
rrrrr�rzBZ2DecompressorTest.testPicklecCst�}d}g}t|j�d}|�|j|jd|�|d��|�|j�|�t|d�|�|�|jd|d��|�|j�|�t|d�|�|�|j|j|d�|d��|�t|d�|�|j	sz|�|jd|d��|�t|d�|�|j	rcd�
|�}|�||j�|�|jd�dS)Nri�@��
max_length���r)
r
r]r;�appendrr�Zneeds_inputrOr��eofr+r1r)r"�bzdr�outZlen_rrr�testDecompressorChunksMaxsize�s.���
z1BZ2DecompressorTest.testDecompressorChunksMaxsizecCs�t�}g}|�|j|jdd�dd�d�|�|�dd��|�|�|jdd�d��|�|�|jdd���|�d�|�|j�dS)Nrirrrr��i��r
rOrr-rr+r,�r"rrrrr�test_decompressor_inputbuf_1s��z0BZ2DecompressorTest.test_decompressor_inputbuf_1cCs�t�}g}|�|j|jdd�dd�d�|�|�d��|�|�|jdd�d��|�|�|jdd�d��|�|�|jdd���|�d�|�|j�dS)N��rrrir��,rr rrr�test_decompressor_inputbuf_2s��z0BZ2DecompressorTest.test_decompressor_inputbuf_2cCstt�}g}|�|�|jdd�d��|�|�|jdd�d��|�|�|jdd���|�d�|�|j�dS)Nr"rXr#r)r
rrr-rOr+r,r rrr�test_decompressor_inputbuf_3/sz0BZ2DecompressorTest.test_decompressor_inputbuf_3cCs6t�}|�t|j|jd�|�t|j|jd�dS)N�)r
rG�	Exceptionrr/)r"rrrr�test_failure?sz BZ2DecompressorTest.test_failurecCsHt�td�}t�}|�}td�D]}|��q|j|�|ddd�dS)N�gettotalrefcountrirrD)Zdelta)rZ
get_attribute�sysr
r��__init__ZassertAlmostEqual)r"r)rZrefs_beforer�rrr�test_refleaks_in___init__Es
z-BZ2DecompressorTest.test_refleaks_in___init__N)r'r(r)r	rr
rrrrrrrrrr!r$r%r(Z
refcount_testr,rrrrr�s"rc@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�CompressDecompressTestcCs"t�|j�}|�t|�|j�dSr)r
r:r,rOr)r"rrrrr�Psz#CompressDecompressTest.testCompresscCst�d�}|�||j�dSr�)r
r:rOr.�r"rerrrr�Ts
z.CompressDecompressTest.testCompressEmptyStringcCst�|j�}|�||j�dSr�r
rr-rOr,r.rrrrXsz%CompressDecompressTest.testDecompresscCst�d�}|�|d�dSr�)r
rrOr.rrr�testDecompressEmpty\s
z*CompressDecompressTest.testDecompressEmptycCst�|j�}|�|d�dSr�)r
rr.rOr.rrr�testDecompressToEmptyString`sz2CompressDecompressTest.testDecompressToEmptyStringcCs|�ttj|jdd��dS)Nr�)rGrIr
rr-r%rrr�testDecompressIncompletedsz/CompressDecompressTest.testDecompressIncompletecCs|�ttj|j�dSr)rGrUr
rr/r%rrr�testDecompressBadDatagsz,CompressDecompressTest.testDecompressBadDatacCs&t�|jd�}|�||jd�dSr�r/r.rrr�testDecompressMultiStreamjsz0CompressDecompressTest.testDecompressMultiStreamcCs$t�|j|j�}|�||j�dSr�r
rr-r/rOr,r.rrr�testDecompressTrailingJunknsz1CompressDecompressTest.testDecompressTrailingJunkcCs,t�|jd|j�}|�||jd�dSr�r5r.rrr�%testDecompressMultiStreamTrailingJunkrsz<CompressDecompressTest.testDecompressMultiStreamTrailingJunkN)
r'r(r)r�r�rr0r1r2r3r4r6r7rrrrr-Osr-c@s^eZdZ	dd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�OpenTestcOstj|i|��Sr)r
r7)r"�args�kwargsrrrr7zsz
OpenTest.openc	CsddD]�}|dkr
t|j�|�|j|��}|�|j�Wd�n1s%wYt|jd��}t|���}|�||j�Wd�n1sHwY|�|jd��}|�|��|j�Wd�n1shwY|�|jd��}|�|j�Wd�n1s�wYt|jd��}t|���}|�||jd�Wd�n1s�wYqdS)N)r=�xbr;rZabr��r	rr7r>r,rrMrO�r"�moderA�	file_datarrr�test_binary_modes}s,
�������zOpenTest.test_binary_modesc	CsddD]�}|dkr
t|j�|�|j|��}|�|j�Wd�n1s%wYt|jd��}t|���}|�||j�Wd�n1sHwY|�|jd��}|�|��|j�Wd�n1shwY|�|jd��}|�|j�Wd�n1s�wYt|jd��}t|���}|�||jd�Wd�n1s�wYqdS)N)r��xrArrEr�r�r<r=rrr�test_implicit_binary_modes�s,
�������z#OpenTest.test_implicit_binary_modesc	Cs�|j�d�}|�dtj�}dD]�}|dkrt|j�|j|j|dd��
}|�|�Wd�n1s3wYt|jd��}t	|�
���d�}|�||�Wd�n1sXwY|j|jddd��}|�|�
�|�Wd�n1sywY|j|jddd��
}|�|�Wd�n1s�wYt|jd��}t	|�
���d�}|�||d	�Wd�n1s�wYqdS)
Nr��
)�wt�xtrE��encodingr�rtZatr�)r,�decode�replacer �linesepr	rr7r>rrMrO)r"re�text_native_eolr>rAr?rrr�test_text_modes�s0
�������zOpenTest.test_text_modesc
Cs�dD]T}t|j�d|vrdnd}|j|j||d��}Wd�n1s%wY|�t��|�|j|��}Wd�n1sBwYWd�n1sQwYqdS)N)rAr;rE�t�utf-8rF)r	rr7rG�FileExistsError)r"r>rGrArrr�test_x_mode�s
������zOpenTest.test_x_modecCs�|�t|j�d��}|�|��|j�Wd�n1swY|�t|j�d��}|�|��|j�Wd�n1s?wY|j�d�}|jt|j�ddd��}|�|��|�Wd�dS1siwYdS)NrErr�rHrOrF)r7rr-rOrMr,rI)r"rArerrr�test_fileobj�s��"�zOpenTest.test_fileobjcCst|�t|j|jd�|�t|j|jd�|jt|j|jddd�|jt|j|jddd�|jt|j|jddd	�dS)
NZwbtZxbtrrOrF�ignore)�errorsrC)�newline)rGrIr7rr%rrr�test_bad_params�s
�
���
�zOpenTest.test_bad_paramscCs�|j�d�}|�dtj�}|j|jddd��
}|�|�Wd�n1s&wYt|jd��}t|�	���d�}|�
||�Wd�n1sKwY|j|jddd��}|�
|�	�|�Wd�dS1smwYdS)Nr�rCrDz	utf-16-lerFrrH)r,rIrJr rKr7rr>rrMrO)r"rerLrAr?rrr�
test_encoding�s��"�zOpenTest.test_encodingcCs�|�|jd��
}|�d�Wd�n1swY|j|jdddd��}|�|��d�Wd�dS1s:wYdS)Nr=sfoo�barrHr�rS)rGrTZfoobar)r7rr>rOrMr�rrr�test_encoding_error_handler�s�"�z$OpenTest.test_encoding_error_handlercCs�|j�d�}|j|jdddd��
}|�|�Wd�n1s wY|j|jdddd��}|�|��|g�Wd�dS1sDwYdS)Nr�rDrOrC)rGrUrH�
)r,rIr7rr>rOr})r"rerArrr�test_newline�s�"�zOpenTest.test_newlineN)
r'r(r)r7r@rBrMrQrRrVrWrXrZrrrrr8ws
	
r8cCst��dSr)rZ
reap_childrenrrrr�tearDownModule�sr[�__main__)*�testrZtest.supportrrr�Zunittest�iorrr r�r2rr�rrrr�rrZtest.support.os_helperr	r[r*�
import_moduler
rrr
rrZTestCaserr<r�rr-r8r[r'�mainrrrr�<module>sL
	4#3$(y�