
    5\h                        d dl mZ d dlmZmZ d dlZd dlZd dlZd dlmZm	Z	 d dl
Z
d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dlmZ d dlmZmZ d dlZd dlZ ej        d          Zd d	lmZmZmZ dad
 Z G d dej                   Z! G d de!          Z" G d de!          Z# G d de!          Z$ G d de!          Z% G d de!          Z&d Z'e(dk    r ej)                     dS dS )    )support)
bigmemtest_4GN)BytesIODEFAULT_BUFFER_SIZE)import_helper)threading_helper)unlinkFakePathbz2)BZ2FileBZ2CompressorBZ2Decompressorc                     t           !t          t          j        d                    a t           rt	          j        dg|           S t                              |           S )Nbunzip2)input)has_cmdline_bunzip2boolshutilwhich
subprocesscheck_outputr   
decompress)datas    7/opt/python-3.11.14/usr/lib/python3.11/test/test_bz2.pyext_decompressr      sR    ""6<	#:#:;; $&	{$????~~d###    c            	          e Zd ZdZg dZd                    e          ZdZdZdZ	dZ
 ed          Z ej        ej                             ej        ej                            e                    d	                    D ]WZ eed
          5 Ze
e                     ee          e
d                   z  Z
ddd           n# 1 swxY w Y   e
dk    r nXe                    ed          Zd Zd ZdS )BaseTestzBase for other testcases.)s    root:x:0:0:root:/root:/bin/bash
s   bin:x:1:1:bin:/bin:
s   daemon:x:2:2:daemon:/sbin:
s   adm:x:3:4:adm:/var/adm:
s   lp: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
s6   mysql:x:102:103:MySQL server:/var/lib/mysql:/bin/bash
s#   www:x:103:104::/var/www:/bin/false
r   s  BZh91AY&SY.N >_ @n ?0 F#&FЦMQ4hh$i44S<QHՇI/E pu]ɻDL
Q	1ߠ2O97dIJL#/#CWMXa<etL˄.`n}lh	E,ZVH>9gd6
Պ.Kvxwߡ|/";ձ#Aoy\O煚f82"%>V,z⟣"E)I^rU26U0^DFݸankR3]f"6l$j@l1..klsEknQ%yvz̹zn7.G]B@!8`s   BZh9rE8P    s   this is not a valid bzip2 filer   i   z*.pyrbN   compresslevelc                 d    t          j                    \  }| _        t          j        |           d S N)tempfilemkstempfilenameosclose)selffds     r   setUpzBaseTest.setUpR   s(    $,..DM
r   c                 .    t          | j                   d S r%   )r
   r(   r+   s    r   tearDownzBaseTest.tearDownV   s    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    r   r   r   r   &   s       
 
 
J. 88JD ^D4J0H Iy""H27<<BGOOH4M4M(N(NPVWWXX  T% 	G"ZZ%9%9)**%EFFFI	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	GxE  ||HA|66H      s   *CC
	C
	r   c                      e Zd ZdZdEd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 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$ 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 Z2 e3j4                    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BZ2FileTestzTest the BZ2File class.r!   r   c                     t          | j        d          5 }|                    | j        |z             |                    |           d d d            d S # 1 swxY w Y   d S )Nwb)rD   r(   writer8   )r+   streamssuffixfs       r   createTempFilezBZ2FileTest.createTempFile]   s    $-&& 	!GGDI'(((GGFOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   3AAAc                 ^   |                      t          t          d           |                      t          t          t          j        d           |                      t          t          t          j        d           |                      t          t          t          j        d           |                      t          t          t          j        d           |                      t          t          t          j        d           |                      t          t          t          j        dd	           d S )
Ngw/^@zrxrbtr   r"   
   r   )assertRaises	TypeErrorr   
ValueErrorr)   devnullr/   s    r   testBadArgszBZ2FileTest.testBadArgsb   s    )Wg666*grz3???*grz4@@@*grz5AAA*grzKKK*grzLLL 	)Wbj#qAAAAAr   c                 <   |                                   t          | j                  5 }|                     t          |j        t                                 |                     |                                | j                   d d d            d S # 1 swxY w Y   d S r%   	rS   r   r(   r[   r\   readfloatassertEqualr7   r+   bz2fs     r   testReadzBZ2FileTest.testReadm   s    T]## 	5tiEGG<<<TYY[[$)444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s   ABBBc                     |                      d| j                   t          | j                  5 }|                     t
          |j                   d d d            d S # 1 swxY w Y   d S )Nr   rP   rQ   )rS   r:   r   r(   r[   OSErrorrb   re   s     r   testReadBadFilezBZ2FileTest.testReadBadFiles   s    Adm<<<T]## 	2tgty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          |j        t                                 |                     |                                | j        dz             d d d            d S # 1 swxY w Y   d S N   rP   ra   re   s     r   testReadMultiStreamzBZ2FileTest.testReadMultiStreamx   s    A&&&T]## 	9tiEGG<<<TYY[[$)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           j        }t          | j                  t           _        	 |                     d           t          | j                  5 }|                     t          |j	        t                                 |                     |	                                | j        dz             d d d            n# 1 swxY w Y   |t           _        d S # |t           _        w xY wrm   )_compressionBUFFER_SIZElenr8   rS   r   r(   r[   r\   rb   rc   rd   r7   )r+   buffer_sizerf   s      r   testReadMonkeyMultiStreamz%BZ2FileTest.testReadMonkeyMultiStream~   s     #.#&ty>> 	3***'' =4!!)TY@@@  di!m<<<= = = = = = = = = = = = = = = (3L$$${L$2222s0   *C AC 4C  CC CC C'c                     |                      | j                   t          | j                  5 }|                     |                                | j                   d d d            d S # 1 swxY w Y   d S )N)rQ   rS   r:   r   r(   rd   rb   r7   re   s     r   testReadTrailingJunkz BZ2FileTest.testReadTrailingJunk   s    4=111T]## 	5tTYY[[$)444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s   .A++A/2A/c                     |                      d| j                   t          | j                  5 }|                     |                                | j        dz             d d d            d S # 1 swxY w Y   d S )Nrn   ri   rx   re   s     r   testReadMultiStreamTrailingJunkz+BZ2FileTest.testReadMultiStreamTrailingJunk   s    Adm<<<T]## 	9tTYY[[$)a-888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s   1A//A36A3c                 4   |                                   t          | j                  5 }|                     t          |j        t                                 |                     |                    d          d           d d d            d S # 1 swxY w Y   d S )Nr   r   )rS   r   r(   r[   r\   rb   rc   rd   re   s     r   	testRead0zBZ2FileTest.testRead0   s    T]## 	0tiEGG<<<TYYq\\3///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   ABBBc                     |                                   t          | j                  5 }d}	 |                    d          }|sn||z  }|                     || j                   d d d            d S # 1 swxY w Y   d S )Nr   TrX   rS   r   r(   rb   rd   r7   r+   rf   textstrs       r   testReadChunk10zBZ2FileTest.testReadChunk10   s    T]## 	.tDiimm 	
 T49---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   =A33A7:A7c                 
   |                      d           t          | j                  5 }d}	 |                    d          }|sn||z  }|                     || j        dz             d d d            d S # 1 swxY w Y   d S )Nrn   ro   r   TrX   r   r   s       r   testReadChunk10MultiStreamz&BZ2FileTest.testReadChunk10MultiStream   s    A&&&T]## 	2tDiimm 	
 T49q=111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   A A88A<?A<c                     |                                   t          | j                  5 }|                     |                    d          | j        d d                    d d d            d S # 1 swxY w Y   d S )Nd   )rS   r   r(   rd   rb   r7   re   s     r   testRead100zBZ2FileTest.testRead100   s    T]## 	>tTYYs^^TYtt_===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s   7A--A14A1c                    |                                   t          | j                  5 }|                                }|                     t          |          d           |                     | j                            |                     | 	                    |
                                | j                   d d d            d S # 1 swxY w Y   d S Nr   )rS   r   r(   peekassertNotEqualrt   
assertTruer7   
startswithrd   rb   )r+   rf   pdatas      r   testPeekzBZ2FileTest.testPeek   s    T]## 	5tIIKKEE

A...OODI0077888TYY[[$)444		5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s   BCCCc                 \   |                                   t          | j                  5 }d}t          |          }|                     |                    |          |           |                     || j        d |                    t          | j                  |z
  }t          t          | j                            }|                     |                    |          |           |                     |d |         | j        | d                     d d d            d S # 1 swxY w Y   d S )N   )rS   r   r(   r<   rd   rF   r7   rt   )r+   rf   nbs       r   testReadIntozBZ2FileTest.testReadInto   sJ   T]## 	4tA!AT]]1--q111Q	"1"...DI"A#di..))AT]]1--q111QrrUDIqbccN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          |j        d            | j        D ]*}|                     |                                |           +	 d d d            d S # 1 swxY w Y   d S r%   rS   r   r(   r[   r\   readliner5   rd   r+   rf   lines      r   testReadLinezBZ2FileTest.testReadLine   s    T]## 	8t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   ABBBc                 :   |                      d           t          | j                  5 }|                     t          |j        d            | j        dz  D ]*}|                     |                                |           +	 d d d            d S # 1 swxY w Y   d S rm   r   r   s      r   testReadLineMultiStreamz#BZ2FileTest.testReadLineMultiStream   s    A&&&T]## 	8t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   ABBBc                 $   |                                   t          | j                  5 }|                     t          |j        d            |                     |                                | j                   d d d            d S # 1 swxY w Y   d S r%   rS   r   r(   r[   r\   	readlinesrd   r5   re   s     r   testReadLineszBZ2FileTest.testReadLines   s    T]## 	@ti>>>T^^--t???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   ABB	B	c                 .   |                      d           t          | j                  5 }|                     t          |j        d            |                     |                                | j        dz             d d d            d S # 1 swxY w Y   d S rm   r   re   s     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 	Ds   AB

BBc                     |                                   t          | j                  5 }|                     t	          t          |                    | j                   d d d            d S # 1 swxY w Y   d S r%   rS   r   r(   rd   listiterr5   re   s     r   testIteratorzBZ2FileTest.testIterator   s    T]## 	@tT$t**--t???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   6A,,A03A0c                     |                      d           t          | j                  5 }|                     t	          t          |                    | j        dz             d d d            d S # 1 swxY w Y   d S rm   r   re   s     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 	Ds   9A11A58A5c                     |                                   t          | j                  }|                                 |                     t
          t          |           |                     t
          |j                   d S r%   )rS   r   r(   r*   r[   r]   nextr   re   s     r   testClosedIteratorDeadlockz&BZ2FileTest.testClosedIteratorDeadlock   sf    t}%%

*dD111*dn55555r   c                    t          | j        d          5 }|                     t          |j                   |                    | j                   d d d            n# 1 swxY w Y   t          | j        d          5 }|                     t          |	                                          | j                   d d d            d S # 1 swxY w Y   d S )Nwr    
r   r(   r[   r\   rO   r7   rD   rd   r   rb   r+   rf   rR   s      r   	testWritezBZ2FileTest.testWrite   sB   T]C(( 	"Di444JJty!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" $-&& 	B!^AFFHH55tyAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bs#   ;AA!$A!=;CC	C	c                    t          | j        d          5 }d}	 | j        |dz  |dz   dz           }|sn|                    |           |dz  }6	 d d d            n# 1 swxY w Y   t	          | j        d          5 }|                     t          |                                          | j                   d d d            d S # 1 swxY w Y   d S )Nr   r   TrX   r!   r    )r   r(   r7   rO   rD   rd   r   rb   )r+   rf   r   r   rR   s        r   testWriteChunks10zBZ2FileTest.testWriteChunks10   si   T]C(( 	DAi"ac2X. 

3Q 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 $-&& 	B!^AFFHH55tyAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bs#   :AA!$A!=;CC	C	c                    t                               | j        d          }t          | j        dd          5 }|                    | j                   d d d            n# 1 swxY w Y   t          | j        d          5 }|                     |                                |           d d d            d S # 1 swxY w Y   d S )Nrn   r"   r   r    )	r   rH   r7   r   r(   rO   rD   rd   rb   )r+   expectedrf   rR   s       r    testWriteNonDefaultCompressLevelz,BZ2FileTest.testWriteNonDefaultCompressLevel
  s'   <<	<;;T]Cq999 	"TJJty!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"$-&& 	1!QVVXXx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6B:=B:c                    t          | j        d          5 }|                     t          |j                   |                    | j                   d d d            n# 1 swxY w Y   |                     t          |j        dg           t          | j        d          5 }|                     t          |
                                          | j                   d d d            d S # 1 swxY w Y   d S )Nr   ar    )r   r(   r[   r\   
writelinesr5   r]   rD   rd   r   rb   r7   r   s      r   testWriteLineszBZ2FileTest.testWriteLines  s^   T]C(( 	-Di999OODO,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-
 	*dou===$-&& 	B!^AFFHH55tyAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bs#   ;AA!$A!;C''C+.C+c                 l   t          | j        d          5 }|                    d           d d d            n# 1 swxY w Y   t          | j        d          5 }|                     t          |j        d           |                     t          |j        dg           d d d            d S # 1 swxY w Y   d S )Nr   s   abcrY      a)r   r(   rO   r[   rj   r   re   s     r   testWriteMethodsOnReadOnlyFilez*BZ2FileTest.testWriteMethodsOnReadOnlyFile  s6   T]C(( 	DJJv	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 T]C(( 	@Dgtz4888gt???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   8<<AB))B-0B-c                 x   t          | j        d          5 }|                     t          |j                   |                    | j                   d d d            n# 1 swxY w Y   t          | j        d          5 }|                     t          |j                   |                    | j                   d d d            n# 1 swxY w Y   t          | j        d          5 }|                     t          |	                                          | j        dz             d d d            d S # 1 swxY w Y   d S )Nr   r   r       r   r   s      r   
testAppendzBZ2FileTest.testAppend#  s   T]C(( 	"Di444JJty!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" T]C(( 	"Di444JJty!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" $-&& 	F!^AFFHH55ty1}EEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	Fs5   ;AA!$A!=;CCC$>D//D36D3c                 \   |                                   t          | j                  5 }|                     t          |j                   |                    d           |                     |                                | j        dd                     d d d            d S # 1 swxY w Y   d S N   )	rS   r   r(   r[   r\   seekrd   rb   r7   re   s     r   testSeekForwardzBZ2FileTest.testSeekForward-  s    T]## 	;ti333IIcNNNTYY[[$)CDD/:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;   A+B!!B%(B%c                    |                      d           t          | j                  5 }|                     t          |j                   |                    t          | j                  dz              |                     |	                                | j        dd                     d d d            d S # 1 swxY w Y   d S )Nr   ro   r   )
rS   r   r(   r[   r\   r   rt   r7   rd   rb   re   s     r   testSeekForwardAcrossStreamsz(BZ2FileTest.testSeekForwardAcrossStreams4  s    A&&&T]## 	;ti333IIc$)nns*+++TYY[[$)CDD/:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s   B B88B<?B<c                 H   |                                   t          | j                  5 }|                    d           |                    dd           |                     |                                | j        dd                     d d d            d S # 1 swxY w Y   d S Ni  jr!   i^  )rS   r   r(   rb   r   rd   r7   re   s     r   testSeekBackwardszBZ2FileTest.testSeekBackwards;  s    T]## 	?tIIcNNNIIdATYY[[$)GHH*=>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?   A!BBBc                    |                      d           t          | j                  5 }t          | j                  dz   }|dk    r+|t          |                    |                    z  }|dk    +|                    dd           |                     |                                | j        dd          | j        z              d d d            d S # 1 swxY w Y   d S )Nr   ro   r   r   r   r!   i)rS   r   r(   rt   r7   rb   r   rd   )r+   rf   readtos      r   testSeekBackwardsAcrossStreamsz*BZ2FileTest.testSeekBackwardsAcrossStreamsB  s%   A&&&T]## 	Kt^^c)F1**#dii//000 1**IIdATYY[[$)GHH*=	*IJJJ	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	Ks   BCCCc                 H   |                                   t          | j                  5 }|                    dd           |                     |                                | j        t          | j                  dz
  d                     d d d            d S # 1 swxY w Y   d S )Nr   r   r   )rS   r   r(   r   rd   rb   r7   rt   re   s     r   testSeekBackwardsFromEndz$BZ2FileTest.testSeekBackwardsFromEndK  s    T]## 	JtIIdATYY[[$)C	NN34F4G4G*HIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	Jr   c                 (   |                      d           t          | j                  5 }|                    dd           |                     |                                | j        dz  dd                     d d d            d S # 1 swxY w Y   d S )Nr   ro   i)rS   r   r(   r   rd   rb   r7   re   s     r   %testSeekBackwardsFromEndAcrossStreamsz1BZ2FileTest.testSeekBackwardsFromEndAcrossStreamsQ  s    A&&&T]## 	CtIIeQTYY[[49q=%&&*ABBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Cs   ABBBc                 v   |                                   t          | j                  5 }|                    d           |                     |                                t          | j                             |                     |                                d           d d d            d S # 1 swxY w Y   d S NI r   	rS   r   r(   r   rd   tellrt   r7   rb   re   s     r   testSeekPostEndzBZ2FileTest.testSeekPostEndW  s    T]## 	/tIIfTYY[[#di..999TYY[[#...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   A8B..B25B2c                    |                      d           t          | j                  5 }|                    d           |                     |                                t          | j                  dz             |                     |                                d           d d d            d S # 1 swxY w Y   d S Nrn   ro   r   r   r   re   s     r   testSeekPostEndMultiStreamz&BZ2FileTest.testSeekPostEndMultiStream^  s    A&&&T]## 	/tIIfTYY[[#di..1*<===TYY[[#...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   A;B33B7:B7c                    |                                   t          | j                  5 }|                    d           |                    d           |                     |                                t          | j                             |                     |                                d           d d d            d S # 1 swxY w Y   d S r   r   re   s     r   testSeekPostEndTwicez BZ2FileTest.testSeekPostEndTwicee  s    T]## 	/tIIfIIfTYY[[#di..999TYY[[#...		/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   BCC
Cc                    |                      d           t          | j                  5 }|                    d           |                    d           |                     |                                t          | j                  dz             |                     |                                d           d d d            d S # 1 swxY w Y   d S r   r   re   s     r   testSeekPostEndTwiceMultiStreamz+BZ2FileTest.testSeekPostEndTwiceMultiStreamm  s    A&&&T]## 	/tIIfIIfTYY[[#di..1*<===TYY[[#...		/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   BCCCc                 \   |                                   t          | j                  5 }|                    d           |                     |                                d           |                     |                                | j                   d d d            d S # 1 swxY w Y   d S )Nr   r   rS   r   r(   r   rd   r   rb   r7   re   s     r   testSeekPreStartzBZ2FileTest.testSeekPreStartu  s    T]## 	5tIIdOOOTYY[[!,,,TYY[[$)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           |                     |                                | j        dz             d d d            d S # 1 swxY w Y   d S )Nr   ro   r   r   r   re   s     r   testSeekPreStartMultiStreamz'BZ2FileTest.testSeekPreStartMultiStream|  s    A&&&T]## 	9tIIdOOOTYY[[!,,,TYY[[$)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          | j        d          5 }t          |          }	 |                     |                                |                                           |                                 n# |                                 w xY w	 d d d            n# 1 swxY w Y   |                     t          |j                   d S )Nr    )	rS   rD   r(   r   rd   filenor*   r[   r]   )r+   rawfrf   s      r   
testFilenozBZ2FileTest.testFileno  s    $-&& 	$4==D  >>>



	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	*dk22222s(   B0:B
5B0
B  B00B47B4c                    t          t          | j                            }	 |                     |                                           |                                 |                     |                                           |                                 n# |                                 w xY w|                     t          |j                   t          t                      d          }	 | 	                    |                                           |                                 n# |                                 w xY w|                     t          |j                   t          | j                  }d |_        t          |          }	 | 	                    |                                           |                                 n# |                                 w xY w|                     t          |j                   d S )Nr   c                      dS )NFrJ   rJ   r   r   <lambda>z*BZ2FileTest.testSeekable.<locals>.<lambda>  s    u r   )
r   r   r8   r   seekablerb   r*   r[   r]   assertFalse)r+   rf   srcs      r   testSeekablezBZ2FileTest.testSeekable  s   wty))**	OODMMOO,,,IIKKKOODMMOO,,,JJLLLLDJJLLLL*dm444wyy#&&	T]]__---JJLLLLDJJLLLL*dm444di  $}s||	T]]__---JJLLLLDJJLLLL*dm44444s$   A"B B00'D, ,E'G G#c                    t          t          | j                            }	 |                     |                                           |                                 |                     |                                           |                                 n# |                                 w xY w|                     t          |j                   t          t                      d          }	 | 	                    |                                           |                                 n# |                                 w xY w|                     t          |j                   d S Nr   )
r   r   r8   r   readablerb   r*   r[   r]   r   re   s     r   testReadablezBZ2FileTest.testReadable  s   wty))**	OODMMOO,,,IIKKKOODMMOO,,,JJLLLLDJJLLLL*dm444wyy#&&	T]]__---JJLLLLDJJLLLL*dm44444   A"B B00'D, ,Ec                    t          t          | j                            }	 |                     |                                           |                                 |                     |                                           |                                 n# |                                 w xY w|                     t          |j                   t          t                      d          }	 | 	                    |                                           |                                 n# |                                 w xY w|                     t          |j                   d S r   )
r   r   r8   r   writablerb   r*   r[   r]   r   re   s     r   testWritablezBZ2FileTest.testWritable  s   wty))**	T]]__---IIKKKT]]__---JJLLLLDJJLLLL*dm444wyy#&&	OODMMOO,,,JJLLLLDJJLLLL*dm44444r   c                 |    |                                   t          d          D ]}t          | j                  }~d S )Ni'  )rS   ranger   r(   )r+   ios      r   testOpenDelzBZ2FileTest.testOpenDel  sG    u 	 	A&&A	 	r   c                 H    |                      t          t          d           d S )Nz/non/existent)r[   rj   r   r/   s    r   testOpenNonexistentzBZ2FileTest.testOpenNonexistent  s     '7O<<<<<r   c                    d}t          | j        d          5 }|                    |           d d d            n# 1 swxY w Y   t          | j                  5 }|                                }d d d            n# 1 swxY w Y   |                     |dg           t          | j                  5 }t          |                                          }d d d            n# 1 swxY w Y   |                     |dg           d S )Ns,   BZh91AY&SYb]        !h3M<]BCe%trN   s   Test)rD   r(   rO   r   r   rd   r   )r+   r   rR   rf   linesxliness         r   testReadlinesNoNewlinez"BZ2FileTest.testReadlinesNoNewline  s   z$-&& 	!GGDMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	T]## 	%tNN$$E	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%	***T]## 	,t$..**++F	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,'+++++s1   :>>A::A>A>0"CC"%C"c                    d }t          | j        d          5 }|                    d           d d d            n# 1 swxY w Y   t          | j        d          }|                                 	 |5  	 d d d            n# 1 swxY w Y   |                     d           n# t
          $ r Y nw xY w	 t          | j        d          5 }ddz   d d d            n# 1 swxY w Y   |                     d           d S # t          $ r Y d S w xY w)NrN   s   xxxr    z4__enter__ on a closed file didn't raise an exceptionr!   r   z1/0 didn't raise an exception)r   r(   rO   r*   failr]   ZeroDivisionErrorr+   rR   s     r   testContextProtocolzBZ2FileTest.testContextProtocol  s   T]D)) 	QGGFOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	DM4((					N                
 IILMMMM  	 	 	D		7-- !              
 II566666 ! 	 	 	DD	sy   :>>/B  1A?3B  ?BB  BB   
B-,B-1C: CC: CC: C C: :
DDc                    ddz  d}t          | j        d          5 fdfdt          |          D             }t          j        |          5  	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )N   1i   rX   rN   c                  V    t          d          D ]}                                d S Nrn   )r   rO   )r   r   rR   s    r   compz'BZ2FileTest.testThreading.<locals>.comp  s3    q " "AGGDMMMM" "r   c                 :    g | ]}t          j                   S ))target)	threadingThread).0r   r  s     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threadsr  r   rR   s      @@@r   testThreadingzBZ2FileTest.testThreading  s1    e|T]D)) 	Q" " " " " " ONNNeHooNNNG!/88                	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s5   6A<A$A<$A(	(A<+A(	,A<<B B c                    |                                   t          | j        d                   }|dz  }t          | j                  5 }|                    |           |                     t          |          | j        d         |d                     |                     |                                | j        |d                     d d d            n# 1 swxY w Y   t          | j                  5 }|	                                 |                     t          |          | j        d                    |                     |	                                | j        d                    d d d            n# 1 swxY w Y   t          | j                  5 }|
                                 |                     t          t          |           |                     |
                                g            d d d            d S # 1 swxY w Y   d S )Nr   r   r!   )rS   rt   r5   r   r(   rb   rd   r   r7   r   r   r[   StopIteration)r+   linelenhalflenrf   s       r   testMixedIterationAndReadsz&BZ2FileTest.testMixedIterationAndReads   s~   doa())Q,T]## 	?tIIgT$ZZ);GHH)EFFFTYY[[$)GHH*=>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? T]## 	BtMMOOOT$ZZ);<<<T]]__doa.@AAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B T]## 	3tNNmT4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   BCCC4A6E66E:=E:AH  HHc                    d}d}t          | j        d          5 }|                    |           d d d            n# 1 swxY w Y   t          | j        d          5 }|                    |           d d d            n# 1 swxY w Y   t          | j                  5 }|                     |                                ||z              d d d            d S # 1 swxY w Y   d S )Ns  foofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoos  barbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarr   r   )r   r(   rO   rd   rb   )r+   data1data2rf   s       r   testMultiStreamOrderingz#BZ2FileTest.testMultiStreamOrdering  s   T]C(( 	DJJu	 	 	 	 	 	 	 	 	 	 	 	 	 	 	T]C(( 	DJJu	 	 	 	 	 	 	 	 	 	 	 	 	 	 	T]## 	9tTYY[[%%-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Cc                 &
   t          | j        d          5 }|                    d           |                     |                                t
                     |                     |                                d           |                     |                                d           |                     |	                                d           |                     |j
        d           d d d            n# 1 swxY w Y   |                     |j
        d           |                     t          |j                   |                     t          |j                   |                     t          |j                   |                     t          |j	                   t          | j        d          5 }|                    d           |                     |                                t
                     |                     |                                d           |                     |                                d           |                     |	                                d           |                     |j
        d           d d d            n# 1 swxY w Y   |                     |j
        d           |                     t          |j                   |                     t          |j                   |                     t          |j                   |                     t          |j	                   t          | j        d          5 }|                     |                                d           |                     |                                t
                     |                     |                                d           |                     |                                d           |                     |	                                d           |                     |j
        d           d d d            n# 1 swxY w Y   |                     |j
        d           |                     t                    5  |                                 d d d            n# 1 swxY w Y   |                     t          |j                   |                     t          |j                   |                     t          |j	                   d S 	NrN      contentFTab   appendixr       contentappendix)r   r(   rO   assertIsInstancer   intassertIsr   r   r   closedr[   r]   rd   rb   r	  s     r   testOpenFilenamezBZ2FileTest.testOpenFilename  s   T]D)) 	+QGGJ!!!((**c222MM!**,,...MM!**,,---MM!**,,...MM!(E***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	ah%%%*ah///*aj111*aj111*aj111T]D)) 	+QGGK   !!!((**c222MM!**,,...MM!**,,---MM!**,,...MM!(E***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	ah%%%*ah///*aj111*aj111*aj111T]D)) 	+QQVVXX'9:::!!!((**c222MM!**,,---MM!**,,...MM!**,,---MM!(E***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	ah%%%z** 	 	HHJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	*aj111*aj111*aj11111sJ   CC88C<?C<3CJJJC)QQ	Q	R&&R*-R*c                 f   t          | j        d          5 }t          |d          5 }|                    d           |                     |                                |                                           |                     |                                d           |                     |                                d           |                     |	                                d           |                     |j
        d           d d d            n# 1 swxY w Y   |                     |j
        d           |                     t          |j                   |                     t          |j                   |                     t          |j                   |                     t          |j	                   d d d            n# 1 swxY w Y   t          | j        d          5 }t          |d          5 }|                    d           |                     |                                |                                           |                     |                                d           |                     |                                d           |                     |	                                d           |                     |j
        d           d d d            n# 1 swxY w Y   |                     |j
        d           |                     t          |j                   |                     t          |j                   |                     t          |j                   |                     t          |j	                   d d d            n# 1 swxY w Y   t          | j        d          5 }t          |d          5 }|                     |                                d           |                     |                                |                                           |                     |                                d           |                     |                                d           |                     |	                                d           |                     |j
        d           d d d            n# 1 swxY w Y   |                     |j
        d           |                     t                    5  |                                 d d d            n# 1 swxY w Y   |                     t          |j                   |                     t          |j                   |                     t          |j	                   d d d            d S # 1 swxY w Y   d S r$  )rD   r(   r   rO   rd   r   r+  r   r   r   r,  r[   r]   rb   )r+   rawrR   s      r   testOpenFileWithNamez BZ2FileTest.testOpenFileWithNameE  s    $-&& 	6#d## /q
###  SZZ\\:::ajjllE222ajjllD111ajjllE222ah.../ / / / / / / / / / / / / / / MM!(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$$$  SZZ\\:::ajjllE222ajjllD111ajjllE222ah.../ / / / / / / / / / / / / / / MM!(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  +=>>>  SZZ\\:::ajjllD111ajjllE222ajjllD111ah.../ / / / / / / / / / / / / / / MM!(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	BGGG(N9C#K(N(K,	,N/K,	0BNN!N:V&C6SV&S	V&S	8V&T."V&.T2	2V&5T2	6A#V&&V*-V*c                    t                      }t          |d          5 }|                    d           |                     t          j        |j                   d d d            n# 1 swxY w Y   |                     t          |j                   t          |d          5 }|                    d           |                     t          j        |j                   d d d            n# 1 swxY w Y   |                     t          |j                   |                    d           t          |d          5 }| 	                    |
                                d           |                     t          j        |j                   d d d            n# 1 swxY w Y   |                     t                    5  |                                 d d d            d S # 1 swxY w Y   d S )NrN   r%  r&  r'  r   r    r(  )r   r   rO   r[   ioUnsupportedOperationr   r]   r   rd   rb   )r+   biorR   s      r   testOpenFileWithoutNamez#BZ2FileTest.testOpenFileWithoutNameq  s   iiS$ 	A1GGJb5qx@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	*ah///S$ 	A1GGK   b5qx@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	*ah///S$ 	A1QVVXX'9:::b5qx@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A z** 	 	HHJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sH   ;A&&A*-A*!;C((C,/C,8AFFF7GG Gc                 4   t          j        | j        t           j        t           j        z  t           j        z            }t          |d          5 }t          |d          5 }|                    d           |                     |	                                |	                                           d d d            n# 1 swxY w Y   | 
                    t          |j	                   d d d            n# 1 swxY w Y   t          j        | j        t           j        t           j        z  t           j        z            }t          |d          5 }t          |d          5 }|                    d           |                     |	                                |	                                           d d d            n# 1 swxY w Y   | 
                    t          |j	                   d d d            n# 1 swxY w Y   t          j        | j        t           j                  }t          |d          5 }t          |d          5 }|                     |                                d           |                     |	                                |	                                           d d d            n# 1 swxY w Y   | 
                    t                    5  |	                                 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )NrN   r%  r&  r'  r    r(  )r)   rD   r(   O_WRONLYO_CREATO_TRUNCr   rO   rd   r   r[   r]   O_APPENDO_RDONLYrb   )r+   r,   r/  rR   s       r   testOpenFileWithIntNamez#BZ2FileTest.testOpenFileWithIntName  s   WT]BK"*$<rz$IJJ"d^^ 	4sd## ;q
###  SZZ\\:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; j!(333		4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 WT]BK"*$<r{$JKK"d^^ 	4sd## ;q$$$  SZZ\\:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; j!(333		4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 WT]BK00"d^^ 	sd## ;q  +=>>>  SZZ\\:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "":..  


              		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   C3 AB<0C3<C 	 C3C 	#C33C7:C7G0AF9-G09F=	=G0 F=	#G00G47G4/L A#J/#L/J3	3L6J3	7LK5)L5K9	9L<K9	=LLLc                    | j         }t          j        |          }t          |d          5 }|                    | j                   d d d            n# 1 swxY w Y   t          |d          5 }|                     |                                | j                   d d d            n# 1 swxY w Y   t          |d          5 }|                     |                                | j                   d d d            d S # 1 swxY w Y   d S NrN   r    )r(   r)   fsencoder   rO   r8   rd   rb   )r+   str_filenamebytes_filenamerR   s       r   testOpenBytesFilenamez!BZ2FileTest.testOpenBytesFilename  s   }\22^T** 	aGGDI	 	 	 	 	 	 	 	 	 	 	 	 	 	 	^T** 	2aQVVXXty111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 \4(( 	2AQVVXXty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Dc                 ^   t          | j                  }t          |d          5 }|                    | j                   d d d            n# 1 swxY w Y   t          |d          5 }|                     |                                | j                   d d d            d S # 1 swxY w Y   d S r>  )r   r(   r   rO   r8   rd   rb   )r+   r(   rR   s      r   testOpenPathLikeFilenamez$BZ2FileTest.testOpenPathLikeFilename  s   DM**Xt$$ 	GGDI	 	 	 	 	 	 	 	 	 	 	 	 	 	 	Xt$$ 	2QVVXXty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                               dt          d          z  d          }|                     t	          |          t
          j                   t          t          |                    }| 	                    |
                    d          d           dt          z   }|                     |j        j                                        |d           dS )z-Decompressed data buffering should be limited    g    >A	   r"   r!   z)Excessive amount of data was decompressedN)r   rH   r*  
assertLessrt   rr   rs   r   r   rd   rb   r   assertLessEqual_bufferr/  r   )r+   bombdecomp
max_decomps       r   testDecompressLimitedz!BZ2FileTest.testDecompressLimited  s    ||ECHH,A|>>D		<#;<<<''Q///,,
V^/4466
7	9 	9 	9 	9 	9r   c                    t          | j                  5 }t          |          5 }|                     t          |j        t                                 |                     |                                | j                   d d d            n# 1 swxY w Y   | 	                    |j
                   d d d            d S # 1 swxY w Y   d S r%   )r   r8   r   r[   r\   rb   rc   rd   r7   r   r,  r+   r4  rf   s      r   testReadBytesIOzBZ2FileTest.testReadBytesIO  s'   TY 	)3 9!!)TY@@@  di8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 SZ(((		) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s5   B>AB B>B	B>B	B>>CCc                    t          | j                  5 }t          |          5 }|                                }|                     t          |          d           |                     | j                            |                     | 	                    |
                                | j                   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S r   )r   r8   r   r   r   rt   r   r7   r   rd   rb   )r+   r4  rf   r   s       r   testPeekBytesIOzBZ2FileTest.testPeekBytesIO  s<   TY 	93 9		##CJJ222	 4 4U ; ;<<<  di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BC7CC	C
C	CC"Cc                    t                      5 }t          |d          5 }|                     t          |j                   |                    | j                   d d d            n# 1 swxY w Y   |                     t          |                                          | j                   | 	                    |j
                   d d d            d S # 1 swxY w Y   d S r   )r   r   r[   r\   rO   r7   rd   r   getvaluer   r,  rP  s      r   testWriteBytesIOzBZ2FileTest.testWriteBytesIO  s;   YY 	)#c"" &d!!)TZ888

49%%%& & & & & & & & & & & & & & & ^CLLNN;;TYGGGSZ(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s5   C;A'C'A+	+C.A+	/ACCCc                    t          | j                  5 }t          |          5 }|                     t          |j                   |                    d           |                     |                                | j        dd                     d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S r   )	r   r8   r   r[   r\   r   rd   rb   r7   rP  s      r   testSeekForwardBytesIOz"BZ2FileTest.testSeekForwardBytesIO  s    TY 	?3 ?!!)TY777		#  dio>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ?	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s5   B4A+BB4B 	 B4#B 	$B44B8;B8c                 n   t          | j                  5 }t          |          5 }|                    d           |                    dd           |                     |                                | j        dd                     d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S r   )r   r8   r   rb   r   rd   r7   rP  s      r   testSeekBackwardsBytesIOz$BZ2FileTest.testSeekBackwardsBytesIO  s@   TY 	C3 C		#		$"""  di.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 	Cs5   B*A!BB*B	B*B	B**B.1B.c                    | j         d d         }t          t          |                    5 }|                     t          |j                   d d d            n# 1 swxY w Y   t          t          |                    5 }|                     |                    t          | j                            | j                   |                     t          |j        d           d d d            n# 1 swxY w Y   t          d          D ]_}t          t          |d |                             5 }|                     t          |j        d           d d d            n# 1 swxY w Y   `d S )Nr!      )
r8   r   r   r[   EOFErrorrb   rd   rt   r7   r   )r+   	truncatedrR   r   s       r   test_read_truncatedzBZ2FileTest.test_read_truncated  s   IdsdO	WY''(( 	0Ah///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0WY''(( 	3AQVVC	NN33TY???h222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 r 	7 	7A2A2//00 7A!!(AFA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5C2."EE 	#E 	c                 n   t          j         dg d          }t          |          |j        z  }t          t	                      d          5 }|                     |                    |          |           |                     |                                |           d d d            d S # 1 swxY w Y   d S )NQ)r!   r   rZ      rn   r   )arrayrt   itemsizer   r   rd   rO   r   )r+   qLENGTHrR   s       r   test_issue44439zBZ2FileTest.test_issue44439  s    K___--Q!*$WYY$$ 	/QWWQZZ000QVVXXv...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   AB**B.1B.N)r!   r   )Fr1   r2   r3   r4   rS   r_   rg   rk   rp   rv   ry   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	   requires_working_threadingr  r  r"  r-  r0  r5  r<  rB  rD  rN  rQ  rS  rV  rX  rZ  r`  rh  rJ   r   r   rL   rL   Z   s$          
	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 545 5 5"5 5 5"  = = =
, 
, 
,7 7 7* 1022
 
 32
3 3 3"	9 	9 	9'2 '2 '2R*6 *6 *6X  &  .	2 	2 	22 2 2	9 	9 	9) ) )9 9 9) ) )? ? ?C C C7 7 7/ / / / /r   rL   c                   r    e Zd Zd Zd Zd Zej         ee	dz   d          d                         Z
d Zd	S )
BZ2CompressorTestc                    t                      }|                     t          |j                   |                    | j                  }||                                z  }|                     t          |          | j                   d S r%   )r   r[   r\   rH   r7   flushrd   r   r+   bz2cr   s      r   testCompresszBZ2CompressorTest.testCompress  sn    )T]333}}TY''

--ty99999r   c                     t                      }|                    d          }||                                z  }|                     || j                   d S Nr   )r   rH   rm  rd   r9   rn  s      r   testCompressEmptyStringz)BZ2CompressorTest.testCompressEmptyString  sL    }}S!!

t/////r   c                    t                      }d}d}	 | j        |dz  |dz   dz           }|sn||                    |          z  }|dz  }9||                                z  }|                     t          |          | j                   d S )Nr   r   TrX   r!   )r   r7   rH   rm  rd   r   )r+   ro  r   r   r   s        r   testCompressChunks10z&BZ2CompressorTest.testCompressChunks10  s    	)AbD!A#rM*C DMM#&&&DFA	 	

--ty99999r   r   r   sizememusec                    t                      }d|z  }	 |                    |          }||                                z  }d }n# d }w xY wt                              |          }	 |                     t          |          |           |                     t          |                    d                    d           d }d S # d }w xY w)N   xr   )r   rH   rm  r   r   rd   rt   strip)r+   rw  ro  r   
compresseds        r   testCompress4Gz BZ2CompressorTest.testCompress4G  s     d{	t,,J$**,,&JDD4DKKKK~~j))	SYY---SD!1!122A666DDD4DKKKKs   ,A A&AC Cc                     t          t          j        dz             D ]U}|                     t                    5  t          j        t                      |           d d d            n# 1 swxY w Y   Vd S Nr!   )r   pickleHIGHEST_PROTOCOLr[   r\   dumpsr   r+   protos     r   
testPicklezBZ2CompressorTest.testPickle#  s    62Q677 	5 	5E""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)r1   r2   r3   rp  rs  ru  r   skip_if_pgo_taskr   r   r}  r  rJ   r   r   rk  rk    s        : : :0 0 0: : : ZS3Yq)))  *)  5 5 5 5 5r   rk  c                       e Zd Zd Zd Zd Zd Zd Zej	         e
edz   d          d	                         Zd
 Zd Zd Zd Zd Zd Zej        d             ZdS )BZ2DecompressorTestc                 H    |                      t          t          d           d S )N*   )r[   r\   r   r/   s    r   test_Constructorz$BZ2DecompressorTest.test_Constructor*  s     )_b99999r   c                     t                      }|                     t          |j                   |                    | j                  }|                     || j                   d S r%   )r   r[   r\   r   r8   rd   r7   r+   bz2dr   s      r   testDecompressz"BZ2DecompressorTest.testDecompress-  sV      )T_555ty))ty)))))r   c                     t                      }d}d}	 | j        |dz  |dz   dz           }|sn||                    |          z  }|dz  }9|                     || j                   d S )Nr   r   TrX   r!   )r   r8   r   rd   r7   )r+   r  r   r   r   s        r   testDecompressChunks10z*BZ2DecompressorTest.testDecompressChunks103  s      	)AbD!A#rM*C DOOC(((DFA	 	ty)))))r   c                     t                      }d}|                    | j        |z             }|                     || j                   |                     |j        |           d S )Ns   this is unused data)r   r   r8   rd   r7   unused_data)r+   r  r  r   s       r   testDecompressUnusedDataz,BZ2DecompressorTest.testDecompressUnusedData?  sa      ,ty455ty))));77777r   c                     t                      }|                    | j                  }|                     t          |j        d           |                     t          |j        d           d S )Ns   anythingr   )r   r   r8   r[   r^  r  s      r   testEOFErrorz BZ2DecompressorTest.testEOFErrorF  sZ      ty))(DO[AAA(DOS99999r   r   gffffff
@rv  c                 :   t          d|          }t          j        |          }	 ||dz
  |z  dz   z  }t                              |          }t                      }|                    |          }|                     ||k               d }d }d }d S # d }d }d }w xY w)Ni   r!   )minrandom	randbytesr   rH   r   r   r   )r+   rw  	blocksizeblockr   r|  r  decompresseds           r   testDecompress4Gz$BZ2DecompressorTest.testDecompress4GL  s     ($//	 ++		 T!V	1A56Dd++J"$$D??:66LOOLD0111DJLLL DJLs   A$B Bc                     t          t          j        dz             D ]U}|                     t                    5  t          j        t                      |           d d d            n# 1 swxY w Y   Vd S r  )r   r  r  r[   r\   r  r   r  s     r   r  zBZ2DecompressorTest.testPickle]  s    62Q677 	7 	7E""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                  dz
  }|                    |                    | j        d |         |                     |                     |j                   |                     t          |d                   |           |                    |                    d|                     |                     |j                   |                     t          |d                   |           |                    |                    | j        |d          |                     |                     t          |d                   |           |j	        sZ|                    |                    d|                     |                     t          |d                   |           |j	        Zd
                    |          }|                     || j                   |                     |j        d           d S )Nr   @   
max_lengthr   )r   rt   rI   appendr   r   needs_inputrd   rI  eofr6   r=   r  )r+   bzdr  outlen_s        r   testDecompressorChunksMaxsizez1BZ2DecompressorTest.testDecompressorChunksMaxsizeb  s   
 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 ' 	;JJs~~cj~AABBB  SWz::: ' 	; hhsmmdm,,,#.....r   c                    t                      }g }|                     |                    | j        d d         d          d           |                    |                    dd                     |                    |                    | j        dd         d                     |                    |                    | j        dd                               |                     d                    |          | j                   d S )Nr   r   r  r   r   i      r   rd   r   r8   r  r6   r7   r+   r  r  s      r   test_decompressor_inputbuf_1z0BZ2DecompressorTest.test_decompressor_inputbuf_1  s      		$3$34 ( 6 67:	< 	< 	<
 	

3>>#q))*** 	

3>>$)CG"4b99::: 	

3>>$)CDD/22333#	22222r   c                    t                      }g }|                     |                    | j        d d         d          d           |                    |                    d                     |                    |                    | j        dd         d                     |                    |                    | j        dd         d                     |                    |                    | j        dd                               |                     d                    |          | j                   d S )N   r   r  r   i  r   ,  r  r  s      r   test_decompressor_inputbuf_2z0BZ2DecompressorTest.test_decompressor_inputbuf_2  s     		$3$34 ( 6 67:	< 	< 	<

3>>#&&''' 	

3>>$)CG"4a88999 	

3>>$)CG"4a88999 	

3>>$)CDD/22333#	22222r   c                    t                      }g }|                    |                    | j        d d         d                     |                    |                    | j        dd         d                     |                    |                    | j        dd                               |                     d                    |          | j                   d S )Nr  rn   r  r   )r   r  r   r8   rd   r6   r7   r  s      r   test_decompressor_inputbuf_3z0BZ2DecompressorTest.test_decompressor_inputbuf_3  s      	

3>>$)DSD/155666 	

3>>$)CG"4a88999 	

3>>$)CDD/22333#	22222r   c                     t                      }|                     t          |j        | j        dz             |                     t          |j        | j        dz             d S )N   )r   r[   	Exceptionr   r:   )r+   r  s     r   test_failurez BZ2DecompressorTest.test_failure  sU    )S^T]R5GHHH)S^T]R5GHHHHHr   c                     t          j        t          d          }t                      } |            }t	          d          D ]}|                                 |                      |            |z
  dd           d S )Ngettotalrefcountr   r   rX   )delta)r   get_attributesysr   r   __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LLNNNN//11K?"MMMMMr   N)r1   r2   r3   r  r  r  r  r  r   r  r   r   r  r  r  r  r  r  r  refcount_testr  rJ   r   r   r  r  )  s       : : :* * *
* 
* 
*8 8 8: : : ZS3Ys+++    ,+  7 7 7
/ / />3 3 3,3 3 3*3 3 3 I I I N N N N Nr   r  c                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )CompressDecompressTestc                     t                               | j                  }|                     t	          |          | j                   d S r%   )r   rH   r7   rd   r   )r+   r   s     r   rp  z#CompressDecompressTest.testCompress  s;    ||DI&&--ty99999r   c                 p    t                               d          }|                     || j                   d S rr  )r   rH   rd   r9   r+   r   s     r   rs  z.CompressDecompressTest.testCompressEmptyString  s1    ||C  t/////r   c                 z    t                               | j                  }|                     || j                   d S r%   r   r   r8   rd   r7   r  s     r   r  z%CompressDecompressTest.testDecompress  s3    ~~di((ty)))))r   c                 f    t                               d          }|                     |d           d S rr  )r   r   rd   r  s     r   testDecompressEmptyz*CompressDecompressTest.testDecompressEmpty  s/    ~~c""s#####r   c                 p    t                               | j                  }|                     |d           d S rr  )r   r   r9   rd   r  s     r   testDecompressToEmptyStringz2CompressDecompressTest.testDecompressToEmptyString  s1    ~~do..s#####r   c                 l    |                      t          t          j        | j        d d                    d S )Nr\  )r[   r]   r   r   r8   r/   s    r   testDecompressIncompletez/CompressDecompressTest.testDecompressIncomplete  s,    *cndioFFFFFr   c                 \    |                      t          t          j        | j                   d S r%   )r[   rj   r   r   r:   r/   s    r   testDecompressBadDataz,CompressDecompressTest.testDecompressBadData  s$    '3>4=AAAAAr   c                     t                               | j        dz            }|                     || j        dz             d S r  r  r  s     r   testDecompressMultiStreamz0CompressDecompressTest.testDecompressMultiStream  s;    ~~di!m,,ty1}-----r   c                     t                               | j        | j        z             }|                     || j                   d S r%   r   r   r8   r:   rd   r7   r  s     r   testDecompressTrailingJunkz1CompressDecompressTest.testDecompressTrailingJunk  s:    ~~di$-788ty)))))r   c                     t                               | j        dz  | j        z             }|                     || j        dz             d S r  r  r  s     r   %testDecompressMultiStreamTrailingJunkz<CompressDecompressTest.testDecompressMultiStreamTrailingJunk  sB    ~~di!mdm;<<ty1}-----r   N)r1   r2   r3   rp  rs  r  r  r  r  r  r  r  r  rJ   r   r   r  r    s        : : :0 0 0* * *$ $ $$ $ $G G GB B B. . .* * *. . . . .r   r  c                   N    e 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S )OpenTestzTest the open function.c                 $    t          j        |i |S r%   )r   rD   )r+   argskwargss      r   rD   zOpenTest.open  s    x((((r   c                    dD ]}|dk    rt          | j                   |                     | j        |          5 }|                    | j                   d d d            n# 1 swxY w Y   t          | j        d          5 }t          |                                          }|                     || j                   d d d            n# 1 swxY w Y   |                     | j        d          5 }|                     |                                | j                   d d d            n# 1 swxY w Y   |                     | j        d          5 }|                    | j                   d d d            n# 1 swxY w Y   t          | j        d          5 }t          |                                          }|                     || j        dz             d d d            n# 1 swxY w Y   d S )N)rN   xbr  r    r&  r   r
   r(   rD   rO   r7   r   rb   rd   r+   moderR   	file_datas       r   test_binary_modeszOpenTest.test_binary_modes  s     	; 	;Dt||t}%%%4=$// #1	"""# # # # # # # # # # # # # # #dmT** 7a*1668844	  DI6667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 4=$// 61  495556 6 6 6 6 6 6 6 6 6 6 6 6 6 64=$// #1	"""# # # # # # # # # # # # # # #dmT** ;a*1668844	  DIM:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;	; 	;Z   A""A&	)A&	=CC	C	1.D++D/	2D/	E88E<	?E<	A G$$G(	+G(	c                    dD ]}|dk    rt          | j                   |                     | j        |          5 }|                    | j                   d d d            n# 1 swxY w Y   t          | j        d          5 }t          |                                          }|                     || j                   d d d            n# 1 swxY w Y   |                     | j        d          5 }|                     |                                | j                   d d d            n# 1 swxY w Y   |                     | j        d          5 }|                    | j                   d d d            n# 1 swxY w Y   t          | j        d          5 }t          |                                          }|                     || j        dz             d d d            n# 1 swxY w Y   d S )N)r   xr  r    rY   r   r   r  r  s       r   test_implicit_binary_modesz#OpenTest.test_implicit_binary_modes  s    	; 	;Ds{{t}%%%4=$// #1	"""# # # # # # # # # # # # # # #dmT** 7a*1668844	  DI6667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 4=#.. 6!  495556 6 6 6 6 6 6 6 6 6 6 6 6 6 64=#.. #!	"""# # # # # # # # # # # # # # #dmT** ;a*1668844	  DIM:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;	; 	;r  c                    | j                             d          }|                    dt          j                  }dD ]}|dk    rt          | j                   |                     | j        |d          5 }|                    |           d d d            n# 1 swxY w Y   t          | j        d          5 }t          |
                                                              d          }|                     ||           d d d            n# 1 swxY w Y   |                     | j        dd          5 }|                     |
                                |           d d d            n# 1 swxY w Y   |                     | j        dd          5 }|                    |           d d d            n# 1 swxY w Y   t          | j        d          5 }t          |
                                                              d          }|                     ||d	z             d d d            n# 1 swxY w Y   d S )
Nascii
)wtxtr  encodingr    rtatr   )r7   decodereplacer)   linesepr
   r(   rD   rO   r   rb   rd   )r+   r   text_native_eolr  rR   r  s         r   test_text_modeszOpenTest.test_text_modes  s4   y((,,tRZ88  	A 	ADt||t}%%%4=$AA Q              dmT** =a*1668844;;GDD	  O<<<= = = = = = = = = = = = = = = 4=$AA 1Q  40001 1 1 1 1 1 1 1 1 1 1 1 1 1 14=$AA Q              dmT** Aa*1668844;;GDD	  Oa,?@@@A A A A A A A A A A A A A A A	A 	As\   7BB	 B	9ADD	D	8)E--E1	4E1	F77F;	>F;	AH11H5	8H5	c                    dD ]}t          | j                   d|v rdnd }|                     | j        ||          5 }	 d d d            n# 1 swxY w Y   |                     t                    5  |                     | j        |          5 }	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )N)r  r  r  tutf-8r  )r
   r(   rD   r[   FileExistsError)r+   r  r  rR   s       r   test_x_modezOpenTest.test_x_mode0  s   % 	 	D4=!!!"%++ww4H4=$BB a              ""?33  YYt}d33 q                            	 	sG   AA	A	1B2BB2BB2"B#B22B6	9B6	c                    |                      t          | j                  d          5 }|                     |                                | j                   d d d            n# 1 swxY w Y   |                      t          | j                  d          5 }|                     |                                | j                   d d d            n# 1 swxY w Y   | j                            d          }|                      t          | j                  dd          5 }|                     |                                |           d d d            d S # 1 swxY w Y   d S )NrY   r    r  r  r  r  )rD   r   r8   rd   rb   r7   r  )r+   rR   r   s      r   test_fileobjzOpenTest.test_fileobj:  s   YYwty))3// 	21QVVXXty111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2YYwty))400 	2AQVVXXty111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2y((YYwty))4'YBB 	-aQVVXXt,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s5   .A##A'*A'.CCC)EEEc                    |                      t          | j        | j        d           |                      t          | j        | j        d           |                      t          | j        | j        dd           |                      t          | j        | j        dd           |                      t          | j        | j        dd	           d S )
Nwbtxbtr    r  r  ignore)errorsr  )newline)r[   r]   rD   r(   r/   s    r   test_bad_paramszOpenTest.test_bad_paramsC  s    *)T]E	; 	; 	;*)T]E	; 	; 	;*)T]D7 	 	L 	L 	L*)T]D 	 	K 	K 	K*)T]D$ 	 	H 	H 	H 	H 	Hr   c                    | j                             d          }|                    dt          j                  }|                     | j        dd          5 }|                    |           d d d            n# 1 swxY w Y   t          | j        d          5 }t          |	                                                              d          }| 
                    ||           d d d            n# 1 swxY w Y   |                     | j        dd          5 }| 
                    |	                                |           d d d            d S # 1 swxY w Y   d S )Nr  r  r  z	utf-16-ler  r    r  )r7   r  r  r)   r  rD   r(   rO   r   rb   rd   )r+   r   r  rR   r  s        r   test_encodingzOpenTest.test_encodingP  s   y((,,tRZ88YYt}d[YAA 	QGGDMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	$-&& 	9!&qvvxx0077DDIY888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 YYt}d[YAA 	-QQVVXXt,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s7   A::A>A>AC11C58C5)EEEc                 T   |                      | j        d          5 }|                    d           d d d            n# 1 swxY w Y   |                      | j        ddd          5 }|                     |                                d           d d d            d S # 1 swxY w Y   d S )NrN   s   foobarr  r  r  )r  r  foobar)rD   r(   rO   rd   rb   r	  s     r   test_encoding_error_handlerz$OpenTest.test_encoding_error_handler\  s   YYt}d++ 	#qGGM"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#YYt}dWXYNN 	1QVVXXx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          }|                     | j        ddd          5 }|                    |           d d d            n# 1 swxY w Y   |                     | j        ddd          5 }|                     |                                |g           d d d            d S # 1 swxY w Y   d S )Nr  r  r  r  )r  r  r  )r7   r  rD   r(   rO   rd   r   )r+   r   rR   s      r   test_newlinezOpenTest.test_newlined  s1   y((YYt}dWdYKK 	qGGDMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	YYt}dWdYKK 	4qQ[[]]TF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)r1   r2   r3   r4   rD   r  r  r  r  r  r  r
  r  r  rJ   r   r   r  r    s        ) ) ); ; ;"; ; ;$A A A&  - - -H H H
- 
- 
-1 1 14 4 4 4 4r   r  c                  ,    t          j                     d S r%   )r   reap_childrenrJ   r   r   tearDownModuler  m  s    r   __main__)*testr   test.supportr   r   rd  unittestr2  r   r   r)   r  r>   r&   r  r   r   r  r   r	   test.support.os_helperr
   r   rr   r  import_moduler   r   r   r   r   r   TestCaser   rL   rk  r  r  r  r  r1   mainrJ   r   r   <module>r     s         ( ( ( ( ( ( ( (   				 + + + + + + + + 				              & & & & & & ) ) ) ) ) ) 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hY
/ Y
/ Y
/ Y
/ Y
/( Y
/ Y
/ Y
/x05 05 05 05 05 05 05 05f`N `N `N `N `N( `N `N `NF%. %. %. %. %.X %. %. %.Pv4 v4 v4 v4 v4x v4 v4 v4r   zHMOOOOO r   