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-1.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�eZdZdZgd�Zd�e�ZdZdZdZ	dZ
ed�Ze
�
ej�e
�ej�e��d	��D]*Zeed
��Ze
e�ee�e
d��7Z
Wd�n1sKwYe
dkrVnq,ejedd
�Zdd�Zdd�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��Z
compresslevelcCst��\}|_t�|�dS�N)�tempfileZmkstemp�filename�os�close)�self�fdrrr�setUpRszBaseTest.setUpcCst|j�dSr)r	r�r"rrr�tearDownVszBaseTest.tearDown)�__name__�
__module__�__qualname__�__doc__�
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�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>dzd{�Z?d|S)~�BZ2FileTestzTest the BZ2File class.rrcCsLt|jd��}|�|j|�|�|�Wd�dS1swYdS)N�wb)r8r�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�	rCrrrHrI�read�float�assertEqualr-�r"�bz2frrr�testReadm�
"�zBZ2FileTest.testReadcCsN|jd|jd�t|j��}|�t|j�Wd�dS1s wYdS)Nr�r@rA)rCr0rrrH�OSErrorrNrQrrr�testReadBadFiless"�zBZ2FileTest.testReadBadFilecCsd|jdd�t|j��}|�t|jt��|�|��|jd�Wd�dS1s+wYdS�N��r@rMrQrrr�testReadMultiStreamxs
"�zBZ2FileTest.testReadMultiStreamcCs�tj}t|j�t_z;|jdd�t|j��}|�t|j	t
��|�|�	�|jd�Wd�n1s4wYW|t_dSW|t_dS|t_wrX)
�_compression�BUFFER_SIZE�lenr.rCrrrHrIrNrOrPr-)r"Zbuffer_sizerRrrr�testReadMonkeyMultiStream~s�
�z%BZ2FileTest.testReadMonkeyMultiStreamcCsP|j|jd�t|j��}|�|��|j�Wd�dS1s!wYdS)N)rA�rCr0rrrPrNr-rQrrr�testReadTrailingJunk�s"�z BZ2FileTest.testReadTrailingJunkcCsV|jd|jd�t|j��}|�|��|jd�Wd�dS1s$wYdS)NrYrUr`rQrrr�testReadMultiStreamTrailingJunk�s"�z+BZ2FileTest.testReadMultiStreamTrailingJunkcCs\|��t|j��}|�t|jt��|�|�d�d�Wd�dS1s'wYdS)Nrr)rCrrrHrIrNrOrPrQrrr�	testRead0�rTzBZ2FileTest.testRead0cCsf|��t|j�� }d}	|�d�}|sn||7}q
|�||j�Wd�dS1s,wYdS)NrTrE�rCrrrNrPr-�r"rR�text�strrrr�testReadChunk10�s
�"�zBZ2FileTest.testReadChunk10cCsn|jdd�t|j��"}d}	|�d�}|sn||7}q|�||jd�Wd�dS1s0wYdS)NrYrZrTrErdrerrr�testReadChunk10MultiStream�s
�"�z&BZ2FileTest.testReadChunk10MultiStreamcCsT|��t|j��}|�|�d�|jdd��Wd�dS1s#wYdS)N�d)rCrrrPrNr-rQrrr�testRead100�s"�zBZ2FileTest.testRead100cCst|��t|j��'}|��}|�t|�d�|�|j�|��|�	|�
�|j�Wd�dS1s3wYdS�Nr)rCrr�peek�assertNotEqualr^�
assertTruer-�
startswithrPrN)r"rR�pdatarrr�testPeek�s"�zBZ2FileTest.testPeekcCs�|��t|j��J}d}t|�}|�|�|�|�|�||jd|��t|j�|}tt|j��}|�|�|�|�|�|d|�|j|d��Wd�dS1sVwYdS)N�)rCrrr1rPr9r-r^)r"rR�n�brrr�testReadInto�s""�zBZ2FileTest.testReadIntocCsd|��t|j��}|�t|jd�|jD]
}|�|��|�qWd�dS1s+wYdSr�rCrrrHrI�readliner+rP�r"rR�linerrr�testReadLine�s
�"�zBZ2FileTest.testReadLinecCsl|jdd�t|j��!}|�t|jd�|jdD]
}|�|��|�qWd�dS1s/wYdSrXrwryrrr�testReadLineMultiStream�s�"�z#BZ2FileTest.testReadLineMultiStreamcCsZ|��t|j��}|�t|jd�|�|��|j�Wd�dS1s&wYdSr�rCrrrHrI�	readlinesrPr+rQrrr�
testReadLines�s
"�zBZ2FileTest.testReadLinescCsb|jdd�t|j��}|�t|jd�|�|��|jd�Wd�dS1s*wYdSrXr}rQrrr�testReadLinesMultiStream�s
"�z$BZ2FileTest.testReadLinesMultiStreamcCsN|��t|j��}|�tt|��|j�Wd�dS1s wYdSr�rCrrrP�list�iterr+rQrrr�testIterator�s"�zBZ2FileTest.testIteratorcCsV|jdd�t|j��}|�tt|��|jd�Wd�dS1s$wYdSrXr�rQrrr�testIteratorMultiStream�s"�z#BZ2FileTest.testIteratorMultiStreamcCs:|��t|j�}|��|�tt|�|�t|j�dSr)rCrrr!rHrJ�nextr~rQrrr�testClosedIteratorDeadlock�s

z&BZ2FileTest.testClosedIteratorDeadlockcCs�t|jd��}|�t|j�|�|j�Wd�n1swYt|jd��}|�t|�	��|j�Wd�dS1s@wYdS)N�wr�
rrrHrIr?r-r8rPrrN�r"rRrBrrr�	testWrite�s�"�zBZ2FileTest.testWritecCs�t|jd��%}d}	|j|d|dd�}|sn
|�|�|d7}q
Wd�n1s.wYt|jd��}|�t|���|j�Wd�dS1sPwYdS)Nr�rTrErr)rrr-r?r8rPrrN)r"rRrtrgrBrrr�testWriteChunks10�s
��"�zBZ2FileTest.testWriteChunks10cCs�tj|jdd�}t|jddd��}|�|j�Wd�n1s!wYt|jd��}|�|��|�Wd�dS1s@wYdS)NrYrr�r)	r
r;r-rrr?r8rPrN)r"ZexpectedrRrBrrr� testWriteNonDefaultCompressLevel
s�"�z,BZ2FileTest.testWriteNonDefaultCompressLevelcCs�t|jd��}|�t|j�|�|j�Wd�n1swY|�t|jdg�t|jd��}|�t	|�
��|j�Wd�dS1sIwYdS)Nr��ar)rrrHrI�
writelinesr+rJr8rPrrNr-r�rrr�testWriteLiness�"�zBZ2FileTest.testWriteLinescCs�t|jd��
}|�d�Wd�n1swYt|jd��}|�t|jd�|�t|jdg�Wd�dS1s>wYdS)Nr�sabcrF�a)rrr?rHrVr�rQrrr�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�)	rCrrrHrI�seekrPrNr-rQrrr�testSeekForward-s
"�zBZ2FileTest.testSeekForwardcCsx|jdd�t|j��'}|�t|j�|�t|j�d�|�|�	�|jdd��Wd�dS1s5wYdS)Nr�rZr�)
rCrrrHrIr�r^r-rPrNrQrrr�testSeekForwardAcrossStreams4s"�z(BZ2FileTest.testSeekForwardAcrossStreamscCsh|��t|j��!}|�d�|�dd�|�|��|jdd��Wd�dS1s-wYdS�Ni��j���ri^)rCrrrNr�rPr-rQrrr�testSeekBackwards;s
"�zBZ2FileTest.testSeekBackwardscCs�|jdd�t|j��7}t|j�d}|dkr$|t|�|��8}|dks|�dd�|�|��|jdd�|j�Wd�dS1sEwYdS)Nr�rZrjrr�ri���)rCrrr^r-rNr�rP)r"rRZreadtorrr�testSeekBackwardsAcrossStreamsBs�""�z*BZ2FileTest.testSeekBackwardsAcrossStreamscCsh|��t|j��!}|�dd�|�|��|jt|j�dd��Wd�dS1s-wYdS)Nr�r�r�)rCrrr�rPrNr-r^rQrrr�testSeekBackwardsFromEndKs
&"�z$BZ2FileTest.testSeekBackwardsFromEndcCsf|jdd�t|j��}|�dd�|�|��|jddd��Wd�dS1s,wYdS)Nr�rZi���)rCrrr�rPrNr-rQrrr�%testSeekBackwardsFromEndAcrossStreamsQs
 "�z1BZ2FileTest.testSeekBackwardsFromEndAcrossStreamscCsh|��t|j��!}|�d�|�|��t|j��|�|��d�Wd�dS1s-wYdS�N��Ir�	rCrrr�rP�tellr^r-rNrQrrr�testSeekPostEndWs
"�zBZ2FileTest.testSeekPostEndcCsp|jdd�t|j��#}|�d�|�|��t|j�d�|�|��d�Wd�dS1s1wYdS�NrYrZr�rr�rQrrr�testSeekPostEndMultiStream^s
"�z&BZ2FileTest.testSeekPostEndMultiStreamcCsr|��t|j��&}|�d�|�d�|�|��t|j��|�|��d�Wd�dS1s2wYdSr�r�rQrrr�testSeekPostEndTwicees

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

"�z+BZ2FileTest.testSeekPostEndTwiceMultiStreamcCsd|��t|j��}|�d�|�|��d�|�|��|j�Wd�dS1s+wYdS)Nr�r�rCrrr�rPr�rNr-rQrrr�testSeekPreStartus
"�zBZ2FileTest.testSeekPreStartcCsl|jdd�t|j��!}|�d�|�|��d�|�|��|jd�Wd�dS1s/wYdS)Nr�rZr�rr�rQrrr�testSeekPreStartMultiStream|s
"�z'BZ2FileTest.testSeekPreStartMultiStreamc	Csz|��t|jd��"}t|�}z|�|��|���W|��n|��wWd�n1s/wY|�t|j�dS)Nr)	rCr8rrrP�filenor!rHrJ)r"ZrawfrRrrr�
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.ro�seekablerNr!rHrJ�assertFalse)r"rR�srcrrr�testSeekable�s&

zBZ2FileTest.testSeekablecC�tt|j��}z|�|���|��|�|���W|��n|��w|�t|j�tt�d�}z
|�	|���W|��n|��w|�t|j�dS�Nr�)
rrr.ro�readablerNr!rHrJr�rQrrr�testReadable��zBZ2FileTest.testReadablecCr�r�)
rrr.r��writablerNr!rHrJrorQrrr�testWritable�r�zBZ2FileTest.testWritablecCs&|��td�D]}t|j�}~qdS)Ni')rC�rangerr)r"�i�orrr�testOpenDel�s

�zBZ2FileTest.testOpenDelcC�|�ttd�dS)Nz
/non/existent)rHrVrr%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)r8rr?rr~rPr�)r"rrBrR�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!rJZfail�ZeroDivisionError�r"rBrrr�testContextProtocol�s0����

���zBZ2FileTest.testContextProtocolc	s�dd�d}t|jd��8���fdd���fdd�t|�D�}t�|��Wd�n1s/wYWd�dSWd�dS1sGwYdS)	N�1irEr>cstd�D]}����qdS�NrY)r�r?)r�)rrBrr�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�rrBr�
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)
rCr^r+rrrNrPr�r-rxr~rH�
StopIteration)r"ZlinelenZhalflenrRrrr�testMixedIterationAndReads�s$
��"�z&BZ2FileTest.testMixedIterationAndReadscCs�d}d}t|jd��
}|�|�Wd�n1swYt|jd��
}|�|�Wd�n1s5wYt|j��}|�|��||�Wd�dS1sUwYdS)Ns�foofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoos�barbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarr�r�)rrr?rPrN)r"Zdata1Zdata2rRrrr�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.rPrN)r"Zstr_filenameZbytes_filenamerBrrr�testOpenBytesFilenames���"�z!BZ2FileTest.testOpenBytesFilenamecCs�t�|j�}t|d��}|�|j�Wd�n1swYt|d��}|�|��|j�Wd�dS1s;wYdS)Nr>r)�pathlibZPathrrr?r.rPrN)r"rrBrrr�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)r
r;�intZ
assertLessr^r\r]rrrPrNr�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.rrHrIrNrOrPr-r��closed�r"�biorRrrr�testReadBytesIO>s
�"�zBZ2FileTest.testReadBytesIOc	Cs�t|j��C}t|��&}|��}|�t|�d�|�|j�|��|�	|�
�|j�Wd�n1s3wYWd�dSWd�dS1sKwYdSrl)rr.rrmrnr^ror-rprPrN)r"r�rRrqrrr�testPeekBytesIOEs
��"�zBZ2FileTest.testPeekBytesIOc	Cs�t��<}t|d��}|�t|j�|�|j�Wd�n1s!wY|�t|���|j�|�	|j
�Wd�dS1sBwYdSr�)rrrHrIr?r-rPr�getvaluer�r�r�rrr�testWriteBytesIOMs�"�zBZ2FileTest.testWriteBytesIOc	Cs�t|j��>}t|��!}|�t|j�|�d�|�|��|jdd��Wd�n1s.wYWd�dSWd�dS1sFwYdSr�)	rr.rrHrIr�rPrNr-r�rrr�testSeekForwardBytesIOUs

��"�z"BZ2FileTest.testSeekForwardBytesIOc	Cs�t|j��=}t|�� }|�d�|�dd�|�|��|jdd��Wd�n1s-wYWd�dSWd�dS1sEwYdSr�)rr.rrNr�rPr-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.rrrH�EOFErrorrNrPr^r-r�)r"Z	truncatedrBr�rrr�test_read_truncatedcs�����zBZ2FileTest.test_read_truncatedcCsrt�dgd��}t|�|j}tt�d��}|�|�|�|�|�|��|�Wd�dS1s2wYdS)N�Q)rr�rG�rYr�)�arrayr^�itemsizerrrPr?r�)r"�qZLENGTHrBrrr�test_issue44439ps"�zBZ2FileTest.test_issue44439N)rr)@r'r(r)r*rCrLrSrWr[r_rarbrcrhrirkrrrvr{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�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rHrIr;r-�flushrPr�r"�bz2crrrr�testCompresszs
zBZ2CompressorTest.testCompresscCs.t�}|�d�}||��7}|�||j�dS�Nr)rr;r�rPr/r�rrr�testCompressEmptyString�s
z)BZ2CompressorTest.testCompressEmptyStringcCsjt�}d}d}	|j|d|dd�}|sn||�|�7}|d7}q||��7}|�t|�|j�dS)NrrTrEr)rr-r;r�rPr)r"r�rtrrgrrr�testCompressChunks10�s�z&BZ2CompressorTest.testCompressChunks10rjr���sizeZmemusecCsvt�}d|}z|�|�}||��7}Wd}nd}wt�|�}z|�t|�|�|�t|�d��d�Wd}dSd}w)N�xr)rr;r�r
rrPr^�strip)r"r�r�r�
compressedrrr�testCompress4G�s

z BZ2CompressorTest.testCompress4Gc	C�Pttjd�D]}|�t��t�t�|�Wd�n1s wYqdS�Nr)r��pickle�HIGHEST_PROTOCOLrHrI�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�*)rHrIr
r%rrr�test_Constructor�r�z$BZ2DecompressorTest.test_ConstructorcCs2t�}|�t|j�|�|j�}|�||j�dSr)r
rHrIrr.rPr-�r"�bz2drfrrr�testDecompress�sz"BZ2DecompressorTest.testDecompresscCsZt�}d}d}	|j|d|dd�}|sn||�|�7}|d7}q|�||j�dS)NrrTrEr)r
r.rrPr-)r"rrfrtrgrrr�testDecompressChunks10�s�z*BZ2DecompressorTest.testDecompressChunks10cCs:t�}d}|�|j|�}|�||j�|�|j|�dS)Nsthis is unused data)r
rr.rPr-�unused_data)r"rrrfrrr�testDecompressUnusedData�s
z,BZ2DecompressorTest.testDecompressUnusedDatacCs6t�}|�|j�}|�t|jd�|�t|jd�dS)Nsanythingr)r
rr.rHr�rrrr�testEOFError�sz BZ2DecompressorTest.testEOFErrorrjgffffff
@r�cCshd}t�|�}z%|||d}t�|�}t�}|�|�}|�||k�Wd}d}d}dSd}d}d}w)Ni�r)�randomZ	randbytesr
r;r
rro)r"r�Z	blocksize�blockrr�rZdecompressedrrr�testDecompress4G�s


�z$BZ2DecompressorTest.testDecompress4Gc	Cr�r�)r�rrrHrIrr
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)Nrj�@��
max_length���r)
r
r^r<�appendrr�Zneeds_inputrPr��eofr,r2r)r"�bzdr�outZlen_rrr�testDecompressorChunksMaxsize�s.���
z1BZ2DecompressorTest.testDecompressorChunksMaxsizecCs�t�}g}|�|j|jdd�dd�d�|�|�dd��|�|�|jdd�d��|�|�|jdd���|�d�|�|j�dS)Nrjrrrr��i��r
rPrr.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��,r r!rrr�test_decompressor_inputbuf_2s��z0BZ2DecompressorTest.test_decompressor_inputbuf_2cCstt�}g}|�|�|jdd�d��|�|�|jdd�d��|�|�|jdd���|�d�|�|j�dS)Nr#rYr$r)r
rrr.rPr,r-r!rrr�test_decompressor_inputbuf_3/sz0BZ2DecompressorTest.test_decompressor_inputbuf_3cCs6t�}|�t|j|jd�|�t|j|jd�dS)N�)r
rH�	Exceptionrr0)r"rrrr�test_failure?sz BZ2DecompressorTest.test_failurecCsHt�td�}t�}|�}td�D]}|��q|j|�|ddd�dS)N�gettotalrefcountrjrrE)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
rrrrrrrrrrr"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-rPr)r"rrrrr�Psz#CompressDecompressTest.testCompresscCst�d�}|�||j�dSr�)r
r;rPr/�r"rfrrrr�Ts
z.CompressDecompressTest.testCompressEmptyStringcCst�|j�}|�||j�dSr�r
rr.rPr-r/rrrr
Xsz%CompressDecompressTest.testDecompresscCst�d�}|�|d�dSr�)r
rrPr/rrr�testDecompressEmpty\s
z*CompressDecompressTest.testDecompressEmptycCst�|j�}|�|d�dSr�)r
rr/rPr/rrr�testDecompressToEmptyString`sz2CompressDecompressTest.testDecompressToEmptyStringcCs|�ttj|jdd��dS)Nr�)rHrJr
rr.r%rrr�testDecompressIncompletedsz/CompressDecompressTest.testDecompressIncompletecCs|�ttj|j�dSr)rHrVr
rr0r%rrr�testDecompressBadDatagsz,CompressDecompressTest.testDecompressBadDatacCs&t�|jd�}|�||jd�dSr�r0r/rrr�testDecompressMultiStreamjsz0CompressDecompressTest.testDecompressMultiStreamcCs$t�|j|j�}|�||j�dSr�r
rr.r0rPr-r/rrr�testDecompressTrailingJunknsz1CompressDecompressTest.testDecompressTrailingJunkcCs,t�|jd|j�}|�||jd�dSr�r6r/rrr�%testDecompressMultiStreamTrailingJunkrsz<CompressDecompressTest.testDecompressMultiStreamTrailingJunkN)
r'r(r)r�r�r
r1r2r3r4r5r7r8rrrrr.Os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|i|��Sr)r
r8)r"�args�kwargsrrrr8zsz
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	rr8r?r-rrNrP�r"�moderB�	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��xrBrrFr�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�xtrF��encodingr�rtZatr�)r-�decode�replacer �linesepr	rr8r?rrNrP)r"rf�text_native_eolr?rBr@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)rBr<rF�t�utf-8rG)r	rr8rH�FileExistsError)r"r?rHrBrrr�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)NrFrr�rIrPrG)r8rr.rPrNr-rJ)r"rBrfrrr�test_fileobj�s��"�zOpenTest.test_fileobjcCst|�t|j|jd�|�t|j|jd�|jt|j|jddd�|jt|j|jddd�|jt|j|jddd	�dS)
NZwbtZxbtrrPrG�ignore)�errorsrD)�newline)rHrJr8rr%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�rDrEz	utf-16-lerGrrI)r-rJrKr rLr8rr?rrNrP)r"rfrMrBr@rrr�
test_encoding�s��"�zOpenTest.test_encodingcCs�|�|jd��
}|�d�Wd�n1swY|j|jdddd��}|�|��d�Wd�dS1s:wYdS)Nr>sfoo�barrIr�rT)rHrUZfoobar)r8rr?rPrNr�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�rErPrD)rHrVrI�
)r-rJr8rr?rPr~)r"rfrBrrr�test_newline�s�"�zOpenTest.test_newlineN)r'r(r)r*r8rArCrNrRrSrWrXrYr[rrrrr9ws
	
r9cCst��dSr)rZ
reap_childrenrrrr�tearDownModule�sr\�__main__)*�testrZtest.supportrrr�Zunittest�iorrr rr3rr�rrrr�rrZtest.support.os_helperr	r\r+�
import_moduler
rrr
rrZTestCaserr=r�rr.r9r\r'�mainrrrr�<module>sL
	4#3$(y�