Sindbad~EG File Manager

Current Path : /proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/
Upload File :
Current File : //proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/test_bz2.cpython-312.pyc

�

&Μg]�����ddlmZddlmZmZddlZddlZddlZddlmZm	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlmZddlmZddlmZmZddlZddlZej2d�Zdd	lmZmZmZdad
�ZGd�dej@�Z!Gd
�de!�Z"Gd�de!�Z#Gd�de!�Z$Gd�de!�Z%Gd�de!�Z&d�Z'e(dk(rejR�yy)�)�support)�
bigmemtest�_4GN)�BytesIO�DEFAULT_BUFFER_SIZE)�
import_helper)�threading_helper)�unlink�FakePath�bz2)�BZ2File�
BZ2Compressor�BZ2Decompressorc��t�ttjd��atrt	j
dg|��Stj|�S)N�bunzip2)�input)�has_cmdline_bunzip2�bool�shutil�which�
subprocess�check_outputr�
decompress)�datas �*/usr/local/lib/python3.12/test/test_bz2.py�ext_decompressrsC���"�"�6�<�<�	�#:�;����&�&�	�{�$�?�?��~�~�d�#�#�c	���eZdZdZgd�Zdje�ZdZdZdZ	dZ
ed�Ze
jejje
j ejj#e��d	��D]8Zeed
�5Ze
ej-ee�e
d�z
Z
ddd�e
dkDs�8nej3ed�
�Zd�Zd�Zy#1swY�,xYw)�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
rs�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���
compresslevelc�f�tj�\}|_tj|�y�N)�tempfile�mkstemp�filename�os�close)�self�fds  r�setUpzBaseTest.setUpRs"��$�,�,�.���D�M�
����rc�.�t|j�yr%)r
r(�r+s r�tearDownzBaseTest.tearDownVs���t�}�}�r)�__name__�
__module__�__qualname__�__doc__�
TEXT_LINES�join�TEXT�DATA�
EMPTY_DATA�BAD_DATA�	test_size�	bytearray�BIG_TEXT�globr)�path�escape�dirname�__file__�fname�open�fh�readinto�
memoryviewr�compress�BIG_DATAr-r0�rrrr&s����
�J�.�8�8�J��D�^�D�4�J�0�H��I���"�H�����2�7�7�<�<�����B�G�G�O�O�H�4M�(N�PV�W�X��
�%��
�"�����Z��%9�)�*�%E�F�F�I���x���	Y�
�|�|�H�A�|�6�H����
�s�
C�C	rc��eZdZdZdCd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#d"�Z$d#�Z%d$�Z&d%�Z'd&�Z(d'�Z)d(�Z*d)�Z+d*�Z,d+�Z-d,�Z.d-�Z/d.�Z0d/�Z1d0�Z2e3jh�d1��Z5d2�Z6d3�Z7d4�Z8d5�Z9d6�Z:d7�Z;d8�Z<d9�Z=d:�Z>d;�Z?d<�Z@d=�ZAd>�ZBd?�ZCd@�ZDdA�ZEyB)D�BZ2FileTestzTest the BZ2File class.c��t|jd�5}|j|j|z�|j|�ddd�y#1swYyxYw)N�wb)rDr(�writer8)r+�streams�suffix�fs    r�createTempFilezBZ2FileTest.createTempFile]s>��
�$�-�-��
&�!�
�G�G�D�I�I��'�(�
�G�G�F�O�'�
&�
&�s�0A�Ac�8�|jttd�|jtttj
d�|jtttj
d�|jtttj
d�|jtttj
d��|jtttj
d��|jtttj
dd	�y)
Ngw��/�^@�z�rx�rbtrr"�
�r�)�assertRaises�	TypeErrorr
�
ValueErrorr)�devnullr/s r�testBadArgszBZ2FileTest.testBadArgsbs������)�W�g�6����*�g�r�z�z�3�?����*�g�r�z�z�4�@����*�g�r�z�z�5�A����*�g�r�z�z���K����*�g�r�z�z���L�	
���)�W�b�j�j�#�q�Arc��|j�t|j�5}|jt|j
t
��|j|j�|j�ddd�y#1swYyxYwr%�	rSr
r(r[r\�read�float�assertEqualr7�r+�bz2fs  r�testReadzBZ2FileTest.testReadmsZ������
�T�]�]�
#�t����i����E�G�<����T�Y�Y�[�$�)�)�4�$�
#�
#�s�AB�Bc���|jd|j��t|j�5}|j	t
|j�ddd�y#1swYyxYw)Nr�rPrQ)rSr:r
r(r[�OSErrorrbres  r�testReadBadFilezBZ2FileTest.testReadBadFilessG�����A�d�m�m��<�
�T�]�]�
#�t����g�t�y�y�1�$�
#�
#�s�!A�A&c�(�|jd��t|j�5}|jt|j
t
��|j|j�|jdz�ddd�y#1swYyxYw�N��rPrares  r�testReadMultiStreamzBZ2FileTest.testReadMultiStreamxsc�����A��&�
�T�]�]�
#�t����i����E�G�<����T�Y�Y�[�$�)�)�a�-�8�$�
#�
#�s�AB�Bc��tj}t|j�t_	|j	d��t|j�5}|jt|jt��|j|j�|jdz�ddd�|t_y#1swY�xYw#|t_wxYwrm)
�_compression�BUFFER_SIZE�lenr8rSr
r(r[r\rbrcrdr7)r+�buffer_sizerfs   r�testReadMonkeyMultiStreamz%BZ2FileTest.testReadMonkeyMultiStream~s���#�.�.��#&�t�y�y�>�� �	3������*�����'�4��!�!�)�T�Y�Y���@�� � �����d�i�i�!�m�<�(�(3�L�$�	(�'��(3�L�$�s$�'C�AC�.C�C�C�
Cc���|j|j��t|j�5}|j	|j�|j�ddd�y#1swYyxYw)N)rQ�rSr:r
r(rdrbr7res  r�testReadTrailingJunkz BZ2FileTest.testReadTrailingJunk�sK�����4�=�=��1�
�T�]�]�
#�t����T�Y�Y�[�$�)�)�4�$�
#�
#�s�+A&�&A/c���|jd|j��t|j�5}|j	|j�|jdz�ddd�y#1swYyxYw)Nrnrirxres  r�testReadMultiStreamTrailingJunkz+BZ2FileTest.testReadMultiStreamTrailingJunk�sQ�����A�d�m�m��<�
�T�]�]�
#�t����T�Y�Y�[�$�)�)�a�-�8�$�
#�
#�s�.A*�*A3c��|j�t|j�5}|jt|j
t
��|j|jd�d�ddd�y#1swYyxYw)Nrr)rSr
r(r[r\rbrcrdres  r�	testRead0zBZ2FileTest.testRead0�sX������
�T�]�]�
#�t����i����E�G�<����T�Y�Y�q�\�3�/�$�
#�
#�s�AA:�:Bc���|j�t|j�5}d}	|jd�}|sn||z
}�|j	||j
�ddd�y#1swYyxYw)NrrX�rSr
r(rbrdr7�r+rf�text�strs    r�testReadChunk10zBZ2FileTest.testReadChunk10�sg������
�T�]�]�
#�t��D���i�i��m��������	�

���T�4�9�9�-�$�
#�
#�s�:A)�)A2c���|jd��t|j�5}d}	|jd�}|sn||z
}�|j	||j
dz�ddd�y#1swYyxYw)NrnrorrXrr�s    r�testReadChunk10MultiStreamz&BZ2FileTest.testReadChunk10MultiStream�sp�����A��&�
�T�]�]�
#�t��D���i�i��m��������	�

���T�4�9�9�q�=�1�$�
#�
#�s�=A.�.A7c���|j�t|j�5}|j|j	d�|j
dd�ddd�y#1swYyxYw)N�d)rSr
r(rdrbr7res  r�testRead100zBZ2FileTest.testRead100�sJ������
�T�]�]�
#�t����T�Y�Y�s�^�T�Y�Y�t��_�=�$�
#�
#���/A�A'c�v�|j�t|j�5}|j�}|j	t|�d�|j
|jj|��|j|j�|j�ddd�y#1swYyxYw�Nr)rSr
r(�peek�assertNotEqualrt�
assertTruer7�
startswithrdrb)r+rf�pdatas   r�testPeekzBZ2FileTest.testPeek�s|������
�T�]�]�
#�t��I�I�K�E�����E�
�A�.��O�O�D�I�I�0�0��7�8����T�Y�Y�[�$�)�)�4�	$�
#�
#�s�BB/�/B8c��|j�t|j�5}d}t|�}|j	|j|�|�|j	||jd|�t|j�|z
}tt|j��}|j	|j|�|�|j	|d||j|d�ddd�y#1swYyxYw)N�)rSr
r(r<rdrFr7rt)r+rf�n�bs    r�testReadIntozBZ2FileTest.testReadInto�s�������
�T�]�]�
#�t��A��!��A����T�]�]�1�-�q�1����Q��	�	�"�1�
�.��D�I�I���"�A��#�d�i�i�.�)�A����T�]�]�1�-�q�1����Q�r��U�D�I�I�q�b�c�N�3�$�
#�
#�s�CC7�7Dc��|j�t|j�5}|jt|j
d�|jD]"}|j|j�|��$	ddd�y#1swYyxYwr%�rSr
r(r[r\�readliner5rd�r+rf�lines   r�testReadLinezBZ2FileTest.testReadLine�sb������
�T�]�]�
#�t����i�����=������ � �����$�7�(�$�
#�
#�s�AB�Bc�(�|jd��t|j�5}|jt|j
d�|jdzD]"}|j|j�|��$	ddd�y#1swYyxYwrmr�r�s   r�testReadLineMultiStreamz#BZ2FileTest.testReadLineMultiStream�sl�����A��&�
�T�]�]�
#�t����i�����=����!�+��� � �����$�7�,�$�
#�
#�s�AB�Bc��|j�t|j�5}|jt|j
d�|j
|j�|j�ddd�y#1swYyxYwr%�rSr
r(r[r\�	readlinesrdr5res  r�
testReadLineszBZ2FileTest.testReadLines�sY������
�T�]�]�
#�t����i�����>����T�^�^�-�t���?�$�
#�
#�s�AA;�;Bc��|jd��t|j�5}|jt|j
d�|j
|j�|jdz�ddd�y#1swYyxYwrmr�res  r�testReadLinesMultiStreamz$BZ2FileTest.testReadLinesMultiStream�sc�����A��&�
�T�]�]�
#�t����i�����>����T�^�^�-�t����/B�C�$�
#�
#�s�AB�B	c���|j�t|j�5}|jt	t|��|j�ddd�y#1swYyxYwr%�rSr
r(rd�list�iterr5res  r�testIteratorzBZ2FileTest.testIterator�sE������
�T�]�]�
#�t����T�$�t�*�-�t���?�$�
#�
#�r�c���|jd��t|j�5}|jt	t|��|jdz�ddd�y#1swYyxYwrmr�res  r�testIteratorMultiStreamz#BZ2FileTest.testIteratorMultiStream�sO�����A��&�
�T�]�]�
#�t����T�$�t�*�-�t����/B�C�$�
#�
#�s�2A#�#A,c���|j�t|j�}|j�|j	t
t|�|j	t
|j�yr%)rSr
r(r*r[r]�nextr�res  r�testClosedIteratorDeadlockz&BZ2FileTest.testClosedIteratorDeadlock�sK�������t�}�}�%���
�
�����*�d�D�1����*�d�n�n�5rc��t|jd�5}|jt|j�|j	|j
�ddd�t
|jd�5}|jt|j��|j
�ddd�y#1swY�\xYw#1swYyxYw)N�wr �
r
r(r[r\rOr7rDrdrrb�r+rfrRs   r�	testWritezBZ2FileTest.testWrite�s���
�T�]�]�C�
(�D����i����4��J�J�t�y�y�!�)��$�-�-��
&�!����^�A�F�F�H�5�t�y�y�A�'�
&�)�
(��'�
&�s�<B.�14B:�.B7�:Cc��t|jd�5}d}	|j|dz|dzdz}|sn|j|�|dz
}�2	ddd�t	|jd�5}|jt
|j��|j�ddd�y#1swY�\xYw#1swYyxYw)Nr�rrXr!r )r
r(r7rOrDrdrrb)r+rfr�r�rRs     r�testWriteChunks10zBZ2FileTest.testWriteChunks10�s���
�T�]�]�C�
(�D��A���i�i��"��a��c�2�X�.�����
�
�3���Q�����)��$�-�-��
&�!����^�A�F�F�H�5�t�y�y�A�'�
&�)�
(��'�
&�s�6B)�,4B5�)B2�5B>c�l�tj|jd��}t|jdd��5}|j|j�ddd�t
|jd�5}|j|j�|�ddd�y#1swY�IxYw#1swYyxYw)Nrnr"r�r )	rrHr7r
r(rOrDrdrb)r+�expectedrfrRs    r� testWriteNonDefaultCompressLevelz,BZ2FileTest.testWriteNonDefaultCompressLevel
s}���<�<��	�	��<�;��
�T�]�]�C�q�
9�T��J�J�t�y�y�!�:�
�$�-�-��
&�!����Q�V�V�X�x�0�'�
&�:�
9��
&�
&�s�B�4!B*�B'�*B3c���t|jd�5}|jt|j�|j	|j
�ddd�|jtjdg�t|jd�5}|jt|j��|j�ddd�y#1swY�~xYw#1swYyxYw)Nr��ar )r
r(r[r\�
writelinesr5r]rDrdrrbr7r�s   r�testWriteLineszBZ2FileTest.testWriteLiness���
�T�]�]�C�
(�D����i����9��O�O�D�O�O�,�)�
	
���*�d�o�o��u�=�
�$�-�-��
&�!����^�A�F�F�H�5�t�y�y�A�'�
&�
)�
(��'�
&�s�<C�4C�C�C%c�X�t|jd�5}|jd�ddd�t|jd�5}|jt|jd�|jt|j
dg�ddd�y#1swY�lxYw#1swYyxYw)Nr�sabcrY�a)r
r(rOr[rjr�res  r�testWriteMethodsOnReadOnlyFilez*BZ2FileTest.testWriteMethodsOnReadOnlyFiles}��
�T�]�]�C�
(�D��J�J�v��)��T�]�]�C�
(�D����g�t�z�z�4�8����g�t�����?�)�
(�)�
(��)�
(�s�B�AB �B� B)c�^�t|jd�5}|jt|j�|j	|j
�ddd�t|jd�5}|jt|j�|j	|j
�ddd�t
|jd�5}|jt|j��|j
dz�ddd�y#1swY��xYw#1swY�kxYw#1swYyxYw)Nr�r�r �r�r�s   r�
testAppendzBZ2FileTest.testAppend#s���
�T�]�]�C�
(�D����i����4��J�J�t�y�y�!�)��T�]�]�C�
(�D����i����4��J�J�t�y�y�!�)��$�-�-��
&�!����^�A�F�F�H�5�t�y�y�1�}�E�'�
&�
)�
(��)�
(��'�
&�s#�<D�1<D�7D#�D�D �#D,c�4�|j�t|j�5}|jt|j
�|jd�|j
|j�|jdd�ddd�y#1swYyxYw�N�)	rSr
r(r[r\�seekrdrbr7res  r�testSeekForwardzBZ2FileTest.testSeekForward-sg������
�T�]�]�
#�t����i����3��I�I�c�N����T�Y�Y�[�$�)�)�C�D�/�:�$�
#�
#�s�AB�Bc�d�|jd��t|j�5}|jt|j
�|jt
|j�dz�|j|j�|jdd�ddd�y#1swYyxYw)Nr�ror�)
rSr
r(r[r\r�rtr7rdrbres  r�testSeekForwardAcrossStreamsz(BZ2FileTest.testSeekForwardAcrossStreams4sz�����A��&�
�T�]�]�
#�t����i����3��I�I�c�$�)�)�n�s�*�+����T�Y�Y�[�$�)�)�C�D�/�:�$�
#�
#�s�A5B&�&B/c��|j�t|j�5}|jd�|j	dd�|j|j�|jdd�ddd�y#1swYyxYw�Ni��j���r!i^)rSr
r(rbr�rdr7res  r�testSeekBackwardszBZ2FileTest.testSeekBackwards;sb������
�T�]�]�
#�t��I�I�c�N��I�I�d�A�����T�Y�Y�[�$�)�)�G�H�*=�>�$�
#�
#�s�AB�B	c��|jd��t|j�5}t|j�dz}|dkDr#|t|j|��z}|dkDr�#|j
dd�|j|j�|jdd|jz�ddd�y#1swYyxYw)Nr�ror�rr�r!i���)rSr
r(rtr7rbr�rd)r+rf�readtos   r�testSeekBackwardsAcrossStreamsz*BZ2FileTest.testSeekBackwardsAcrossStreamsBs������A��&�
�T�]�]�
#�t�����^�c�)�F��1�*��#�d�i�i��/�0�0���1�*��I�I�d�A�����T�Y�Y�[�$�)�)�G�H�*=��	�	�*I�J�$�
#�
#�s�AB>�)AB>�>Cc�"�|j�t|j�5}|jdd�|j	|j�|jt|j�dz
d�ddd�y#1swYyxYw)Nr�r�r�)rSr
r(r�rdrbr7rtres  r�testSeekBackwardsFromEndz$BZ2FileTest.testSeekBackwardsFromEndKse������
�T�]�]�
#�t��I�I�d�A�����T�Y�Y�[�$�)�)�C��	�	�N�3�4F�4G�*H�I�$�
#�
#�s�AB�Bc��|jd��t|j�5}|jdd�|j	|j�|jdzdd�ddd�y#1swYyxYw)Nr�roi���)rSr
r(r�rdrbr7res  r�%testSeekBackwardsFromEndAcrossStreamsz1BZ2FileTest.testSeekBackwardsFromEndAcrossStreamsQs`�����A��&�
�T�]�]�
#�t��I�I�e�Q�����T�Y�Y�[�4�9�9�q�=�%�&�*A�B�$�
#�
#�s�AA4�4A=c�@�|j�t|j�5}|jd�|j	|j�t
|j��|j	|j�d�ddd�y#1swYyxYw�N��Ir�	rSr
r(r�rd�tellrtr7rbres  r�testSeekPostEndzBZ2FileTest.testSeekPostEndWsh������
�T�]�]�
#�t��I�I�f�����T�Y�Y�[�#�d�i�i�.�9����T�Y�Y�[�#�.�$�
#�
#�s�A%B�Bc�J�|jd��t|j�5}|jd�|j	|j�t
|j�dz�|j	|j�d�ddd�y#1swYyxYw�Nrnror�rr�res  r�testSeekPostEndMultiStreamz&BZ2FileTest.testSeekPostEndMultiStream^sr�����A��&�
�T�]�]�
#�t��I�I�f�����T�Y�Y�[�#�d�i�i�.�1�*<�=����T�Y�Y�[�#�.�$�
#�
#�s�A(B�B"c�b�|j�t|j�5}|jd�|jd�|j	|j�t
|j��|j	|j�d�ddd�y#1swYyxYwr�r�res  r�testSeekPostEndTwicez BZ2FileTest.testSeekPostEndTwiceest������
�T�]�]�
#�t��I�I�f���I�I�f�����T�Y�Y�[�#�d�i�i�.�9����T�Y�Y�[�#�.�	$�
#�
#�s�A6B%�%B.c�l�|jd��t|j�5}|jd�|jd�|j	|j�t
|j�dz�|j	|j�d�ddd�y#1swYyxYwr�r�res  r�testSeekPostEndTwiceMultiStreamz+BZ2FileTest.testSeekPostEndTwiceMultiStreamms~�����A��&�
�T�]�]�
#�t��I�I�f���I�I�f�����T�Y�Y�[�#�d�i�i�.�1�*<�=����T�Y�Y�[�#�.�	$�
#�
#�s�A9B*�*B3c�.�|j�t|j�5}|jd�|j	|j�d�|j	|j
�|j�ddd�y#1swYyxYw)Nr�r�rSr
r(r�rdr�rbr7res  r�testSeekPreStartzBZ2FileTest.testSeekPreStartusc������
�T�]�]�
#�t��I�I�d�O����T�Y�Y�[�!�,����T�Y�Y�[�$�)�)�4�$�
#�
#�s�AB�Bc�8�|jd��t|j�5}|jd�|j	|j�d�|j	|j
�|jdz�ddd�y#1swYyxYw)Nr�ror�rr�res  r�testSeekPreStartMultiStreamz'BZ2FileTest.testSeekPreStartMultiStream|sl�����A��&�
�T�]�]�
#�t��I�I�d�O����T�Y�Y�[�!�,����T�Y�Y�[�$�)�)�a�-�8�$�
#�
#�s�AB�Bc�z�|j�t|jd�5}t|�}	|j	|j�|j��|j
�	ddd�|jtj
�y#|j
�wxYw#1swY�?xYw)Nr )	rSrDr(r
rd�filenor*r[r])r+�rawfrfs   r�
testFilenozBZ2FileTest.testFileno�s�������
�$�-�-��
&�$��4�=�D�
�� � ��������
�>��
�
��'�	
���*�d�k�k�2���
�
���'�
&�s"�B1�.B�"B1�B.�.B1�1B:c�t�tt|j��}	|j|j	��|j�|j|j	��|j
�|jt|j�tt�d�}	|j|j	��|j
�|jt|j�t|j�}d�|_t|�}	|j|j	��|j
�|jt|j�y#|j
�wxYw#|j
�wxYw#|j
�wxYw)Nr�c��y)NFrJrJrr�<lambda>z*BZ2FileTest.testSeekable.<locals>.<lambda>�s��ur)
r
rr8r��seekablerbr*r[r]�assertFalse)r+rf�srcs   r�testSeekablezBZ2FileTest.testSeekable�s!���w�t�y�y�)�*��	��O�O�D�M�M�O�,��I�I�K��O�O�D�M�M�O�,��J�J�L����*�d�m�m�4��w�y�#�&��	����T�]�]�_�-��J�J�L����*�d�m�m�4��d�i�i� ��$����s�|��	����T�]�]�_�-��J�J�L����*�d�m�m�4��#
�J�J�L��
�J�J�L��
�J�J�L�s$�AE;�3F�+F%�;F
�F"�%F7c�Z�tt|j��}	|j|j	��|j�|j|j	��|j
�|jt|j�tt�d�}	|j|j	��|j
�|jt|j�y#|j
�wxYw#|j
�wxYw�Nr�)
r
rr8r��readablerbr*r[r]r�res  r�testReadablezBZ2FileTest.testReadable�s����w�t�y�y�)�*��	��O�O�D�M�M�O�,��I�I�K��O�O�D�M�M�O�,��J�J�L����*�d�m�m�4��w�y�#�&��	����T�]�]�_�-��J�J�L����*�d�m�m�4��
�J�J�L��
�J�J�L���AD�3D�D�D*c�Z�tt|j��}	|j|j	��|j�|j|j	��|j
�|jt|j�tt�d�}	|j|j	��|j
�|jt|j�y#|j
�wxYw#|j
�wxYwr�)
r
rr8r��writablerbr*r[r]r�res  r�testWritablezBZ2FileTest.testWritable�s����w�t�y�y�)�*��	����T�]�]�_�-��I�I�K����T�]�]�_�-��J�J�L����*�d�m�m�4��w�y�#�&��	��O�O�D�M�M�O�,��J�J�L����*�d�m�m�4��
�J�J�L��
�J�J�L�r�c�p�|j�td�D]}t|j�}~�y)Ni')rS�ranger
r()r+�i�os   r�testOpenDelzBZ2FileTest.testOpenDel�s-�������u��A���
�
�&�A��rc�:�|jttd�y)Nz
/non/existent)r[rjr
r/s r�testOpenNonexistentzBZ2FileTest.testOpenNonexistent�s�����'�7�O�<rc���d}t|jd�5}|j|�ddd�t|j�5}|j	�}ddd�|jdg�t|j�5}t
|j	��}ddd�|jdg�y#1swY��xYw#1swY�sxYw#1swY�5xYw)Ns,BZh91AY&SY�b�]� !�h3M<]��BCe�%trNsTest)rDr(rOr
r�rdr�)r+rrRrf�lines�xliness      r�testReadlinesNoNewlinez"BZ2FileTest.testReadlinesNoNewline�s���z��
�$�-�-��
&�!�
�G�G�D�M�'�
�T�]�]�
#�t��N�N�$�E�$������	�*�
�T�]�]�
#�t��$�.�.�*�+�F�$�����'��+�'�
&��
#�
#��$�
#�s#�B?�C�	C�?C�C�C c���t|jd�5}|jd�ddd�t|jd�}|j�	|5	ddd�|j	d�	t|jd�5}ddzddd�|j	d�y#1swY��xYw#1swY�]xYw#t
$rY�ZwxYw#1swY�BxYw#t$rYywxYw)NrNsxxxr z4__enter__ on a closed file didn't raise an exceptionr!rz1/0 didn't raise an exception)r
r(rOr*�failr]�ZeroDivisionError�r+rRs  r�testContextProtocolzBZ2FileTest.testContextProtocol�s���
�T�]�]�D�
)�Q�
�G�G�F�O�*��D�M�M�4�(��	���	�	N����

�I�I�L�M�	7������-���!��.�

�I�I�5�6�#*�
)��
����	��	��
.�-�� �	��	�s_�B,�C�B8�C�6C�C�C�,B5�8C�=C�	C�C�C�C�	C+�*C+c�0���ddz�d}t|jd�5���fd�}t|�D�cgc]}tj|����}}tj|�5	ddd�ddd�ycc}w#1swY�xYw#1swYyxYw)N�1irXrNc�H��td�D]}�j���y�Nrn)r�rO)r�rrRs ��r�compz'BZ2FileTest.testThreading.<locals>.comp�s����q��A��G�G�D�M�"r)�target)r
r(r��	threading�Threadr	�
start_threads)r+�nthreadsrr��threadsrrRs     @@r�
testThreadingzBZ2FileTest.testThreading�s�����e�|����
�T�]�]�D�
)�Q�
"�?D�H�o�N�o��y�'�'�t�4�o�G�N�!�/�/��8��9�*�
)��O�8�8��*�
)�s4�B�A;�B�(B�*B�;B�B		�B�Bc��|j�t|jd�}|dz}t|j�5}|j|�|j
t|�|jd|d�|j
|j�|j|d�ddd�t|j�5}|j�|j
t|�|jd�|j
|j�|jd�ddd�t|j�5}|j�|jtt|�|j
|j�g�ddd�y#1swY��xYw#1swY�xYw#1swYyxYw)Nrr�r!)
rSrtr5r
r(rbrdr�r7r�r�r[�
StopIteration)r+�linelen�halflenrfs    r�testMixedIterationAndReadsz&BZ2FileTest.testMixedIterationAndReads�sN�������d�o�o�a�(�)���Q�,��
�T�]�]�
#�t��I�I�g�����T�$�Z�����);�G�H�)E�F����T�Y�Y�[�$�)�)�G�H�*=�>�$��T�]�]�
#�t��M�M�O����T�$�Z�����);�<����T�]�]�_�d�o�o�a�.@�A�$��T�]�]�
#�t��N�N�����m�T�4�8����T�^�^�-�r�2�$�
#�$�
#��$�
#��$�
#�s'�A*F"�
A&F.�
AF:�"F+�.F7�:Gc��d}d}t|jd�5}|j|�ddd�t|jd�5}|j|�ddd�t|j�5}|j|j	�||z�ddd�y#1swY�{xYw#1swY�WxYw#1swYyxYw)Ns�foofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoos�barbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarr�r�)r
r(rOrdrb)r+�data1�data2rfs    r�testMultiStreamOrderingz#BZ2FileTest.testMultiStreamOrderings�������
�T�]�]�C�
(�D��J�J�u��)�
�T�]�]�C�
(�D��J�J�u��)�
�T�]�]�
#�t����T�Y�Y�[�%�%�-�8�$�
#�	)�
(��
(�
(��
#�
#�s#�B'�B3�:$B?�'B0�3B<�?Cc�*	�t|jd�5}|jd�|j|j	�t
�|j
|j�d�|j
|j�d�|j
|j�d�|j
|jd�ddd�|j
jd�|jt|j�|jt|j�|jt|j�|jt|j�t|jd�5}|jd�|j|j	�t
�|j
|j�d�|j
|j�d�|j
|j�d�|j
|jd�ddd�|j
|jd�|jt|j�|jt|j�|jt|j�|jt|j�t|jd�5}|j|j�d�|j|j	�t
�|j
|j�d�|j
|j�d�|j
|j�d�|j
|jd�ddd�|j
|jd�|jt�5|j	�ddd�|jt|j�|jt|j�|jt|j�y#1swY���xYw#1swY��=xYw#1swY��xYw#1swY��xYw�	NrN�contentFT�ab�appendixr �contentappendix)r
r(rO�assertIsInstancer��int�assertIsr�r�r��closedr[r]rdrbrs  r�testOpenFilenamezBZ2FileTest.testOpenFilenames���
�T�]�]�D�
)�Q�
�G�G�J���!�!�!�(�(�*�c�2��M�M�!�*�*�,��.��M�M�!�*�*�,��-��M�M�!�*�*�,��.��M�M�!�(�(�E�*�
*�	
�
�
�a�h�h��%����*�a�h�h�/����*�a�j�j�1����*�a�j�j�1����*�a�j�j�1�
�T�]�]�D�
)�Q�
�G�G�K� ��!�!�!�(�(�*�c�2��M�M�!�*�*�,��.��M�M�!�*�*�,��-��M�M�!�*�*�,��.��M�M�!�(�(�E�*�
*�	
�
�
�a�h�h��%����*�a�h�h�/����*�a�j�j�1����*�a�j�j�1����*�a�j�j�1�
�T�]�]�D�
)�Q����Q�V�V�X�'9�:��!�!�!�(�(�*�c�2��M�M�!�*�*�,��-��M�M�!�*�*�,��.��M�M�!�*�*�,��-��M�M�!�(�(�E�*�
*�	
�
�
�a�h�h��%�
�
�
�z�
*�
�H�H�J�+����*�a�j�j�1����*�a�j�j�1����*�a�j�j�1�M*�
)��*�
)��*�
)��+�
*�s2�B2Q#�B2Q0�/CQ=�)R	�#Q-�0Q:�=R�	Rc�0
�t|jd�5}t|d�5}|jd�|j	|j�|j��|j
|j�d�|j
|j�d�|j
|j�d�|j
|jd�ddd�|j
jd�|jt|j
�|jt|j�|jt|j�|jt|j�ddd�t|jd�5}t|d�5}|jd�|j	|j�|j��|j
|j�d�|j
|j�d�|j
|j�d�|j
|jd�ddd�|j
jd�|jt|j
�|jt|j�|jt|j�|jt|j�ddd�t|jd�5}t|d�5}|j	|j�d�|j	|j�|j��|j
|j�d�|j
|j�d�|j
|j�d�|j
|jd�ddd�|j
jd�|jt�5|j�ddd�|jt|j�|jt|j�|jt|j�ddd�y#1swY���xYw#1swY��KxYw#1swY��qxYw#1swY���xYw#1swY��xYw#1swY��xYw#1swYyxYwr )rDr(r
rOrdr�r'r�r�r�r(r[r]rb)r+�rawrRs   r�testOpenFileWithNamez BZ2FileTest.testOpenFileWithNameDs[��
�$�-�-��
&�#���d�#�q����
�#�� � �����S�Z�Z�\�:��
�
�a�j�j�l�E�2��
�
�a�j�j�l�D�1��
�
�a�j�j�l�E�2��
�
�a�h�h��.�
$�
�M�M�!�(�(�D�)����j�!�(�(�3����j�!�*�*�5����j�!�*�*�5����j�!�*�*�5�'��$�-�-��
&�#���d�#�q�����$�� � �����S�Z�Z�\�:��
�
�a�j�j�l�E�2��
�
�a�j�j�l�D�1��
�
�a�j�j�l�E�2��
�
�a�h�h��.�
$�
�M�M�!�(�(�D�)����j�!�(�(�3����j�!�*�*�5����j�!�*�*�5����j�!�*�*�5�'��$�-�-��
&�#���d�#�q�� � �����+=�>�� � �����S�Z�Z�\�:��
�
�a�j�j�l�D�1��
�
�a�j�j�l�E�2��
�
�a�j�j�l�D�1��
�
�a�h�h��.�
$�
�M�M�!�(�(�D�)��"�"�:�.����
�/����j�!�*�*�5����j�!�*�*�5����j�!�*�*�5�'�
&�7$�#��'�
&��$�#��'�
&��$�#��/�.��'�
&�s��
S
�B<S� B$S
�"
S'�/B<S�+B$S'�-
T�:CS4�9T�>T�A(T�S
	�S
�
S�S$	�S'�'S1�4S=	�9T�T		�T�Tc�v�t�}t|d�5}|jd�|jtj
|j�ddd�|jtj�t|d�5}|jd�|jtj
|j�ddd�|jt|j�|jd�t|d�5}|j|j�d�|jtj
|j�ddd�|jt�5|j
�ddd�y#1swY��9xYw#1swY��xYw#1swY�QxYw#1swYyxYw)NrNr!r"r#rr r$)rr
rOr[�io�UnsupportedOperationr�r]r�rdrb)r+�biorRs   r�testOpenFileWithoutNamez#BZ2FileTest.testOpenFileWithoutNameps5���i��
�S�$�
�1�
�G�G�J�����b�5�5�q�x�x�@� �	
���*�a�h�h�/�
�S�$�
�1�
�G�G�K� ����b�5�5�q�x�x�@� �	
���*�a�h�h�/������
�S�$�
�1����Q�V�V�X�'9�:����b�5�5�q�x�x�@� ��
�
�z�
*�
�H�H�J�+�
*� �
��
 �
�� �
��+�
*�s0�<F
�<F�AF#�0F/�
F�F �#F,�/F8c��tj|jtjtjztj
z�}t|d�5}t
|d�5}|jd�|j|j�|j��ddd�|jtj�ddd�tj|jtjtjztjz�}t|d�5}t
|d�5}|jd�|j|j�|j��ddd�|jtj�ddd�tj|jtj�}t|d�5}t
|d�5}|j|j�d�|j|j�|j��ddd�|jt�5j�ddd�ddd�y#1swY���xYw#1swY���xYw#1swY��!xYw#1swY��xYw#1swY�txYw#1swY�RxYw#1swYyxYw)NrNr!r"r#r r$)r)rDr(�O_WRONLY�O_CREAT�O_TRUNCr
rOrdr�r[r]�O_APPEND�O_RDONLYrb)r+r,r+rRs    r�testOpenFileWithIntNamez#BZ2FileTest.testOpenFileWithIntName�s���
�W�W�T�]�]�B�K�K�"�*�*�$<�r�z�z�$I�
J��
�"�d�^�s���d�#�q����
�#�� � �����S�Z�Z�\�:�$�
���j�!�(�(�3�	��W�W�T�]�]�B�K�K�"�*�*�$<�r�{�{�$J�
K��
�"�d�^�s���d�#�q�����$�� � �����S�Z�Z�\�:�$�
���j�!�(�(�3�	��W�W�T�]�]�B�K�K�
0��
�"�d�^�s���d�#�q�� � �����+=�>�� � �����S�Z�Z�\�:�$��"�"�:�.����
�/�	�^�$�#���^��$�#���^��$�#��/�.��	�^�s��
J�*AJ�*(J�6
J/�AJ"�(J/�-
K�:AJ<�	K�&K�7K�J	�
J�J�"J,	�'J/�/J9�<K	�K�K	�
K�Kc���|j}tj|�}t|d�5}|j	|j
�ddd�t|d�5}|j
|j�|j
�ddd�t|d�5}|j
|j�|j
�ddd�y#1swY��xYw#1swY�UxYw#1swYyxYw�NrNr )r(r)�fsencoder
rOr8rdrb)r+�str_filename�bytes_filenamerRs    r�testOpenBytesFilenamez!BZ2FileTest.testOpenBytesFilename�s����}�}�����\�2��
�^�T�
*�a�
�G�G�D�I�I��+�
�^�T�
*�a����Q�V�V�X�t�y�y�1�+��\�4�
(�A����Q�V�V�X�t�y�y�1�)�
(�+�
*��
*�
*��)�
(�s#�C�+C�+C)�C�C&�)C2c�<�t|j�}t|d�5}|j|j�ddd�t|d�5}|j|j
�|j�ddd�y#1swY�IxYw#1swYyxYwr:)rr(r
rOr8rdrb)r+r(rRs   r�testOpenPathLikeFilenamez$BZ2FileTest.testOpenPathLikeFilename�so���D�M�M�*��
�X�t�
$��
�G�G�D�I�I��%�
�X�t�
$�����Q�V�V�X�t�y�y�1�%�
$�%�
$��
$�
$�s�B�+B�B�Bc��tjdtd�zd��}|jt	|�t
j�tt|��}|j|jd�d�dtz}|j|jjj�|d�y)z-Decompressed data buffering should be limited�g��>A�	r"r!z)Excessive amount of data was decompressedN)rrHr&�
assertLessrtrrrsr
rrdrbr�assertLessEqual�_bufferr+r�)r+�bomb�decomp�
max_decomps    r�testDecompressLimitedz!BZ2FileTest.testDecompressLimited�s����|�|�E�C��H�,�A�|�>������D�	�<�#;�#;�<�����'��������Q���/��,�,�
����V�^�^�/�/�4�4�6�
�7�	9rc�t�t|j�5}t|�5}|jt|j
t
��|j|j�|j�ddd�|j|j�ddd�y#1swY�-xYw#1swYyxYwr%)rr8r
r[r\rbrcrdr7r�r(�r+r0rfs   r�testReadBytesIOzBZ2FileTest.testReadBytesIO�s{��
�T�Y�Y�
�3������!�!�)�T�Y�Y���@�� � �����d�i�i�8��
���S�Z�Z�(�	 �
���� �
�s#�B.�AB"�6#B.�"B+	�'B.�.B7c��t|j�5}t|�5}|j�}|j	t|�d�|j
|jj|��|j|j�|j�ddd�ddd�y#1swY�xYw#1swYyxYwr�)rr8r
r�r�rtr�r7r�rdrb)r+r0rfr�s    r�testPeekBytesIOzBZ2FileTest.testPeekBytesIO�s���
�T�Y�Y�
�3������	�	����#�#�C��J��2�����	�	� 4� 4�U� ;�<�� � �����d�i�i�8�	� �
���� �
�s#�B?�BB3�"B?�3B<	�8B?�?Cc��t�5}t|d�5}|jt|j�|j	|j
�ddd�|j
t|j��|j
�|j|j�ddd�y#1swY�`xYw#1swYyxYwr�)rr
r[r\rOr7rdr�getvaluer�r(rLs   r�testWriteBytesIOzBZ2FileTest.testWriteBytesIO�s���
�Y�#���c�"�d��!�!�)�T�Z�Z�8��
�
�4�9�9�%�#�
���^�C�L�L�N�;�T�Y�Y�G����S�Z�Z�(��Y�"�"���Y�s#�
B?�<B3�AB?�3B<	�8B?�?Cc�T�t|j�5}t|�5}|jt|j
�|jd�|j
|j�|jdd�ddd�ddd�y#1swY�xYw#1swYyxYwr�)	rr8r
r[r\r�rdrbr7rLs   r�testSeekForwardBytesIOz"BZ2FileTest.testSeekForwardBytesIO�st��
�T�Y�Y�
�3������!�!�)�T�Y�Y�7��	�	�#��� � �����d�i�i���o�>�� �
���� �
�s#�B�AB�B�B	�B�B'c�8�t|j�5}t|�5}|jd�|j	dd�|j|j�|jdd�ddd�ddd�y#1swY�xYw#1swYyxYwr�)rr8r
rbr�rdr7rLs   r�testSeekBackwardsBytesIOz$BZ2FileTest.testSeekBackwardsBytesIO�so��
�T�Y�Y�
�3������	�	�#���	�	�$��"�� � �����d�i�i���.A�B�� �
���� �
�s#�B�AB�3B�B
	�	B�Bc�~�|jdd}tt|��5}|jt|j
�ddd�tt|��5}|j
|jt|j��|j�|jt|j
d�ddd�td�D]C}tt|d|��5}|jt|j
d�ddd��Ey#1swY��xYw#1swY�gxYw#1swY�hxYw)N���r!�)
r8r
rr[�EOFErrorrbrdrtr7r�)r+�	truncatedrRr�s    r�test_read_truncatedzBZ2FileTest.test_read_truncated�s����I�I�d�s�O�	�
�W�Y�'�
(�A����h����/�)�
�W�Y�'�
(�A����Q�V�V�C��	�	�N�3�T�Y�Y�?����h�����2�)��r��A����2�A��/�0�A��!�!�(�A�F�F�A�6�1�0��
)�
(��
(�
(��
1�0�s$�!D�!A D'�."D3�D$�'D0�3D<	c�8�tjdgd��}t|�|jz}tt	�d�5}|j|j
|�|�|j|j�|�ddd�y#1swYyxYw)N�Q)r!r�rZ�rnr�)�arrayrt�itemsizer
rrdrOr�)r+�q�LENGTHrRs    r�test_issue44439zBZ2FileTest.test_issue44439�sl���K�K��_�-���Q��!�*�*�$��
�W�Y��
$�����Q�W�W�Q�Z��0����Q�V�V�X�v�.�%�
$�
$�s
�AB�BN)r!r)Fr1r2r3r4rSr_rgrkrprvryr{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�rrr	r	�requires_working_threadingrrrr)r,r1r8r>r@rJrMrOrRrTrVr\rdrJrrrLrLZsp����
	B�5�2�
9�3�5�
9�
0�	.�	2�>�
5�
4�8�8�@�D�@�
D�
6�B�
B�1�B�@�F�;�;�?�K�J�C�/�/�/�/�5�9�3�5�45�"5�"�=�
,�7�(1��0�0�2�
�3�
�3�"	9�'2�R*6�X�&�.	2�2�	9�)�9�)�?�C�7�/rrLc�h�eZdZd�Zd�Zd�Zejee	dzd��d���Z
d�Zy	)
�BZ2CompressorTestc��t�}|jt|j�|j|j�}||j�z
}|j
t|�|j�yr%)rr[r\rHr7�flushrdr�r+�bz2crs   r�testCompresszBZ2CompressorTest.testCompress�sX��������)�T�]�]�3��}�}�T�Y�Y�'����
�
���������-�t�y�y�9rc��t�}|jd�}||j�z
}|j||j�y�Nr)rrHrirdr9rjs   r�testCompressEmptyStringz)BZ2CompressorTest.testCompressEmptyString�s;������}�}�S�!����
�
��������t���/rc��t�}d}d}	|j|dz|dzdz}|sn||j|�z
}|dz
}�5||j�z
}|j	t|�|j�y)NrrrXr!)rr7rHrirdr)r+rkr�rr�s     r�testCompressChunks10z&BZ2CompressorTest.testCompressChunks10s������
������)�)�A�b�D�!�A�#�r��*�C����D�M�M�#�&�&�D�
��F�A��	
��
�
���������-�t�y�y�9rr�r���size�memusec�F�t�}d|z}	|j|�}||j�z
}d}tj	|�}	|jt
|�|�|jt
|jd��d�d}y#d}wxYw#d}wxYw)N�xr)rrHrirrrdrt�strip)r+rsrkr�
compresseds     r�testCompress4Gz BZ2CompressorTest.testCompress4Gs�������d�{��	����t�,�J��$�*�*�,�&�J��D��~�~�j�)��	����S��Y��-����S����D�!1�2�A�6��D��
�D���D�s�$B�
AB�B�B c���ttjdz�D]>}|jt�5tj
t
�|�ddd��@y#1swY�KxYw�Nr!)r��pickle�HIGHEST_PROTOCOLr[r\�dumpsr�r+�protos  r�
testPicklezBZ2CompressorTest.testPickle"sI���6�2�2�Q�6�7�E��"�"�9�-����]�_�e�4�.�-�8�-�-���A�A(	N)r1r2r3rlrorqr�skip_if_pgo_taskrrryr�rJrrrgrg�sC��:�0�:�
����S�3�Y�q�)��*��� 5rrgc��eZdZd�Zd�Zd�Zd�Zd�Zeje
edzd��d	���Zd
�Z
d�Zd�Zd
�Zd�Zd�Zej&d��Zd�Zy)�BZ2DecompressorTestc�:�|jttd�y)N�*)r[r\rr/s r�test_Constructorz$BZ2DecompressorTest.test_Constructor)s�����)�_�b�9rc���t�}|jt|j�|j|j�}|j||j�yr%)rr[r\rr8rdr7�r+�bz2dr�s   r�testDecompressz"BZ2DecompressorTest.testDecompress,sD��� �����)�T�_�_�5����t�y�y�)������t�y�y�)rc���t�}d}d}	|j|dz|dzdz}|sn||j|�z
}|dz
}�5|j||j�y)NrrrXr!)rr8rrdr7)r+r�r�r�r�s     r�testDecompressChunks10z*BZ2DecompressorTest.testDecompressChunks102sp��� ����
����)�)�A�b�D�!�A�#�r��*�C����D�O�O�C�(�(�D�
��F�A��	
����t�y�y�)rc���t�}d}|j|j|z�}|j||j�|j|j
|�y)Nsthis is unused data)rrr8rdr7�unused_data)r+r�r�r�s    r�testDecompressUnusedDataz,BZ2DecompressorTest.testDecompressUnusedData>sP��� ��,�����t�y�y��4�5������t�y�y�)�����)�)�;�7rc���t�}|j|j�}|jt|jd�|jt|jd�y)Nsanythingr)rrr8r[rZr�s   r�testEOFErrorz BZ2DecompressorTest.testEOFErrorEsH��� �����t�y�y�)�����(�D�O�O�[�A����(�D�O�O�S�9rr�gffffff
@rrc��td|�}tj|�}	||dz
|zdzz}tj	|�}t�}|j
|�}|j||k(�d}d}d}y#d}d}d}wxYw)Ni�r!)�min�random�	randbytesrrHrrr�)r+rs�	blocksize�blockrrxr��decompresseds        r�testDecompress4Gz$BZ2DecompressorTest.testDecompress4GKs����(�$�/�	�� � ��+��		 ��T�!�V�	�1�A�5�6�D����d�+�J�"�$�D��?�?�:�6�L��O�O�L�D�0�1��D��J��L���D��J��L�s�AA<�<Bc���ttjdz�D]>}|jt�5tj
t
�|�ddd��@y#1swY�KxYwr{)r�r|r}r[r\r~rrs  rr�zBZ2DecompressorTest.testPickle\sJ���6�2�2�Q�6�7�E��"�"�9�-����_�.��6�.�-�8�-�-�r�c��t�}d}g}t|j�dz
}|j|j	|jd||���|j|j�|jt|d�|�|j|j	d|���|j|j�|jt|d�|�|j|j	|j|d|���|jt|d�|�|jsM|j|j	d|���|jt|d�|�|js�Mdj|�}|j||j�|j|jd�y)Nr��@��
max_length���r)
rrtrI�appendrr��needs_inputrdrE�eofr6r=r�)r+�bzdr��out�len_s     r�testDecompressorChunksMaxsizez1BZ2DecompressorTest.testDecompressorChunksMaxsizeas�������
����4�=�=�!�B�&���
�
�3�>�>�$�-�-���"6�-7�"�9�	:�������)�����S��W��z�2�	�
�
�3�>�>�#�*�>�=�>�������)�����S��W��z�2�	�
�
�3�>�>�$�-�-���"6�-7�"�9�	:����S��R��\�:�6��'�'��J�J�s�~�~�c�j�~�A�B�� � ��S��W��z�:��'�'��h�h�s�m������d�m�m�,�������#�.rc���t�}g}|j|j|jddd��d�|j	|jdd��|j	|j|jddd��|j	|j|jdd��|jdj|�|j�y)Nr�rr�rr��i��rrdrr8r�r6r7�r+r�r�s   r�test_decompressor_inputbuf_1z0BZ2DecompressorTest.test_decompressor_inputbuf_1�s��������	
�������	�	�$�3��34�(�6�7:�	<�
	�
�
�3�>�>�#�q�)�*�	�
�
�3�>�>�$�)�)�C��"4�b�9�:�	�
�
�3�>�>�$�)�)�C�D�/�2�3�������#���	�	�2rc�$�t�}g}|j|j|jddd��d�|j	|jd��|j	|j|jddd��|j	|j|jddd��|j	|j|jdd��|jdj|�|j�y)N��rr�rir��,r�r�s   r�test_decompressor_inputbuf_2z0BZ2DecompressorTest.test_decompressor_inputbuf_2�s��������	
�������	�	�$�3��34�(�6�7:�	<��
�
�3�>�>�#�&�'�	�
�
�3�>�>�$�)�)�C��"4�a�8�9�	�
�
�3�>�>�$�)�)�C��"4�a�8�9�	�
�
�3�>�>�$�)�)�C�D�/�2�3�������#���	�	�2rc��t�}g}|j|j|jddd��|j|j|jddd��|j|j|jdd��|j	dj|�|j�y)Nr�rnr�r)rr�rr8rdr6r7r�s   r�test_decompressor_inputbuf_3z0BZ2DecompressorTest.test_decompressor_inputbuf_3�s��������	�
�
�3�>�>�$�)�)�D�S�/�1�5�6�	�
�
�3�>�>�$�)�)�C��"4�a�8�9�	�
�
�3�>�>�$�)�)�C�D�/�2�3�������#���	�	�2rc���t�}|jt|j|jdz�|jt|j|jdz�y)N�)rr[�	Exceptionrr:)r+r�s  r�test_failurez BZ2DecompressorTest.test_failure�sH��������)�S�^�^�T�]�]�R�5G�H����)�S�^�^�T�]�]�R�5G�Hrc���tjtd�}t�}|�}t	d�D]}|j��|j
|�|z
dd��y)N�gettotalrefcountr�rrX)�delta)r�
get_attribute�sysrr��__init__�assertAlmostEqual)r+r�r��refs_beforer�s     r�test_refleaks_in___init__z-BZ2DecompressorTest.test_refleaks_in___init__�s[��"�0�0��6H�I�����&�(���s��A��L�L�N�����/�1�K�?��"��Mrc��|jtjt�jt	��d�yrn)rdr�__new__r�bytesr/s r�(test_uninitialized_BZ2Decompressor_crashz<BZ2DecompressorTest.test_uninitialized_BZ2Decompressor_crash�s+������0�0��A�#��E�G�,�c�	3rN)r1r2r3r�r�r�r�r�rr�rrr�r�r�r�r�r�r��
refcount_testr�r�rJrrr�r�(s���:�*�
*�8�:�
����S�3�Y�s�+�
 �,��
 �7�
/�>3�,3�*3� I�
���N��N�3rr�c�H�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zy)�CompressDecompressTestc��tj|j�}|jt	|�|j�yr%)rrHr7rdr)r+rs  rrlz#CompressDecompressTest.testCompress�s-���|�|�D�I�I�&�������-�t�y�y�9rc�f�tjd�}|j||j�yrn)rrHrdr9�r+r�s  rroz.CompressDecompressTest.testCompressEmptyString�s$���|�|�C� ������t���/rc�z�tj|j�}|j||j�yr%�rrr8rdr7r�s  rr�z%CompressDecompressTest.testDecompress�s(���~�~�d�i�i�(������t�y�y�)rc�R�tjd�}|j|d�yrn)rrrdr�s  r�testDecompressEmptyz*CompressDecompressTest.testDecompressEmpty�s ���~�~�c�"������s�#rc�f�tj|j�}|j|d�yrn)rrr9rdr�s  r�testDecompressToEmptyStringz2CompressDecompressTest.testDecompressToEmptyString�s$���~�~�d�o�o�.������s�#rc�h�|jttj|jdd�y)NrX)r[r]rrr8r/s r�testDecompressIncompletez/CompressDecompressTest.testDecompressIncomplete�s"�����*�c�n�n�d�i�i���o�Frc�b�|jttj|j�yr%)r[rjrrr:r/s r�testDecompressBadDataz,CompressDecompressTest.testDecompressBadData�s�����'�3�>�>�4�=�=�Arc��tj|jdz�}|j||jdz�yr
r�r�s  r�testDecompressMultiStreamz0CompressDecompressTest.testDecompressMultiStream�s0���~�~�d�i�i�!�m�,������t�y�y�1�}�-rc��tj|j|jz�}|j	||j
�yr%�rrr8r:rdr7r�s  r�testDecompressTrailingJunkz1CompressDecompressTest.testDecompressTrailingJunk�s1���~�~�d�i�i�$�-�-�7�8������t�y�y�)rc��tj|jdz|jz�}|j	||j
dz�yr
r�r�s  r�%testDecompressMultiStreamTrailingJunkz<CompressDecompressTest.testDecompressMultiStreamTrailingJunk�s9���~�~�d�i�i�!�m�d�m�m�;�<������t�y�y�1�}�-rN)
r1r2r3rlror�r�r�r�r�r�r�r�rJrrr�r��s6��:�0�*�$�$�G�B�.�*�.rr�c�L�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
y)
�OpenTestzTest the open function.c�,�tj|i|��Sr%)rrD)r+�args�kwargss   rrDz
OpenTest.open�s���x�x��(��(�(rc��dD�]�}|dk(rt|j�|j|j|�5}|j|j�ddd�t|jd�5}t|j
��}|j||j�ddd�|j|jd�5}|j|j
�|j�ddd�|j|jd�5}|j|j�ddd�t|jd�5}t|j
��}|j||jdz�ddd����y#1swY��HxYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY���xYw)N)rN�xbr�r r"r��r
r(rDrOr7rrbrd�r+�moderR�	file_datas    r�test_binary_modeszOpenTest.test_binary_modes�sF�� �D��t�|��t�}�}�%����4�=�=�$�/�1�����	�	�"�0��d�m�m�T�*�a�*�1�6�6�8�4�	�� � ��D�I�I�6�+����4�=�=�$�/�1�� � �����4�9�9�5�0����4�=�=�$�/�1�����	�	�"�0��d�m�m�T�*�a�*�1�6�6�8�4�	�� � ��D�I�I��M�:�+�*�!�0�/��*�*��0�/��/�/��*�*��;�F�76F,�+F9� G�9G�F)	�,F6	�9G	�G	�G	c��dD�]�}|dk(rt|j�|j|j|�5}|j|j�ddd�t|jd�5}t|j
��}|j||j�ddd�|j|jd�5}|j|j
�|j�ddd�|j|jd�5}|j|j�ddd�t|jd�5}t|j
��}|j||jdz�ddd����y#1swY��HxYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY���xYw)N)r��xr�r rYr�r�r�r�s    r�test_implicit_binary_modesz#OpenTest.test_implicit_binary_modessF���D��s�{��t�}�}�%����4�=�=�$�/�1�����	�	�"�0��d�m�m�T�*�a�*�1�6�6�8�4�	�� � ��D�I�I�6�+����4�=�=�#�.�!�� � �����4�9�9�5�/����4�=�=�#�.�!�����	�	�"�/��d�m�m�T�*�a�*�1�6�6�8�4�	�� � ��D�I�I��M�:�+�*��0�/��*�*��/�.��.�.��*�*�r�c��|jjd�}|jdtj�}dD�]�}|dk(rt|j�|j|j|d��5}|j|�ddd�t|jd�5}t|j��jd�}|j||�ddd�|j|jdd��5}|j|j�|�ddd�|j|jdd��5}|j|�ddd�t|jd�5}t|j��jd�}|j||d	z�ddd����y#1swY��BxYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY���xYw)
N�ascii�
)�wt�xtr���encodingr �rt�atr�)r7�decode�replacer)�linesepr
r(rDrOrrbrd)r+r��text_native_eolr�rRr�s      r�test_text_modeszOpenTest.test_text_modes s����y�y����(���,�,�t�R�Z�Z�8�� �D��t�|��t�}�}�%����4�=�=�$���A�Q�����
�B��d�m�m�T�*�a�*�1�6�6�8�4�;�;�G�D�	�� � ��O�<�+����4�=�=�$���A�Q�� � �����4�0�B����4�=�=�$���A�Q�����
�B��d�m�m�T�*�a�*�1�6�6�8�4�;�;�G�D�	�� � ��O�a�,?�@�+�*�!�B�A��*�*��B�A��A�A��*�*�s<�:G�*;G�!G%�G1�>G=�G	�G"	�%G.	�1G:	�=H	c�l�dD]�}t|j�d|vrdnd}|j|j||��5}	ddd�|jt�5|j|j|�5}	ddd�ddd���y#1swY�PxYw#1swY� xYw#1swY��xYw)N)r�r�r��t�utf-8r�)r
r(rDr[�FileExistsError)r+r�r�rRs    r�test_x_modezOpenTest.test_x_mode3s���%�D��4�=�=�!�"%��+�w�4�H����4�=�=�$���B�a��C��"�"�?�3��Y�Y�t�}�}�d�3�q��4�4�3�&�C�B��4�3��4�3�s0�B� B*�=B�?B*�B	�B'�#B*�*B3	c��|jt|j�d�5}|j|j	�|j
�ddd�|jt|j�d�5}|j|j	�|j
�ddd�|j
j
d�}|jt|j�dd��5}|j|j	�|�ddd�y#1swY��xYw#1swY��xYw#1swYyxYw)NrYr r�r�r�r�)rDrr8rdrbr7r�)r+rRr�s   r�test_fileobjzOpenTest.test_fileobj=s���
�Y�Y�w�t�y�y�)�3�
/�1����Q�V�V�X�t�y�y�1�0�
�Y�Y�w�t�y�y�)�4�
0�A����Q�V�V�X�t�y�y�1�1��y�y����(��
�Y�Y�w�t�y�y�)�4�'�Y�
B�a����Q�V�V�X�t�,�C�
B�0�
/��
0�
0��C�
B�s#�+D�>+D)�3!D5�D&�)D2�5D>c���|jt|j|jd�|jt|j|jd�|jt|j|jdd��|jt|j|jdd��|jt|j|jdd�	�y)
N�wbt�xbtr r�r��ignore)�errorsr�)�newline)r[r]rDr(r/s r�test_bad_paramszOpenTest.test_bad_paramsFs������*��)�)�T�]�]�E�	;����*��)�)�T�]�]�E�	;����*��)�)�T�]�]�D�7�	�	L����*��)�)�T�]�]�D��	�	K����*��)�)�T�]�]�D�$�	�	Hrc�r�|jjd�}|jdtj�}|j|jdd��5}|j|�ddd�t|jd�5}t|j��jd�}|j||�ddd�|j|jdd��5}|j|j�|�ddd�y#1swY��xYw#1swY�]xYw#1swYyxYw)Nr�r�r�z	utf-16-ler�r r�)r7r�r�r)r�rDr(rOrrbrd)r+r�r�rRr�s     r�
test_encodingzOpenTest.test_encodingSs����y�y����(���,�,�t�R�Z�Z�8��
�Y�Y�t�}�}�d�[�Y�
A�Q�
�G�G�D�M�B�
�$�-�-��
&�!�&�q�v�v�x�0�7�7��D�I����Y��8�'��Y�Y�t�}�}�d�[�Y�
A�Q����Q�V�V�X�t�,�B�
A�B�
A��
&�
&��B�
A�s$�D�
;D!�+!D-�D�!D*�-D6c�0�|j|jd�5}|jd�ddd�|j|jddd��5}|j|j	�d�ddd�y#1swY�RxYw#1swYyxYw)NrNsfoo�barr�r�r)r�r�foobar)rDr(rOrdrbrs  r�test_encoding_error_handlerz$OpenTest.test_encoding_error_handler_sq��
�Y�Y�t�}�}�d�
+�q�
�G�G�M�"�,�
�Y�Y�t�}�}�d�W�X�Y�
N�����Q�V�V�X�x�0�O�
N�,�
+��
N�
N�s�B�!B�B	�Bc�n�|jjd�}|j|jddd��5}|j	|�ddd�|j|jddd��5}|j|j
�|g�ddd�y#1swY�SxYw#1swYyxYw)Nr�r�r�r�)r�rr��
)r7r�rDr(rOrdr�)r+r�rRs   r�test_newlinezOpenTest.test_newlinegs����y�y����(��
�Y�Y�t�}�}�d�W�d�Y�
K�q�
�G�G�D�M�L�
�Y�Y�t�}�}�d�W�d�Y�
K�q����Q�[�[�]�T�F�3�L�
K�L�
K��
K�
K�s�B�4"B+�B(�+B4N)r1r2r3r4rDr�r�r�r�rrr
r
rrJrrr�r��s9���)�;�";�$A�&�-�H�
-�1�4rr�c�,�tj�yr%)r�
reap_childrenrJrr�tearDownModulerps�����r�__main__)*�testr�test.supportrrr`�unittestr.rrr)r|r>r&r�rrrrr	�test.support.os_helperr
rrrr��
import_modulerr
rrrr�TestCaserrLrgr�r�r�rr1�mainrJrr�<module>rs����(���	�+�	�
���
�
���&�)�3��
�"�m�!�!�%�(��7�7���$�1�x� � �1�hX
/�(�X
/�v05��05�fd3�(�d3�N%.�X�%.�Pv4�x�v4�r��z���H�M�M�O�r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists