Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.11/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.11/test/__pycache__/test_bz2.cpython-311.pyc

�

SԚg������ddlmZddlmZmZddlZddlZddlZddlmZm	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlmZddlmZddlmZmZddlZddlZejd��Zdd	lmZmZmZdad
�ZGd�dej ��Z!Gd
�de!��Z"Gd�de!��Z#Gd�de!��Z$Gd�de!��Z%Gd�de!��Z&d�Z'e(dkrej)��dSdS)�)�support)�
bigmemtest�_4GN)�BytesIO�DEFAULT_BUFFER_SIZE)�
import_helper)�threading_helper)�unlink�FakePath�bz2)�BZ2File�
BZ2Compressor�BZ2Decompressorc���t�!ttjd����atrt	jdg|���St�|��S)N�bunzip2)�input)�has_cmdline_bunzip2�bool�shutil�which�
subprocess�check_outputr�
decompress)�datas �*/usr/local/lib/python3.11/test/test_bz2.py�ext_decompressrsR���"�"�6�<�	�#:�#:�;�;���$��&�	�{�$�?�?�?�?��~�~�d�#�#�#�c	���eZdZdZgd�Zd�e��ZdZdZdZ	dZ
ed��Ze
j
ej�e
jej�e����d	����D]WZeed
��5Ze
e�ee��e
d���z
Z
ddd��n#1swxYwYe
dkrn�Xe�ed�
��Zd�Zd�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
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�d�tj��\}|_tj|��dS�N)�tempfile�mkstemp�filename�os�close)�self�fds  r�setUpzBaseTest.setUpRs(��$�,�.�.���D�M�
�������rc�.�t|j��dSr%)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��y��"�"�H����2�7�<�<����B�G�O�O�H�4M�4M�(N�(N�PV�W�W�X�X����
�T�%��
�
�	G�"�����Z�Z��%9�%9�)�*�*�%E�F�F�F�I�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G��x����E� ��|�|�H�A�|�6�6�H��������s�*C�C
	�
C
	rc��eZdZdZdEd�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/d0�Z0d1�Z1d2�Z2e3j4��d3���Z5d4�Z6d5�Z7d6�Z8d7�Z9d8�Z:d9�Z;d:�Z<d;�Z=d<�Z>d=�Z?d>�Z@d?�ZAd@�ZBdA�ZCdB�ZDdC�ZEdDS)F�BZ2FileTestzTest the BZ2File class.r!rc���t|jd��5}|�|j|z��|�|��ddd��dS#1swxYwYdS)N�wb)rDr(�writer8)r+�streams�suffix�fs    r�createTempFilezBZ2FileTest.createTempFile]s���
�$�-��
&�
&�	�!�
�G�G�D�I��'�(�(�(�
�G�G�F�O�O�O�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�3A�A�Ac�^�|�ttd��|�tttjd��|�tttjd��|�tttjd��|�tttjd���|�tttjd���|�tttjdd	��dS)
Ngw��/�^@�z�rx�rbtrr"�
�r�)�assertRaises�	TypeErrorr
�
ValueErrorr)�devnullr/s r�testBadArgszBZ2FileTest.testBadArgsbs������)�W�g�6�6�6����*�g�r�z�3�?�?�?����*�g�r�z�4�@�@�@����*�g�r�z�5�A�A�A����*�g�r�z���K�K�K����*�g�r�z���L�L�L�	
���)�W�b�j�#�q�A�A�A�A�Arc�<�|���t|j��5}|�t|jt
����|�|���|j��ddd��dS#1swxYwYdSr%�	rSr
r(r[r\�read�float�assertEqualr7�r+�bz2fs  r�testReadzBZ2FileTest.testReadms���������
�T�]�
#�
#�	5�t����i���E�G�G�<�<�<����T�Y�Y�[�[�$�)�4�4�4�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5����	5�	5�	5�	5�	5�	5s�AB�B�Bc���|�d|j���t|j��5}|�t
|j��ddd��dS#1swxYwYdS)Nr�rPrQ)rSr:r
r(r[�OSErrorrbres  r�testReadBadFilezBZ2FileTest.testReadBadFiless������A�d�m��<�<�<�
�T�]�
#�
#�	2�t����g�t�y�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2�	2�	2s�!A�A#�&A#c�F�|�d���t|j��5}|�t|jt
����|�|���|jdz��ddd��dS#1swxYwYdS�N��rPrares  r�testReadMultiStreamzBZ2FileTest.testReadMultiStreamxs������A��&�&�&�
�T�]�
#�
#�	9�t����i���E�G�G�<�<�<����T�Y�Y�[�[�$�)�a�-�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�	9�	9s�AB�B�Bc���tj}t|j��t_	|�d���t|j��5}|�t|j	t����|�|�	��|jdz��ddd��n#1swxYwY|t_dS#|t_wxYwrm)
�_compression�BUFFER_SIZE�lenr8rSr
r(r[r\rbrcrdr7)r+�buffer_sizerfs   r�testReadMonkeyMultiStreamz%BZ2FileTest.testReadMonkeyMultiStream~s��#�.��#&�t�y�>�>�� �	3������*�*�*����'�'�
=�4��!�!�)�T�Y����@�@�@�� � ������d�i�!�m�<�<�<�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=����
=�
=�
=�
=�(3�L�$�$�$��{�L�$�2�2�2�2s0�*C�AC�4C�C�C�C�C�C'c���|�|j���t|j��5}|�|���|j��ddd��dS#1swxYwYdS)N)rQ�rSr:r
r(rdrbr7res  r�testReadTrailingJunkz BZ2FileTest.testReadTrailingJunk�s������4�=��1�1�1�
�T�]�
#�
#�	5�t����T�Y�Y�[�[�$�)�4�4�4�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5����	5�	5�	5�	5�	5�	5s�.A+�+A/�2A/c��|�d|j���t|j��5}|�|���|jdz��ddd��dS#1swxYwYdS)Nrnrirxres  r�testReadMultiStreamTrailingJunkz+BZ2FileTest.testReadMultiStreamTrailingJunk�s������A�d�m��<�<�<�
�T�]�
#�
#�	9�t����T�Y�Y�[�[�$�)�a�-�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�	9�	9s�1A/�/A3�6A3c�4�|���t|j��5}|�t|jt
����|�|�d��d��ddd��dS#1swxYwYdS)Nrr)rSr
r(r[r\rbrcrdres  r�	testRead0zBZ2FileTest.testRead0�s���������
�T�]�
#�
#�	0�t����i���E�G�G�<�<�<����T�Y�Y�q�\�\�3�/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�	0�	0s�AB
�
B�Bc��|���t|j��5}d}	|�d��}|sn||z
}�|�||j��ddd��dS#1swxYwYdS)NrTrX�rSr
r(rbrdr7�r+rf�text�strs    r�testReadChunk10zBZ2FileTest.testReadChunk10�s���������
�T�]�
#�
#�	.�t��D�
��i�i��m�m���������	
�

���T�4�9�-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�	.�	.s�=A3�3A7�:A7c�
�|�d���t|j��5}d}	|�d��}|sn||z
}�|�||jdz��ddd��dS#1swxYwYdS)NrnrorTrXrr�s    r�testReadChunk10MultiStreamz&BZ2FileTest.testReadChunk10MultiStream�s������A��&�&�&�
�T�]�
#�
#�	2�t��D�
��i�i��m�m���������	
�

���T�4�9�q�=�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2�	2�	2s�AA8�8A<�?A<c���|���t|j��5}|�|�d��|jdd���ddd��dS#1swxYwYdS)N�d)rSr
r(rdrbr7res  r�testRead100zBZ2FileTest.testRead100�s���������
�T�]�
#�
#�	>�t����T�Y�Y�s�^�^�T�Y�t��t�_�=�=�=�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�	>�	>s�7A-�-A1�4A1c��|���t|j��5}|���}|�t|��d��|�|j�|����|�	|�
��|j��ddd��dS#1swxYwYdS�Nr)rSr
r(�peek�assertNotEqualrt�
assertTruer7�
startswithrdrb)r+rf�pdatas   r�testPeekzBZ2FileTest.testPeek�s���������
�T�]�
#�
#�	5�t��I�I�K�K�E�����E�
�
�A�.�.�.��O�O�D�I�0�0��7�7�8�8�8����T�Y�Y�[�[�$�)�4�4�4�		5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5����	5�	5�	5�	5�	5�	5s�BC�C�Cc�\�|���t|j��5}d}t|��}|�|�|��|��|�||jd|���t|j��|z
}tt|j����}|�|�|��|��|�|d|�|j|d���ddd��dS#1swxYwYdS)N�)rSr
r(r<rdrFr7rt)r+rf�n�bs    r�testReadIntozBZ2FileTest.testReadInto�sJ��������
�T�]�
#�
#�	4�t��A��!���A����T�]�]�1�-�-�q�1�1�1����Q��	�"�1�"�
�.�.�.��D�I����"�A��#�d�i�.�.�)�)�A����T�]�]�1�-�-�q�1�1�1����Q�r��r�U�D�I�q�b�c�c�N�3�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�	4�	4s�C+D!�!D%�(D%c�0�|���t|j��5}|�t|jd��|jD]*}|�|���|���+	ddd��dS#1swxYwYdSr%�rSr
r(r[r\�readliner5rd�r+rf�lines   r�testReadLinezBZ2FileTest.testReadLine�s���������
�T�]�
#�
#�	8�t����i����=�=�=���
8�
8��� � ������$�7�7�7�7�
8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�	8�	8s�AB�B�Bc�:�|�d���t|j��5}|�t|jd��|jdzD]*}|�|���|���+	ddd��dS#1swxYwYdSrmr�r�s   r�testReadLineMultiStreamz#BZ2FileTest.testReadLineMultiStream�s������A��&�&�&�
�T�]�
#�
#�	8�t����i����=�=�=���!�+�
8�
8��� � ������$�7�7�7�7�
8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�	8�	8s�AB�B�Bc�$�|���t|j��5}|�t|jd��|�|���|j��ddd��dS#1swxYwYdSr%�rSr
r(r[r\�	readlinesrdr5res  r�
testReadLineszBZ2FileTest.testReadLines�s���������
�T�]�
#�
#�	@�t����i����>�>�>����T�^�^�-�-�t��?�?�?�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@����	@�	@�	@�	@�	@�	@s�AB�B	�B	c�.�|�d���t|j��5}|�t|jd��|�|���|jdz��ddd��dS#1swxYwYdSrmr�res  r�testReadLinesMultiStreamz$BZ2FileTest.testReadLinesMultiStream�s������A��&�&�&�
�T�]�
#�
#�	D�t����i����>�>�>����T�^�^�-�-�t���/B�C�C�C�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�	D�	Ds�AB
�
B�Bc���|���t|j��5}|�t	t|����|j��ddd��dS#1swxYwYdSr%�rSr
r(rd�list�iterr5res  r�testIteratorzBZ2FileTest.testIterator�s���������
�T�]�
#�
#�	@�t����T�$�t�*�*�-�-�t��?�?�?�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@����	@�	@�	@�	@�	@�	@s�6A,�,A0�3A0c��|�d���t|j��5}|�t	t|����|jdz��ddd��dS#1swxYwYdSrmr�res  r�testIteratorMultiStreamz#BZ2FileTest.testIteratorMultiStream�s������A��&�&�&�
�T�]�
#�
#�	D�t����T�$�t�*�*�-�-�t���/B�C�C�C�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�	D�	Ds�9A1�1A5�8A5c��|���t|j��}|���|�t
t|��|�t
|j��dSr%)rSr
r(r*r[r]�nextr�res  r�testClosedIteratorDeadlockz&BZ2FileTest.testClosedIteratorDeadlock�sf���������t�}�%�%���
�
�������*�d�D�1�1�1����*�d�n�5�5�5�5�5rc��t|jd��5}|�t|j��|�|j��ddd��n#1swxYwYt
|jd��5}|�t|�	����|j��ddd��dS#1swxYwYdS)N�wr �
r
r(r[r\rOr7rDrdrrb�r+rfrRs   r�	testWritezBZ2FileTest.testWrite�sB��
�T�]�C�
(�
(�	"�D����i���4�4�4��J�J�t�y�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"��$�-��
&�
&�	B�!����^�A�F�F�H�H�5�5�t�y�A�A�A�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�	B�	Bs#�;A�A!�$A!�=;C�C	�C	c��t|jd��5}d}	|j|dz|dzdz�}|sn|�|��|dz
}�6	ddd��n#1swxYwYt	|jd��5}|�t
|�����|j��ddd��dS#1swxYwYdS)Nr�rTrXr!r )r
r(r7rOrDrdrrb)r+rfr�r�rRs     r�testWriteChunks10zBZ2FileTest.testWriteChunks10�si��
�T�]�C�
(�
(�	�D��A�
��i��"��a��c�2�X�
�.������
�
�3�����Q���
��	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��$�-��
&�
&�	B�!����^�A�F�F�H�H�5�5�t�y�A�A�A�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�	B�	Bs#�:A�A!�$A!�=;C�C	�C	c��t�|jd���}t|jdd���5}|�|j��ddd��n#1swxYwYt
|jd��5}|�|���|��ddd��dS#1swxYwYdS)Nrnr"r�r )	rrHr7r
r(rOrDrdrb)r+�expectedrfrRs    r� testWriteNonDefaultCompressLevelz,BZ2FileTest.testWriteNonDefaultCompressLevel
s'���<�<��	��<�;�;��
�T�]�C�q�
9�
9�
9�	"�T��J�J�t�y�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�
�$�-��
&�
&�	1�!����Q�V�V�X�X�x�0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�	1�	1s#�A � A$�'A$�)B6�6B:�=B:c���t|jd��5}|�t|j��|�|j��ddd��n#1swxYwY|�t|jdg��t|jd��5}|�t|�
����|j��ddd��dS#1swxYwYdS)Nr��ar )r
r(r[r\�
writelinesr5r]rDrdrrbr7r�s   r�testWriteLineszBZ2FileTest.testWriteLiness^��
�T�]�C�
(�
(�	-�D����i���9�9�9��O�O�D�O�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�
	
���*�d�o��u�=�=�=�
�$�-��
&�
&�	B�!����^�A�F�F�H�H�5�5�t�y�A�A�A�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�	B�	Bs#�;A�A!�$A!�;C'�'C+�.C+c�l�t|jd��5}|�d��ddd��n#1swxYwYt|jd��5}|�t|jd��|�t|jdg��ddd��dS#1swxYwYdS)Nr�sabcrY�a)r
r(rOr[rjr�res  r�testWriteMethodsOnReadOnlyFilez*BZ2FileTest.testWriteMethodsOnReadOnlyFiles6��
�T�]�C�
(�
(�	�D��J�J�v����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��T�]�C�
(�
(�	@�D����g�t�z�4�8�8�8����g�t����?�?�?�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@����	@�	@�	@�	@�	@�	@s�8�<�<�AB)�)B-�0B-c�x�t|jd��5}|�t|j��|�|j��ddd��n#1swxYwYt|jd��5}|�t|j��|�|j��ddd��n#1swxYwYt
|jd��5}|�t|�	����|jdz��ddd��dS#1swxYwYdS)Nr�r�r �r�r�s   r�
testAppendzBZ2FileTest.testAppend#s���
�T�]�C�
(�
(�	"�D����i���4�4�4��J�J�t�y�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"��T�]�C�
(�
(�	"�D����i���4�4�4��J�J�t�y�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"��$�-��
&�
&�	F�!����^�A�F�F�H�H�5�5�t�y�1�}�E�E�E�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F����	F�	F�	F�	F�	F�	Fs5�;A�A!�$A!�=;C�C�C�$>D/�/D3�6D3c�\�|���t|j��5}|�t|j��|�d��|�|���|jdd���ddd��dS#1swxYwYdS�N�)	rSr
r(r[r\�seekrdrbr7res  r�testSeekForwardzBZ2FileTest.testSeekForward-s���������
�T�]�
#�
#�	;�t����i���3�3�3��I�I�c�N�N�N����T�Y�Y�[�[�$�)�C�D�D�/�:�:�:�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�	;�	;��A+B!�!B%�(B%c��|�d���t|j��5}|�t|j��|�t
|j��dz��|�|�	��|jdd���ddd��dS#1swxYwYdS)Nr�ror�)
rSr
r(r[r\r�rtr7rdrbres  r�testSeekForwardAcrossStreamsz(BZ2FileTest.testSeekForwardAcrossStreams4s������A��&�&�&�
�T�]�
#�
#�	;�t����i���3�3�3��I�I�c�$�)�n�n�s�*�+�+�+����T�Y�Y�[�[�$�)�C�D�D�/�:�:�:�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�	;�	;s�BB8�8B<�?B<c�H�|���t|j��5}|�d��|�dd��|�|���|jdd���ddd��dS#1swxYwYdS�Ni��j���r!i^)rSr
r(rbr�rdr7res  r�testSeekBackwardszBZ2FileTest.testSeekBackwards;s���������
�T�]�
#�
#�	?�t��I�I�c�N�N�N��I�I�d�A�������T�Y�Y�[�[�$�)�G�H�H�*=�>�>�>�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?����	?�	?�	?�	?�	?�	?��A!B�B�Bc���|�d���t|j��5}t|j��dz}|dkr+|t|�|����z}|dk�+|�dd��|�|���|jdd�|jz��ddd��dS#1swxYwYdS)Nr�ror�rr�r!i���)rSr
r(rtr7rbr�rd)r+rf�readtos   r�testSeekBackwardsAcrossStreamsz*BZ2FileTest.testSeekBackwardsAcrossStreamsBs%�����A��&�&�&�
�T�]�
#�
#�	K�t����^�^�c�)�F��1�*�*��#�d�i�i��/�/�0�0�0���1�*�*��I�I�d�A�������T�Y�Y�[�[�$�)�G�H�H�*=��	�*I�J�J�J�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K����	K�	K�	K�	K�	K�	Ks�BC�C�Cc�H�|���t|j��5}|�dd��|�|���|jt|j��dz
d���ddd��dS#1swxYwYdS)Nr�r�r�)rSr
r(r�rdrbr7rtres  r�testSeekBackwardsFromEndz$BZ2FileTest.testSeekBackwardsFromEndKs���������
�T�]�
#�
#�	J�t��I�I�d�A�������T�Y�Y�[�[�$�)�C��	�N�N�3�4F�4G�4G�*H�I�I�I�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J����	J�	J�	J�	J�	J�	Jr�c�(�|�d���t|j��5}|�dd��|�|���|jdzdd���ddd��dS#1swxYwYdS)Nr�roi���)rSr
r(r�rdrbr7res  r�%testSeekBackwardsFromEndAcrossStreamsz1BZ2FileTest.testSeekBackwardsFromEndAcrossStreamsQs������A��&�&�&�
�T�]�
#�
#�	C�t��I�I�e�Q�������T�Y�Y�[�[�4�9�q�=�%�&�&�*A�B�B�B�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C����	C�	C�	C�	C�	C�	Cs�AB�B�Bc�v�|���t|j��5}|�d��|�|���t
|j����|�|���d��ddd��dS#1swxYwYdS�N��Ir�	rSr
r(r�rd�tellrtr7rbres  r�testSeekPostEndzBZ2FileTest.testSeekPostEndWs���������
�T�]�
#�
#�	/�t��I�I�f�������T�Y�Y�[�[�#�d�i�.�.�9�9�9����T�Y�Y�[�[�#�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/s�A8B.�.B2�5B2c��|�d���t|j��5}|�d��|�|���t
|j��dz��|�|���d��ddd��dS#1swxYwYdS�Nrnror�rr�res  r�testSeekPostEndMultiStreamz&BZ2FileTest.testSeekPostEndMultiStream^s������A��&�&�&�
�T�]�
#�
#�	/�t��I�I�f�������T�Y�Y�[�[�#�d�i�.�.�1�*<�=�=�=����T�Y�Y�[�[�#�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/s�A;B3�3B7�:B7c��|���t|j��5}|�d��|�d��|�|���t
|j����|�|���d��ddd��dS#1swxYwYdSr�r�res  r�testSeekPostEndTwicez BZ2FileTest.testSeekPostEndTwicees���������
�T�]�
#�
#�	/�t��I�I�f�����I�I�f�������T�Y�Y�[�[�#�d�i�.�.�9�9�9����T�Y�Y�[�[�#�.�.�.�		/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/s�B
C�C�
Cc��|�d���t|j��5}|�d��|�d��|�|���t
|j��dz��|�|���d��ddd��dS#1swxYwYdSr�r�res  r�testSeekPostEndTwiceMultiStreamz+BZ2FileTest.testSeekPostEndTwiceMultiStreamms������A��&�&�&�
�T�]�
#�
#�	/�t��I�I�f�����I�I�f�������T�Y�Y�[�[�#�d�i�.�.�1�*<�=�=�=����T�Y�Y�[�[�#�.�.�.�		/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/s�BC�C�Cc�\�|���t|j��5}|�d��|�|���d��|�|���|j��ddd��dS#1swxYwYdS)Nr�r�rSr
r(r�rdr�rbr7res  r�testSeekPreStartzBZ2FileTest.testSeekPreStartus���������
�T�]�
#�
#�	5�t��I�I�d�O�O�O����T�Y�Y�[�[�!�,�,�,����T�Y�Y�[�[�$�)�4�4�4�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5����	5�	5�	5�	5�	5�	5r�c�f�|�d���t|j��5}|�d��|�|���d��|�|���|jdz��ddd��dS#1swxYwYdS)Nr�ror�rr�res  r�testSeekPreStartMultiStreamz'BZ2FileTest.testSeekPreStartMultiStream|s������A��&�&�&�
�T�]�
#�
#�	9�t��I�I�d�O�O�O����T�Y�Y�[�[�!�,�,�,����T�Y�Y�[�[�$�)�a�-�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�	9�	9s�A.B&�&B*�-B*c��|���t|jd��5}t|��}	|�|���|�����|���n#|���wxYw	ddd��n#1swxYwY|�t|j��dS)Nr )	rSrDr(r
rd�filenor*r[r])r+�rawfrfs   r�
testFilenozBZ2FileTest.testFileno�s���������
�$�-��
&�
&�	�$��4�=�=�D�
�� � ���������
�
�>�>�>��
�
�������
�
���������	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
���*�d�k�2�2�2�2�2s(�B0�:B
�5B0�
B � B0�0B4�7B4c��tt|j����}	|�|�����|���|�|�����|���n#|���wxYw|�t|j��tt��d��}	|�	|�����|���n#|���wxYw|�t|j��t|j��}d�|_t|��}	|�	|�����|���n#|���wxYw|�t|j��dS)Nr�c��dS)NFrJrJrr�<lambda>z*BZ2FileTest.testSeekable.<locals>.<lambda>�s��u�r)
r
rr8r��seekablerbr*r[r]�assertFalse)r+rf�srcs   r�testSeekablezBZ2FileTest.testSeekable�s����w�t�y�)�)�*�*��	��O�O�D�M�M�O�O�,�,�,��I�I�K�K�K��O�O�D�M�M�O�O�,�,�,��J�J�L�L�L�L��D�J�J�L�L�L�L�������*�d�m�4�4�4��w�y�y�#�&�&��	����T�]�]�_�_�-�-�-��J�J�L�L�L�L��D�J�J�L�L�L�L�������*�d�m�4�4�4��d�i� � ��$�}����s�|�|��	����T�]�]�_�_�-�-�-��J�J�L�L�L�L��D�J�J�L�L�L�L�������*�d�m�4�4�4�4�4s$�A"B�B0�0'D,�,E�'G
�
G#c���tt|j����}	|�|�����|���|�|�����|���n#|���wxYw|�t|j��tt��d��}	|�	|�����|���n#|���wxYw|�t|j��dS�Nr�)
r
rr8r��readablerbr*r[r]r�res  r�testReadablezBZ2FileTest.testReadable�s���w�t�y�)�)�*�*��	��O�O�D�M�M�O�O�,�,�,��I�I�K�K�K��O�O�D�M�M�O�O�,�,�,��J�J�L�L�L�L��D�J�J�L�L�L�L�������*�d�m�4�4�4��w�y�y�#�&�&��	����T�]�]�_�_�-�-�-��J�J�L�L�L�L��D�J�J�L�L�L�L�������*�d�m�4�4�4�4�4��A"B�B0�0'D,�,Ec���tt|j����}	|�|�����|���|�|�����|���n#|���wxYw|�t|j��tt��d��}	|�	|�����|���n#|���wxYw|�t|j��dSr�)
r
rr8r��writablerbr*r[r]r�res  r�testWritablezBZ2FileTest.testWritable�s
���w�t�y�)�)�*�*��	����T�]�]�_�_�-�-�-��I�I�K�K�K����T�]�]�_�_�-�-�-��J�J�L�L�L�L��D�J�J�L�L�L�L�������*�d�m�4�4�4��w�y�y�#�&�&��	��O�O�D�M�M�O�O�,�,�,��J�J�L�L�L�L��D�J�J�L�L�L�L�������*�d�m�4�4�4�4�4r�c�|�|���td��D]}t|j��}~�dS)Ni')rS�ranger
r()r+�i�os   r�testOpenDelzBZ2FileTest.testOpenDel�sG���������u���	�	�A���
�&�&�A���	�	rc�H�|�ttd��dS)Nz
/non/existent)r[rjr
r/s r�testOpenNonexistentzBZ2FileTest.testOpenNonexistent�s �����'�7�O�<�<�<�<�<rc��d}t|jd��5}|�|��ddd��n#1swxYwYt|j��5}|���}ddd��n#1swxYwY|�|dg��t|j��5}t
|�����}ddd��n#1swxYwY|�|dg��dS)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�M�M�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�T�]�
#�
#�	%�t��N�N�$�$�E�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%������	�*�*�*�
�T�]�
#�
#�	,�t��$�.�.�*�*�+�+�F�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�����'��+�+�+�+�+s1�:�>�>�A:�:A>�A>�0"C�C"�%C"c��d}t|jd��5}|�d��ddd��n#1swxYwYt|jd��}|���	|5	ddd��n#1swxYwY|�d��n#t
$rYnwxYw	t|jd��5}ddzddd��n#1swxYwY|�d��dS#t$rYdSwxYw)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�O�O�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��D�M�4�(�(��	���	�	�	�	N��
�
��
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�

�I�I�L�M�M�M�M���	�	�	��D�	����	7�����-�-�
���!���
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�

�I�I�5�6�6�6�6�6��!�	�	�	��D�D�	���sy�:�>�>�/B �1A?�3B �?B�B �B�B � 
B-�,B-�1C:�C�C:�C�C:�C� C:�:
D�Dc�����ddz�d}t|jd��5���fd���fd�t|��D��}tj|��5	ddd��n#1swxYwYddd��dS#1swxYwYdS)N�1irXrNc�V��td��D]}������dS�Nrn)r�rO)r�rrRs ��r�compz'BZ2FileTest.testThreading.<locals>.comp�s3����q���"�"�A��G�G�D�M�M�M�M�"�"rc�:��g|]}tj������S))�target)�	threading�Thread)�.0r�rs  �r�
<listcomp>z-BZ2FileTest.testThreading.<locals>.<listcomp>�s'���N�N�N��y�'�t�4�4�4�N�N�Nr)r
r(r�r	�
start_threads)r+�nthreads�threadsrrrRs   @@@r�
testThreadingzBZ2FileTest.testThreading�s1������e�|����
�T�]�D�
)�
)�	�Q�
"�
"�
"�
"�
"�
"�O�N�N�N�e�H�o�o�N�N�N�G�!�/��8�8�
�
��
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s5�6A<�A$�A<�$A(	�(A<�+A(	�,A<�<B�Bc��|���t|jd��}|dz}t|j��5}|�|��|�t|��|jd|d���|�|���|j|d���ddd��n#1swxYwYt|j��5}|�	��|�t|��|jd��|�|�	��|jd��ddd��n#1swxYwYt|j��5}|�
��|�tt|��|�|�
��g��ddd��dS#1swxYwYdS)Nrr�r!)
rSrtr5r
r(rbrdr�r7r�r�r[�
StopIteration)r+�linelen�halflenrfs    r�testMixedIterationAndReadsz&BZ2FileTest.testMixedIterationAndReadss~���������d�o�a�(�)�)���Q�,��
�T�]�
#�
#�	?�t��I�I�g�������T�$�Z�Z����);�G�H�H�)E�F�F�F����T�Y�Y�[�[�$�)�G�H�H�*=�>�>�>�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?����	?�	?�	?�	?��T�]�
#�
#�	B�t��M�M�O�O�O����T�$�Z�Z����);�<�<�<����T�]�]�_�_�d�o�a�.@�A�A�A�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B��T�]�
#�
#�	3�t��N�N�������m�T�4�8�8�8����T�^�^�-�-�r�2�2�2�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�	3�	3s9�BC�C�C�4A6E6�6E:�=E:�AH�H�Hc���d}d}t|jd��5}|�|��ddd��n#1swxYwYt|jd��5}|�|��ddd��n#1swxYwYt|j��5}|�|���||z��ddd��dS#1swxYwYdS)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�]�
#�
#�	9�t����T�Y�Y�[�[�%�%�-�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�	9�	9s3�<�A�A�A>�>B�B�,C�C�Cc�&
�t|jd��5}|�d��|�|���t
��|�|���d��|�|���d��|�|�	��d��|�|j
d��ddd��n#1swxYwY|�|j
d��|�t|j��|�t|j��|�t|j��|�t|j	��t|jd��5}|�d��|�|���t
��|�|���d��|�|���d��|�|�	��d��|�|j
d��ddd��n#1swxYwY|�|j
d��|�t|j��|�t|j��|�t|j��|�t|j	��t|jd��5}|�
|���d��|�|���t
��|�|���d��|�|���d��|�|�	��d��|�|j
d��ddd��n#1swxYwY|�|j
d��|�t��5|���ddd��n#1swxYwY|�t|j��|�t|j��|�t|j	��dS�	NrN�contentFT�ab�appendixr �contentappendix)r
r(rO�assertIsInstancer��int�assertIsr�r�r��closedr[r]rdrbr	s  r�testOpenFilenamezBZ2FileTest.testOpenFilenames���
�T�]�D�
)�
)�	+�Q�
�G�G�J�����!�!�!�(�(�*�*�c�2�2�2��M�M�!�*�*�,�,��.�.�.��M�M�!�*�*�,�,��-�-�-��M�M�!�*�*�,�,��.�.�.��M�M�!�(�E�*�*�*�
	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�	
�
�
�a�h��%�%�%����*�a�h�/�/�/����*�a�j�1�1�1����*�a�j�1�1�1����*�a�j�1�1�1�
�T�]�D�
)�
)�	+�Q�
�G�G�K� � � ��!�!�!�(�(�*�*�c�2�2�2��M�M�!�*�*�,�,��.�.�.��M�M�!�*�*�,�,��-�-�-��M�M�!�*�*�,�,��.�.�.��M�M�!�(�E�*�*�*�
	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�	
�
�
�a�h��%�%�%����*�a�h�/�/�/����*�a�j�1�1�1����*�a�j�1�1�1����*�a�j�1�1�1�
�T�]�D�
)�
)�	+�Q����Q�V�V�X�X�'9�:�:�:��!�!�!�(�(�*�*�c�2�2�2��M�M�!�*�*�,�,��-�-�-��M�M�!�*�*�,�,��.�.�.��M�M�!�*�*�,�,��-�-�-��M�M�!�(�E�*�*�*�
	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�	
�
�
�a�h��%�%�%�
�
�
�z�
*�
*�	�	�
�H�H�J�J�J�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	����*�a�j�1�1�1����*�a�j�1�1�1����*�a�j�1�1�1�1�1sJ�CC8�8C<�?C<�3CJ�J�J�C)Q�Q	�Q	�R&�&R*�-R*c�f�t|jd��5}t|d��5}|�d��|�|���|�����|�|���d��|�|���d��|�|�	��d��|�|j
d��ddd��n#1swxYwY|�|j
d��|�t|j��|�t|j��|�t|j��|�t|j	��ddd��n#1swxYwYt|jd��5}t|d��5}|�d��|�|���|�����|�|���d��|�|���d��|�|�	��d��|�|j
d��ddd��n#1swxYwY|�|j
d��|�t|j��|�t|j��|�t|j��|�t|j	��ddd��n#1swxYwYt|jd��5}t|d��5}|�|�
��d��|�|���|�����|�|���d��|�|���d��|�|�	��d��|�|j
d��ddd��n#1swxYwY|�|j
d��|�t��5|���ddd��n#1swxYwY|�t|j��|�t|j��|�t|j	��ddd��dS#1swxYwYdSr$)rDr(r
rOrdr�r+r�r�r�r,r[r]rb)r+�rawrRs   r�testOpenFileWithNamez BZ2FileTest.testOpenFileWithNameEs ��
�$�-��
&�
&�	6�#���d�#�#�
/�q����
�#�#�#�� � ������S�Z�Z�\�\�:�:�:��
�
�a�j�j�l�l�E�2�2�2��
�
�a�j�j�l�l�D�1�1�1��
�
�a�j�j�l�l�E�2�2�2��
�
�a�h��.�.�.�

/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/����
/�
/�
/�
/�
�M�M�!�(�D�)�)�)����j�!�(�3�3�3����j�!�*�5�5�5����j�!�*�5�5�5����j�!�*�5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6��$�-��
&�
&�	6�#���d�#�#�
/�q�����$�$�$�� � ������S�Z�Z�\�\�:�:�:��
�
�a�j�j�l�l�E�2�2�2��
�
�a�j�j�l�l�D�1�1�1��
�
�a�j�j�l�l�E�2�2�2��
�
�a�h��.�.�.�

/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/����
/�
/�
/�
/�
�M�M�!�(�D�)�)�)����j�!�(�3�3�3����j�!�*�5�5�5����j�!�*�5�5�5����j�!�*�5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6��$�-��
&�
&�
	6�#���d�#�#�
/�q�� � ������+=�>�>�>�� � ������S�Z�Z�\�\�:�:�:��
�
�a�j�j�l�l�D�1�1�1��
�
�a�j�j�l�l�E�2�2�2��
�
�a�j�j�l�l�D�1�1�1��
�
�a�h��.�.�.�

/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/����
/�
/�
/�
/�
�M�M�!�(�D�)�)�)��"�"�:�.�.�
�
����
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
����j�!�*�5�5�5����j�!�*�5�5�5����j�!�*�5�5�5�
	6�
	6�
	6�
	6�
	6�
	6�
	6�
	6�
	6�
	6�
	6�
	6����
	6�
	6�
	6�
	6�
	6�
	6s��G�C#D�
G�D	�G�D	�BG�G�G�(N�9C#K(�N�(K,	�,N�/K,	�0BN�N�!N�:V&�C6S
�V&�
S	�V&�S	�8V&�
T.�"V&�.T2	�2V&�5T2	�6A#V&�&V*�-V*c���t��}t|d��5}|�d��|�tj|j��ddd��n#1swxYwY|�t|j��t|d��5}|�d��|�tj|j��ddd��n#1swxYwY|�t|j��|�d��t|d��5}|�	|�
��d��|�tj|j��ddd��n#1swxYwY|�t��5|���ddd��dS#1swxYwYdS)NrNr%r&r'rr r()rr
rOr[�io�UnsupportedOperationr�r]r�rdrb)r+�biorRs   r�testOpenFileWithoutNamez#BZ2FileTest.testOpenFileWithoutNameqs����i�i��
�S�$�
�
�	A�1�
�G�G�J�������b�5�q�x�@�@�@�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A�	
���*�a�h�/�/�/�
�S�$�
�
�	A�1�
�G�G�K� � � ����b�5�q�x�@�@�@�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A�	
���*�a�h�/�/�/��������
�S�$�
�
�	A�1����Q�V�V�X�X�'9�:�:�:����b�5�q�x�@�@�@�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A��
�
�z�
*�
*�	�	�
�H�H�J�J�J�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	sH�;A&�&A*�-A*�!;C(�(C,�/C,�8AF�F�F�7G�G� Gc�4�tj|jtjtjztjz��}t|d��5}t
|d��5}|�d��|�|�	��|�	����ddd��n#1swxYwY|�
t|j	��ddd��n#1swxYwYtj|jtjtjztjz��}t|d��5}t
|d��5}|�d��|�|�	��|�	����ddd��n#1swxYwY|�
t|j	��ddd��n#1swxYwYtj|jtj
��}t|d��5}t
|d��5}|�|���d��|�|�	��|�	����ddd��n#1swxYwY|�
t��5|�	��ddd��n#1swxYwYddd��dS#1swxYwYdS)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�T�]�B�K�"�*�$<�r�z�$I�
J�
J��
�"�d�^�^�	4�s���d�#�#�
;�q����
�#�#�#�� � ������S�Z�Z�\�\�:�:�:�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;����
;�
;�
;�
;�
���j�!�(�3�3�3�		4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4��W�T�]�B�K�"�*�$<�r�{�$J�
K�
K��
�"�d�^�^�	4�s���d�#�#�
;�q�����$�$�$�� � ������S�Z�Z�\�\�:�:�:�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;����
;�
;�
;�
;�
���j�!�(�3�3�3�		4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4��W�T�]�B�K�
0�
0��
�"�d�^�^�	�s���d�#�#�
;�q�� � ������+=�>�>�>�� � ������S�Z�Z�\�\�:�:�:�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;����
;�
;�
;�
;��"�"�:�.�.�
�
����
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�		�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s��C3� AB<�0C3�<C	�C3�C	�#C3�3C7�:C7�G0�AF9�-G0�9F=	�=G0�F=	�#G0�0G4�7G4�/L
�A#J/�#L
�/J3	�3L
�6J3	�7L
�K5�)L
�5K9	�9L
�<K9	�=L
�
L�Lc��|j}tj|��}t|d��5}|�|j��ddd��n#1swxYwYt|d��5}|�|���|j��ddd��n#1swxYwYt|d��5}|�|���|j��ddd��dS#1swxYwYdS�NrNr )r(r)�fsencoder
rOr8rdrb)r+�str_filename�bytes_filenamerRs    r�testOpenBytesFilenamez!BZ2FileTest.testOpenBytesFilename�s����}����\�2�2��
�^�T�
*�
*�	�a�
�G�G�D�I����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�^�T�
*�
*�	2�a����Q�V�V�X�X�t�y�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2��\�4�
(�
(�	2�A����Q�V�V�X�X�t�y�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2�	2�	2s5�A�A�A�..B(�(B,�/B,�.C>�>D�Dc�^�t|j��}t|d��5}|�|j��ddd��n#1swxYwYt|d��5}|�|���|j��ddd��dS#1swxYwYdSr>)rr(r
rOr8rdrb)r+r(rRs   r�testOpenPathLikeFilenamez$BZ2FileTest.testOpenPathLikeFilename�s���D�M�*�*��
�X�t�
$�
$�	��
�G�G�D�I����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�X�t�
$�
$�	2�����Q�V�V�X�X�t�y�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2�	2�	2s#�A�A�A�'.B"�"B&�)B&c��t�dtd��zd���}|�t	|��t
j��tt|����}|�	|�
d��d��dtz}|�|j
j���|d��dS)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�H�,�A�|�>�>������D�	�	�<�#;�<�<�<������'�'��������Q����/�/�/��,�,�
����V�^�/�4�4�6�6�
�7�	9�	9�	9�	9�	9rc��t|j��5}t|��5}|�t|jt
����|�|���|j��ddd��n#1swxYwY|�	|j
��ddd��dS#1swxYwYdSr%)rr8r
r[r\rbrcrdr7r�r,�r+r4rfs   r�testReadBytesIOzBZ2FileTest.testReadBytesIO�s'��
�T�Y�
�
�	)�3�����
9���!�!�)�T�Y����@�@�@�� � ������d�i�8�8�8�
9�
9�
9�
9�
9�
9�
9�
9�
9�
9�
9����
9�
9�
9�
9�
���S�Z�(�(�(�		)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)s5�B>�AB�B>�B	�B>�B	�B>�>C�Cc���t|j��5}t|��5}|���}|�t|��d��|�|j�|����|�	|�
��|j��ddd��n#1swxYwYddd��dS#1swxYwYdSr�)rr8r
r�r�rtr�r7r�rdrb)r+r4rfr�s    r�testPeekBytesIOzBZ2FileTest.testPeekBytesIO�s<��
�T�Y�
�
�	9�3�����
9���	�	�����#�#�C��J�J��2�2�2�����	� 4� 4�U� ;� ;�<�<�<�� � ������d�i�8�8�8�	
9�
9�
9�
9�
9�
9�
9�
9�
9�
9�
9����
9�
9�
9�
9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�	9�	9s5�C�BC�7C�C	�C�
C	�C�C�"Cc��t��5}t|d��5}|�t|j��|�|j��ddd��n#1swxYwY|�t|�����|j��|�	|j
��ddd��dS#1swxYwYdSr�)rr
r[r\rOr7rdr�getvaluer�r,rPs   r�testWriteBytesIOzBZ2FileTest.testWriteBytesIO�s;��
�Y�Y�	)�#���c�"�"�
&�d��!�!�)�T�Z�8�8�8��
�
�4�9�%�%�%�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&����
&�
&�
&�
&�
���^�C�L�L�N�N�;�;�T�Y�G�G�G����S�Z�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)s5�C�;A'�C�'A+	�+C�.A+	�/AC�C�Cc��t|j��5}t|��5}|�t|j��|�d��|�|���|jdd���ddd��n#1swxYwYddd��dS#1swxYwYdSr�)	rr8r
r[r\r�rdrbr7rPs   r�testSeekForwardBytesIOz"BZ2FileTest.testSeekForwardBytesIO�s ��
�T�Y�
�
�	?�3�����
?���!�!�)�T�Y�7�7�7��	�	�#����� � ������d�i����o�>�>�>�
?�
?�
?�
?�
?�
?�
?�
?�
?�
?�
?����
?�
?�
?�
?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?����	?�	?�	?�	?�	?�	?s5�B4�A+B�B4�B 	� B4�#B 	�$B4�4B8�;B8c�n�t|j��5}t|��5}|�d��|�dd��|�|���|jdd���ddd��n#1swxYwYddd��dS#1swxYwYdSr�)rr8r
rbr�rdr7rPs   r�testSeekBackwardsBytesIOz$BZ2FileTest.testSeekBackwardsBytesIO�s@��
�T�Y�
�
�	C�3�����
C���	�	�#�����	�	�$��"�"�"�� � ������d�i����.A�B�B�B�
C�
C�
C�
C�
C�
C�
C�
C�
C�
C�
C����
C�
C�
C�
C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C����	C�	C�	C�	C�	C�	Cs5�B*�A!B�B*�B	�B*�B	�B*�*B.�1B.c���|jdd�}tt|����5}|�t|j��ddd��n#1swxYwYtt|����5}|�|�t|j����|j��|�t|jd��ddd��n#1swxYwYtd��D]_}tt|d|�����5}|�t|jd��ddd��n#1swxYwY�`dS)N���r!�)
r8r
rr[�EOFErrorrbrdrtr7r�)r+�	truncatedrRr�s    r�test_read_truncatedzBZ2FileTest.test_read_truncated�s����I�d�s�d�O�	�
�W�Y�'�'�
(�
(�	0�A����h���/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�
�W�Y�'�'�
(�
(�	3�A����Q�V�V�C��	�N�N�3�3�T�Y�?�?�?����h����2�2�2�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3��r���	7�	7�A����2�A�2��/�/�0�0�
7�A��!�!�(�A�F�A�6�6�6�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7����
7�
7�
7�
7��	7�	7s6�!A�A� A�A"C.�.C2�5C2�."E�E 	�#E 	c�n�tjdgd���}t|��|jz}tt	��d��5}|�|�|��|��|�|���|��ddd��dS#1swxYwYdS)N�Q)r!r�rZ�rnr�)�arrayrt�itemsizer
rrdrOr�)r+�q�LENGTHrRs    r�test_issue44439zBZ2FileTest.test_issue44439�s����K��_�_�_�-�-���Q���!�*�$��
�W�Y�Y��
$�
$�	/�����Q�W�W�Q�Z�Z��0�0�0����Q�V�V�X�X�v�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/s�AB*�*B.�1B.N)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_threadingrrr"r-r0r5r<rBrDrNrQrSrVrXrZr`rhrJrrrLrLZs$������������
	B�	B�	B�5�5�5�2�2�2�
9�9�9�3�3�3�5�5�5�
9�9�9�
0�0�0�	.�	.�	.�	2�	2�	2�>�>�>�
5�5�5�
4�
4�
4�8�8�8�8�8�8�@�@�@�D�D�D�@�@�@�
D�D�D�
6�6�6�B�B�B�
B�
B�
B�1�1�1�B�B�B�@�@�@�F�F�F�;�;�;�;�;�;�?�?�?�K�K�K�J�J�J�C�C�C�/�/�/�/�/�/�/�/�/�/�/�/�5�5�5�9�9�9�3�3�3�5�5�5�45�5�5�"5�5�5�"���=�=�=�
,�
,�
,�7�7�7�*1��0�2�2�
�
�3�2�
�3�3�3�"	9�	9�	9�'2�'2�'2�R*6�*6�*6�X���&���.	2�	2�	2�2�2�2�	9�	9�	9�)�)�)�9�9�9�)�)�)�?�?�?�C�C�C�7�7�7�/�/�/�/�/rrLc�r�eZdZd�Zd�Zd�Zejee	dzd���d�����Z
d�Zd	S)
�BZ2CompressorTestc��t��}|�t|j��|�|j��}||���z
}|�t|��|j��dSr%)rr[r\rHr7�flushrdr�r+�bz2crs   r�testCompresszBZ2CompressorTest.testCompress�sn���������)�T�]�3�3�3��}�}�T�Y�'�'����
�
����������-�-�t�y�9�9�9�9�9rc��t��}|�d��}||���z
}|�||j��dS�Nr)rrHrmrdr9rns   r�testCompressEmptyStringz)BZ2CompressorTest.testCompressEmptyString�sL�������}�}�S�!�!����
�
���������t��/�/�/�/�/rc��t��}d}d}	|j|dz|dzdz�}|sn||�|��z
}|dz
}�9||���z
}|�t|��|j��dS)NrrTrXr!)rr7rHrmrdr)r+ror�rr�s     r�testCompressChunks10z&BZ2CompressorTest.testCompressChunks10s�������
����	��)�A�b�D�!�A�#�r��M�*�C��
���D�M�M�#�&�&�&�D�
��F�A�	�	
��
�
����������-�-�t�y�9�9�9�9�9rr�r���size�memusec��t��}d|z}	|�|��}||���z
}d}n#d}wxYwt�|��}	|�t
|��|��|�t
|�d����d��d}dS#d}wxYw)N�xr)rrHrmrrrdrt�strip)r+rwror�
compresseds     r�testCompress4Gz BZ2CompressorTest.testCompress4Gs��������d�{��	����t�,�,�J��$�*�*�,�,�&�J��D�D��4�D�K�K�K�K��~�~�j�)�)��	����S��Y�Y��-�-�-����S����D�!1�!1�2�2�A�6�6�6��D�D�D��4�D�K�K�K�Ks�,A�A�&AC�Cc���ttjdz��D]U}|�t��5tjt
��|��ddd��n#1swxYwY�VdS�Nr!)r��pickle�HIGHEST_PROTOCOLr[r\�dumpsr�r+�protos  r�
testPicklezBZ2CompressorTest.testPickle#s����6�2�Q�6�7�7�	5�	5�E��"�"�9�-�-�
5�
5���]�_�_�e�4�4�4�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5����
5�
5�
5�
5��	5�	5��"A'�'A+	�.A+	N)r1r2r3rprsrur�skip_if_pgo_taskrrr}r�rJrrrkrk�s�������:�:�:�0�0�0�:�:�:�
���Z�S�3�Y�q�)�)�)���*�)���� 5�5�5�5�5rrkc��eZdZd�Zd�Zd�Zd�Zd�Zej	e
edzd���d	�����Zd
�Z
d�Zd�Zd
�Zd�Zd�Zejd���ZdS)�BZ2DecompressorTestc�H�|�ttd��dS)N�*)r[r\rr/s r�test_Constructorz$BZ2DecompressorTest.test_Constructor*s �����)�_�b�9�9�9�9�9rc���t��}|�t|j��|�|j��}|�||j��dSr%)rr[r\rr8rdr7�r+�bz2dr�s   r�testDecompressz"BZ2DecompressorTest.testDecompress-sV��� � �����)�T�_�5�5�5����t�y�)�)������t�y�)�)�)�)�)rc���t��}d}d}	|j|dz|dzdz�}|sn||�|��z
}|dz
}�9|�||j��dS)NrrTrXr!)rr8rrdr7)r+r�r�r�r�s     r�testDecompressChunks10z*BZ2DecompressorTest.testDecompressChunks103s���� � ����
��	��)�A�b�D�!�A�#�r��M�*�C��
���D�O�O�C�(�(�(�D�
��F�A�	�	
����t�y�)�)�)�)�)rc���t��}d}|�|j|z��}|�||j��|�|j|��dS)Nsthis is unused data)rrr8rdr7�unused_data)r+r�r�r�s    r�testDecompressUnusedDataz,BZ2DecompressorTest.testDecompressUnusedData?sa��� � ��,�����t�y��4�5�5������t�y�)�)�)�����)�;�7�7�7�7�7rc���t��}|�|j��}|�t|jd��|�t|jd��dS)Nsanythingr)rrr8r[r^r�s   r�testEOFErrorz BZ2DecompressorTest.testEOFErrorFsZ��� � �����t�y�)�)�����(�D�O�[�A�A�A����(�D�O�S�9�9�9�9�9rr�gffffff
@rvc�:�td|��}tj|��}	||dz
|zdzz}t�|��}t��}|�|��}|�||k��d}d}d}dS#d}d}d}wxYw)Ni�r!)�min�random�	randbytesrrHrrr�)r+rw�	blocksize�blockrr|r��decompresseds        r�testDecompress4Gz$BZ2DecompressorTest.testDecompress4GLs����(�$�/�/�	�� ��+�+��		 ��T�!�V�	�1�A�5�6�D����d�+�+�J�"�$�$�D��?�?�:�6�6�L��O�O�L�D�0�1�1�1��D��J��L�L�L���D��J��L����s�A$B�Bc���ttjdz��D]U}|�t��5tjt
��|��ddd��n#1swxYwY�VdSr)r�r�r�r[r\r�rr�s  rr�zBZ2DecompressorTest.testPickle]s����6�2�Q�6�7�7�	7�	7�E��"�"�9�-�-�
7�
7���_�.�.��6�6�6�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7����
7�
7�
7�
7��	7�	7r�c�>�t��}d}g}t|j��dz
}|�|�|jd|�|�����|�|j��|�t|d��|��|�|�d|�����|�|j��|�t|d��|��|�|�|j|d�|�����|�t|d��|��|j	sZ|�|�d|�����|�t|d��|��|j	�Zd�
|��}|�||j��|�|jd��dS)Nr��@��
max_length���r)
rrtrI�appendrr��needs_inputrdrI�eofr6r=r�)r+�bzdr��out�len_s     r�testDecompressorChunksMaxsizez1BZ2DecompressorTest.testDecompressorChunksMaxsizebs��������
����4�=�!�!�B�&���
�
�3�>�>�$�-����"6�-7�"�9�9�	:�	:�	:������)�)�)�����S��W���z�2�2�2�	�
�
�3�>�>�#�*�>�=�=�>�>�>������)�)�)�����S��W���z�2�2�2�	�
�
�3�>�>�$�-����"6�-7�"�9�9�	:�	:�	:����S��R��\�\�:�6�6�6��'�	;��J�J�s�~�~�c�j�~�A�A�B�B�B�� � ��S��W���z�:�:�:��'�	;��h�h�s�m�m������d�m�,�,�,������#�.�.�.�.�.rc��t��}g}|�|�|jdd�d���d��|�|�dd����|�|�|jdd�d����|�|�|jdd�����|�d�|��|j��dS)Nr�rr�rr��i��rrdrr8r�r6r7�r+r�r�s   r�test_decompressor_inputbuf_1z0BZ2DecompressorTest.test_decompressor_inputbuf_1�s���������	
�������	�$�3�$��34�(�6�6�7:�	<�	<�	<�
	�
�
�3�>�>�#�q�)�)�*�*�*�	�
�
�3�>�>�$�)�C��G�"4�b�9�9�:�:�:�	�
�
�3�>�>�$�)�C�D�D�/�2�2�3�3�3�������#����	�2�2�2�2�2rc��t��}g}|�|�|jdd�d���d��|�|�d����|�|�|jdd�d����|�|�|jdd�d����|�|�|jdd�����|�d�|��|j��dS)N��rr�rir��,r�r�s   r�test_decompressor_inputbuf_2z0BZ2DecompressorTest.test_decompressor_inputbuf_2�s��������	
�������	�$�3�$��34�(�6�6�7:�	<�	<�	<��
�
�3�>�>�#�&�&�'�'�'�	�
�
�3�>�>�$�)�C��G�"4�a�8�8�9�9�9�	�
�
�3�>�>�$�)�C��G�"4�a�8�8�9�9�9�	�
�
�3�>�>�$�)�C�D�D�/�2�2�3�3�3�������#����	�2�2�2�2�2rc���t��}g}|�|�|jdd�d����|�|�|jdd�d����|�|�|jdd�����|�d�|��|j��dS)Nr�rnr�r)rr�rr8rdr6r7r�s   r�test_decompressor_inputbuf_3z0BZ2DecompressorTest.test_decompressor_inputbuf_3�s���������	�
�
�3�>�>�$�)�D�S�D�/�1�5�5�6�6�6�	�
�
�3�>�>�$�)�C��G�"4�a�8�8�9�9�9�	�
�
�3�>�>�$�)�C�D�D�/�2�2�3�3�3�������#����	�2�2�2�2�2rc���t��}|�t|j|jdz��|�t|j|jdz��dS)N�)rr[�	Exceptionrr:)r+r�s  r�test_failurez BZ2DecompressorTest.test_failure�sU���������)�S�^�T�]�R�5G�H�H�H����)�S�^�T�]�R�5G�H�H�H�H�Hrc��tjtd��}t��}|��}t	d��D]}|����|�|��|z
dd���dS)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��6H�I�I������&�&�(�(���s���	�	�A��L�L�N�N�N�N����/�/�1�1�K�?��"��M�M�M�M�MrN)r1r2r3r�r�r�r�r�rr�rrr�r�r�r�r�r�r��
refcount_testr�rJrrr�r�)s������:�:�:�*�*�*�
*�
*�
*�8�8�8�:�:�:�
���Z�S�3�Y�s�+�+�+�
 �
 �,�+���
 �7�7�7�
/�/�/�>3�3�3�,3�3�3�*3�3�3� I�I�I�
��N�N���N�N�Nrr�c�J�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZdS)�CompressDecompressTestc��t�|j��}|�t	|��|j��dSr%)rrHr7rdr)r+rs  rrpz#CompressDecompressTest.testCompress�s;���|�|�D�I�&�&�������-�-�t�y�9�9�9�9�9rc�p�t�d��}|�||j��dSrr)rrHrdr9�r+r�s  rrsz.CompressDecompressTest.testCompressEmptyString�s1���|�|�C� � ������t��/�/�/�/�/rc�z�t�|j��}|�||j��dSr%�rrr8rdr7r�s  rr�z%CompressDecompressTest.testDecompress�s3���~�~�d�i�(�(������t�y�)�)�)�)�)rc�f�t�d��}|�|d��dSrr)rrrdr�s  r�testDecompressEmptyz*CompressDecompressTest.testDecompressEmpty�s/���~�~�c�"�"������s�#�#�#�#�#rc�p�t�|j��}|�|d��dSrr)rrr9rdr�s  r�testDecompressToEmptyStringz2CompressDecompressTest.testDecompressToEmptyString�s1���~�~�d�o�.�.������s�#�#�#�#�#rc�l�|�ttj|jdd���dS)Nr\)r[r]rrr8r/s r�testDecompressIncompletez/CompressDecompressTest.testDecompressIncomplete�s,�����*�c�n�d�i����o�F�F�F�F�Frc�\�|�ttj|j��dSr%)r[rjrrr:r/s r�testDecompressBadDataz,CompressDecompressTest.testDecompressBadData�s$�����'�3�>�4�=�A�A�A�A�Arc��t�|jdz��}|�||jdz��dSrr�r�s  r�testDecompressMultiStreamz0CompressDecompressTest.testDecompressMultiStream�s;���~�~�d�i�!�m�,�,������t�y�1�}�-�-�-�-�-rc��t�|j|jz��}|�||j��dSr%�rrr8r:rdr7r�s  r�testDecompressTrailingJunkz1CompressDecompressTest.testDecompressTrailingJunk�s:���~�~�d�i�$�-�7�8�8������t�y�)�)�)�)�)rc��t�|jdz|jz��}|�||jdz��dSrr�r�s  r�%testDecompressMultiStreamTrailingJunkz<CompressDecompressTest.testDecompressMultiStreamTrailingJunk�sB���~�~�d�i�!�m�d�m�;�<�<������t�y�1�}�-�-�-�-�-rN)
r1r2r3rprsr�r�r�r�r�r�r�r�rJrrr�r��s�������:�:�:�0�0�0�*�*�*�$�$�$�$�$�$�G�G�G�B�B�B�.�.�.�*�*�*�.�.�.�.�.rr�c�N�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�OpenTestzTest the open function.c�$�tj|i|��Sr%)rrD)r+�args�kwargss   rrDz
OpenTest.open�s���x��(��(�(�(rc���dD�]�}|dkrt|j��|�|j|��5}|�|j��ddd��n#1swxYwYt|jd��5}t|�����}|�||j��ddd��n#1swxYwY|�|jd��5}|�|���|j��ddd��n#1swxYwY|�|jd��5}|�|j��ddd��n#1swxYwYt|jd��5}t|�����}|�||jdz��ddd��n#1swxYwY���dS)N)rN�xbr�r r&r��r
r(rDrOr7rrbrd�r+�moderR�	file_datas    r�test_binary_modeszOpenTest.test_binary_modes�s��� �	;�	;�D��t�|�|��t�}�%�%�%����4�=�$�/�/�
#�1�����	�"�"�"�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#����
#�
#�
#�
#��d�m�T�*�*�
7�a�*�1�6�6�8�8�4�4�	�� � ��D�I�6�6�6�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7����
7�
7�
7�
7����4�=�$�/�/�
6�1�� � ������4�9�5�5�5�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6����
6�
6�
6�
6����4�=�$�/�/�
#�1�����	�"�"�"�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#����
#�
#�
#�
#��d�m�T�*�*�
;�a�*�1�6�6�8�8�4�4�	�� � ��D�I��M�:�:�:�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;����
;�
;�
;�
;��	;�	;�Z�A"�"A&	�)A&	�=C�C	�C	�1.D+�+D/	�2D/	�E8�8E<	�?E<	�AG$�$G(	�+G(	c���dD�]�}|dkrt|j��|�|j|��5}|�|j��ddd��n#1swxYwYt|jd��5}t|�����}|�||j��ddd��n#1swxYwY|�|jd��5}|�|���|j��ddd��n#1swxYwY|�|jd��5}|�|j��ddd��n#1swxYwYt|jd��5}t|�����}|�||jdz��ddd��n#1swxYwY���dS)N)r��xr�r rYr�r�r�r�s    r�test_implicit_binary_modesz#OpenTest.test_implicit_binary_modess����	;�	;�D��s�{�{��t�}�%�%�%����4�=�$�/�/�
#�1�����	�"�"�"�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#����
#�
#�
#�
#��d�m�T�*�*�
7�a�*�1�6�6�8�8�4�4�	�� � ��D�I�6�6�6�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7����
7�
7�
7�
7����4�=�#�.�.�
6�!�� � ������4�9�5�5�5�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6����
6�
6�
6�
6����4�=�#�.�.�
#�!�����	�"�"�"�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#����
#�
#�
#�
#��d�m�T�*�*�
;�a�*�1�6�6�8�8�4�4�	�� � ��D�I��M�:�:�:�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;����
;�
;�
;�
;��	;�	;r�c��|j�d��}|�dtj��}dD�]�}|dkrt|j��|�|j|d���5}|�|��ddd��n#1swxYwYt|jd��5}t|�
�����d��}|�||��ddd��n#1swxYwY|�|jdd���5}|�|�
��|��ddd��n#1swxYwY|�|jdd���5}|�|��ddd��n#1swxYwYt|jd��5}t|�
�����d��}|�||d	z��ddd��n#1swxYwY��dS)
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_modess4���y����(�(���,�,�t�R�Z�8�8�� �	A�	A�D��t�|�|��t�}�%�%�%����4�=�$���A�A�
�Q�����
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
��d�m�T�*�*�
=�a�*�1�6�6�8�8�4�4�;�;�G�D�D�	�� � ��O�<�<�<�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=����
=�
=�
=�
=����4�=�$���A�A�
1�Q�� � ������4�0�0�0�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1����
1�
1�
1�
1����4�=�$���A�A�
�Q�����
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
��d�m�T�*�*�
A�a�*�1�6�6�8�8�4�4�;�;�G�D�D�	�� � ��O�a�,?�@�@�@�
A�
A�
A�
A�
A�
A�
A�
A�
A�
A�
A����
A�
A�
A�
A��	A�	As\�7B�B	� B	�9AD�D	�D	�8)E-�-E1	�4E1	�F7�7F;	�>F;	�AH1�1H5	�8H5	c��dD]�}t|j��d|vrdnd}|�|j||���5}	ddd��n#1swxYwY|�t��5|�|j|��5}	ddd��n#1swxYwYddd��n#1swxYwY��dS)N)r�r�r��t�utf-8r�)r
r(rDr[�FileExistsError)r+r�r�rRs    r�test_x_modezOpenTest.test_x_mode0s���%�	�	�D��4�=�!�!�!�"%��+�+�w�w�4�H����4�=�$���B�B�
�a��
�
�
�
�
�
�
�
�
�
�
����
�
�
�
��"�"�?�3�3�
�
��Y�Y�t�}�d�3�3��q��������������������
�
�
�
�
�
�
�
�
�
�
����
�
�
�
��	�	sG�A�A	�A	�1B2�
B�B2�B�B2�"B�#B2�2B6	�9B6	c���|�t|j��d��5}|�|���|j��ddd��n#1swxYwY|�t|j��d��5}|�|���|j��ddd��n#1swxYwY|j�d��}|�t|j��dd���5}|�|���|��ddd��dS#1swxYwYdS)NrYr r�r�r�r�)rDrr8rdrbr7r�)r+rRr�s   r�test_fileobjzOpenTest.test_fileobj:s���
�Y�Y�w�t�y�)�)�3�
/�
/�	2�1����Q�V�V�X�X�t�y�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2�
�Y�Y�w�t�y�)�)�4�
0�
0�	2�A����Q�V�V�X�X�t�y�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2��y����(�(��
�Y�Y�w�t�y�)�)�4�'�Y�
B�
B�	-�a����Q�V�V�X�X�t�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s5�.A#�#A'�*A'�.C�C�C�)E�E�Ec��|�t|j|jd��|�t|j|jd��|�t|j|jdd���|�t|j|jdd���|�t|j|jdd�	��dS)
N�wbt�xbtr r�r��ignore)�errorsr�)�newline)r[r]rDr(r/s r�test_bad_paramszOpenTest.test_bad_paramsCs������*��)�T�]�E�	;�	;�	;����*��)�T�]�E�	;�	;�	;����*��)�T�]�D�7�	�	L�	L�	L����*��)�T�]�D��	�	K�	K�	K����*��)�T�]�D�$�	�	H�	H�	H�	H�	Hrc��|j�d��}|�dtj��}|�|jdd���5}|�|��ddd��n#1swxYwYt|jd��5}t|�	�����d��}|�
||��ddd��n#1swxYwY|�|jdd���5}|�
|�	��|��ddd��dS#1swxYwYdS)Nr�r�r�z	utf-16-ler�r r�)r7r�r�r)r�rDr(rOrrbrd)r+r�r�rRr�s     r�
test_encodingzOpenTest.test_encodingPs����y����(�(���,�,�t�R�Z�8�8��
�Y�Y�t�}�d�[�Y�
A�
A�	�Q�
�G�G�D�M�M�M�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�$�-��
&�
&�	9�!�&�q�v�v�x�x�0�0�7�7��D�D�I����Y��8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9��Y�Y�t�}�d�[�Y�
A�
A�	-�Q����Q�V�V�X�X�t�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s7�A:�:A>�A>�AC1�1C5�8C5�)E�E�Ec�T�|�|jd��5}|�d��ddd��n#1swxYwY|�|jddd���5}|�|���d��ddd��dS#1swxYwYdS)NrNsfoo�barr�r�r)r�r�foobar)rDr(rOrdrbr	s  r�test_encoding_error_handlerz$OpenTest.test_encoding_error_handler\s��
�Y�Y�t�}�d�
+�
+�	#�q�
�G�G�M�"�"�"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�
�Y�Y�t�}�d�W�X�Y�
N�
N�	1�����Q�V�V�X�X�x�0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�	1�	1s!�>�A�A�')B�B!�$B!c��|j�d��}|�|jddd���5}|�|��ddd��n#1swxYwY|�|jddd���5}|�|���|g��ddd��dS#1swxYwYdS)Nr�r�r�r�)r�rr��
)r7r�rDr(rOrdr�)r+r�rRs   r�test_newlinezOpenTest.test_newlineds1���y����(�(��
�Y�Y�t�}�d�W�d�Y�
K�
K�	�q�
�G�G�D�M�M�M�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�Y�Y�t�}�d�W�d�Y�
K�
K�	4�q����Q�[�[�]�]�T�F�3�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�	4�	4s#�A�A�"A�*B;�;B?�B?N)r1r2r3r4rDr�r�r�r�rrr
r
rrJrrr�r��s���������)�)�)�;�;�;�";�;�;�$A�A�A�&���-�-�-�H�H�H�
-�
-�
-�1�1�1�4�4�4�4�4rr�c�,�tj��dSr%)r�
reap_childrenrJrr�tearDownModulerms��������r�__main__)*�testr�test.supportrrrd�unittestr2rrr)r�r>r&r�rrrrr	�test.support.os_helperr
rrrr��
import_modulerr
rrrr�TestCaserrLrkr�r�r�rr1�mainrJrr�<module>rs���������(�(�(�(�(�(�(�(���������	�	�	�	�+�+�+�+�+�+�+�+�	�	�	�	�
�
�
�
���������
�
�
�
�
�
�
�
���������&�&�&�&�&�&�)�)�)�)�)�)�3�3�3�3�3�3�3�3�����
�
�
�
�"�m�!�%�(�(��7�7�7�7�7�7�7�7�7�7���$�$�$�1�1�1�1�1�x� �1�1�1�hY
/�Y
/�Y
/�Y
/�Y
/�(�Y
/�Y
/�Y
/�x05�05�05�05�05��05�05�05�f`N�`N�`N�`N�`N�(�`N�`N�`N�F%.�%.�%.�%.�%.�X�%.�%.�%.�Pv4�v4�v4�v4�v4�x�v4�v4�v4�r����z����H�M�O�O�O�O�O��r

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