python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_bz2.cpython-312.pyc

͑eܕddlmZddlmZmZddlZddlZddlmZm	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlmZddlmZddlmZddlZddlZej2dZdd	lmZmZmZdad
ZGddej@Z!Gd
de!Z"Gdde!Z#Gdde!Z$Gdde!Z%Gdde!Z&dZ'e(dk(rejRyy))support)
bigmemtest_4GN)BytesIODEFAULT_BUFFER_SIZE)
import_helper)threading_helper)unlinkbz2)BZ2File
BZ2CompressorBZ2Decompressorctttjdatrt	j
dg|Stj|S)Nbunzip2)input)has_cmdline_bunzip2boolshutilwhich
subprocesscheck_outputr
decompress)datas A/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_bz2.pyext_decompressrsC""6<<	#:;&&	{$??~~d##c	eZdZdZgdZdjeZdZdZdZ	dZ
edZe
jejje
j ejj#ed	D]8Zeed
5Ze
ej-eee
dz
Z
ddde
dkDs8nej3ed
ZdZdZy#1swY,xYw)BaseTestzBase for other testcases.)s root:x:0:0:root:/root:/bin/bash
sbin:x:1:1:bin:/bin:
sdaemon:x:2:2:daemon:/sbin:
sadm:x:3:4:adm:/var/adm:
slp:x:4:7:lp:/var/spool/lpd:
s sync:x:5:0:sync:/sbin:/bin/sync
s-shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
s!halt:x:7:0:halt:/sbin:/sbin/halt
s"mail:x:8:12:mail:/var/spool/mail:
s"news:x:9:13:news:/var/spool/news:
s#uucp:x:10:14:uucp:/var/spool/uucp:
s operator:x:11:0:operator:/root:
s!games:x:12:100:games:/usr/games:
s,gopher:x:13:30:gopher:/usr/lib/gopher-data:
s(ftp:x:14:50:FTP User:/var/ftp:/bin/bash
s#nobody:x:65534:65534:Nobody:/home:
s.postfix:x:100:101:postfix:/var/spool/postfix:
s-niemeyer:x:500:500::/home/niemeyer:/bin/bash
s>postgres:x:101:102:PostgreSQL Server:/var/lib/pgsql:/bin/bash
s6mysql:x:102:103:MySQL server:/var/lib/mysql:/bin/bash
s#www:x:103:104::/var/www:/bin/false
rsBZh91AY&SY.N>_@n?0F#&FЦMQ4hh$i44S<QHՇ
I/Epu]ɻDL
Q	1ߠ2O97dIJL#/#CWMXa<etL˄.`n}lh	E,ZVH>9gd6
Պ.Kvxwߡ|/";ձ#Aoy\O煚f82"%>V,z⟣"E)I^rU26U0^DFݸankR3]f"6l$j@l1..klsE
knQ%yvz̹zn7.G]B@!8`sBZh9rE8Psthis is not a valid bzip2 fileriz*.pyrbN
compresslevelcftj\}|_tj|yN)tempfilemkstempfilenameosclose)selffds  rsetUpzBaseTest.setUpRs"$,,.DM
rc.t|jyr$)r
r'r*s rtearDownzBaseTest.tearDownVst}}r)__name__
__module____qualname____doc__
TEXT_LINESjoinTEXTDATA
EMPTY_DATABAD_DATA	test_size	bytearrayBIG_TEXTglobr(pathescapedirname__file__fnameopenfhreadinto
memoryviewrcompressBIG_DATAr,r/rrrr&s
J.88JD^D4J0HI"H277<<BGGOOH4M(NPVWX
%
	G"Z%9)*%EFFI	Gx	
||HA|6H	G	Gs
CC	rceZdZdZd?dZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2e3jhd1Z5d2Z6d3Z7d4Z8d5Z9d6Z:d7Z;d8Z<d9Z=d:Z>d;Z?d<Z@d=ZAy>)@BZ2FileTestzTest the BZ2File class.ct|jd5}|j|j|z|j|dddy#1swYyxYw)Nwb)rCr'writer7)r*streamssuffixfs    rcreateTempFilezBZ2FileTest.createTempFile]sG
$--
&	!
GGDII'(
GGFO			s0AAc8|jttd|jtttj
d|jtttj
d|jtttj
d|jtttj
d|jtttj
d|jtttj
dd	y)
Ngw/^@zrxrbtrr!
r)assertRaises	TypeErrorr
ValueErrorr(devnullr.s rtestBadArgszBZ2FileTest.testBadArgsbs)Wg6*grzz3?*grzz4@*grzz5A*grzzK*grzzL	
)Wbjj#qArc|jt|j5}|jt|j
t
|j|j|jdddy#1swYyxYwr$	rRrr'rZr[readfloatassertEqualr6r*bz2fs  rtestReadzBZ2FileTest.testReadmsc
T]]
#	5tiEG<TYY[$))4	5	5	5sABBc|jd|jt|j5}|j	t
|jdddy#1swYyxYw)NrrOrP)rRr9rr'rZOSErrorrards  rtestReadBadFilezBZ2FileTest.testReadBadFilessPAdmm<
T]]
#	2tgtyy1	2	2	2s!AA&c(|jdt|j5}|jt|j
t
|j|j|jdzdddy#1swYyxYwNrOr`rds  rtestReadMultiStreamzBZ2FileTest.testReadMultiStreamxslA&
T]]
#	9tiEG<TYY[$))a-8	9	9	9sABBctj}t|jt_	|j	dt|j5}|jt|jt|j|j|jdzddd|t_y#1swYxYw#|t_wxYwrl)
_compressionBUFFER_SIZElenr7rRrr'rZr[rarbrcr6)r*buffer_sizeres   rtestReadMonkeyMultiStreamz%BZ2FileTest.testReadMonkeyMultiStream~s#..#&tyy> 	3*'
=4!!)TYY@  dii!m<
=(3L$	
=
=(3L$s$'CAC.CCC
Cc|j|jt|j5}|j	|j|jdddy#1swYyxYw)N)rPrRr9rr'rcrar6rds  rtestReadTrailingJunkz BZ2FileTest.testReadTrailingJunksT4==1
T]]
#	5tTYY[$))4	5	5	5s+A&&A/c|jd|jt|j5}|j	|j|jdzdddy#1swYyxYw)Nrmrhrwrds  rtestReadMultiStreamTrailingJunkz+BZ2FileTest.testReadMultiStreamTrailingJunksZAdmm<
T]]
#	9tTYY[$))a-8	9	9	9s.A**A3c|jt|j5}|jt|j
t
|j|jdddddy#1swYyxYw)Nrr)rRrr'rZr[rarbrcrds  r	testRead0zBZ2FileTest.testRead0sa
T]]
#	0tiEG<TYYq\3/	0	0	0sAA::Bc|jt|j5}d}	|jd}|sn||z
}|j	||j
dddy#1swYyxYw)NrrWrRrr'rarcr6r*retextstrs    rtestReadChunk10zBZ2FileTest.testReadChunk10sp
T]]
#	.tDiim	

T499-	.	.	.s:A))A2c|jdt|j5}d}	|jd}|sn||z
}|j	||j
dzdddy#1swYyxYw)NrmrnrrWr~rs    rtestReadChunk10MultiStreamz&BZ2FileTest.testReadChunk10MultiStreamsyA&
T]]
#	2tDiim	

T499q=1	2	2	2s=A..A7c|jt|j5}|j|j	d|j
dddddy#1swYyxYw)Nd)rRrr'rcrar6rds  rtestRead100zBZ2FileTest.testRead100sS
T]]
#	>tTYYs^TYYt_=	>	>	>/AA'cv|jt|j5}|j}|j	t|d|j
|jj||j|j|jdddy#1swYyxYwNr)rRrr'peekassertNotEqualrs
assertTruer6
startswithrcra)r*repdatas   rtestPeekzBZ2FileTest.testPeeks
T]]
#	5tIIKEE
A.OODII0078TYY[$))4		5	5	5sBB//B8c|jt|j5}d}t|}|j	|j|||j	||jd|t|j|z
}tt|j}|j	|j|||j	|d||j|ddddy#1swYyxYw)N)rRrr'r;rcrEr6rs)r*renbs    rtestReadIntozBZ2FileTest.testReadIntos
T]]
#	4tA!AT]]1-q1Q		"1
.DII"A#dii.)AT]]1-q1QrUDIIqbcN3	4	4	4sCC77Dc|jt|j5}|jt|j
d|jD]"}|j|j|$	dddy#1swYyxYwr$rRrr'rZr[readliner4rcr*relines   rtestReadLinezBZ2FileTest.testReadLinesp
T]]
#	8ti=
8  $7
8	8	8	8sABBc(|jdt|j5}|jt|j
d|jdzD]"}|j|j|$	dddy#1swYyxYwrlrrs   rtestReadLineMultiStreamz#BZ2FileTest.testReadLineMultiStreamszA&
T]]
#	8ti=!+
8  $7
8	8	8	8sABBc|jt|j5}|jt|j
d|j
|j|jdddy#1swYyxYwr$rRrr'rZr[	readlinesrcr4rds  r
testReadLineszBZ2FileTest.testReadLinessf
T]]
#	@ti>T^^-t?	@	@	@sAA;;Bc|jdt|j5}|jt|j
d|j
|j|jdzdddy#1swYyxYwrlrrds  rtestReadLinesMultiStreamz$BZ2FileTest.testReadLinesMultiStreamspA&
T]]
#	Dti>T^^-t/BC	D	D	DsABB	c|jt|j5}|jt	t||jdddy#1swYyxYwr$rRrr'rclistiterr4rds  rtestIteratorzBZ2FileTest.testIteratorsR
T]]
#	@tT$t*-t?	@	@	@rc|jdt|j5}|jt	t||jdzdddy#1swYyxYwrlrrds  rtestIteratorMultiStreamz#BZ2FileTest.testIteratorMultiStreams\A&
T]]
#	DtT$t*-t/BC	D	D	Ds2A##A,c|jt|j}|j|j	t
t||j	t
|jyr$)rRrr'r)rZr\nextrrds  rtestClosedIteratorDeadlockz&BZ2FileTest.testClosedIteratorDeadlocksKt}}%

*dD1*dnn5rct|jd5}|jt|j|j	|j
dddt
|jd5}|jt|j|j
dddy#1swY\xYw#1swYyxYw)Nwr
rr'rZr[rNr6rCrcrrar*rerQs   r	testWritezBZ2FileTest.testWrites
T]]C
(	"Di4JJtyy!	"$--
&	B!^AFFH5tyyA	B	B	"	"	B	Bs<B.14B:.B7:Cct|jd5}d}	|j|dz|dzdz}|sn|j||dz
}2	dddt	|jd5}|jt
|j|jdddy#1swY\xYw#1swYyxYw)NrrrWr r)rr'r6rNrCrcrra)r*rerrrQs     rtestWriteChunks10zBZ2FileTest.testWriteChunks10s
T]]C
(	DAii"ac2X.

3Q	$--
&	B!^AFFH5tyyA	B	B			B	Bs6B),4B5)B25B>cltj|jd}t|jdd5}|j|jdddt
|jd5}|j|j|dddy#1swYIxYw#1swYyxYw)Nrmr!rr)	rrGr6rr'rNrCrcra)r*expectedrerQs    r testWriteNonDefaultCompressLevelz,BZ2FileTest.testWriteNonDefaultCompressLevel
s<<		<;
T]]Cq
9	"TJJtyy!	"
$--
&	1!QVVXx0	1	1	"	"	1	1sB4!B*B'*B3ct|jd5}|jt|j|j	|j
ddd|jtjdgt|jd5}|jt|j|jdddy#1swY~xYw#1swYyxYw)Nrar)rr'rZr[
writelinesr4r\rCrcrrar6rs   rtestWriteLineszBZ2FileTest.testWriteLiness
T]]C
(	-Di9OODOO,	-
	
*doou=
$--
&	B!^AFFH5tyyA	B	B
	-	-	B	Bs<C4CCC%cXt|jd5}|jddddt|jd5}|jt|jd|jt|j
dgdddy#1swYlxYw#1swYyxYw)NrsabcrXa)rr'rNrZrirrds  rtestWriteMethodsOnReadOnlyFilez*BZ2FileTest.testWriteMethodsOnReadOnlyFiles
T]]C
(	DJJv	T]]C
(	@Dgtzz48gt?	@	@			@	@sBAB B B)c^t|jd5}|jt|j|j	|j
dddt|jd5}|jt|j|j	|j
dddt
|jd5}|jt|j|j
dzdddy#1swYxYw#1swYkxYw#1swYyxYw)Nrrrrrs   r
testAppendzBZ2FileTest.testAppend#s
T]]C
(	"Di4JJtyy!	"T]]C
(	"Di4JJtyy!	"$--
&	F!^AFFH5tyy1}E	F	F
	"	"	"	"	F	Fs#<D1<D7D#DD #D,c4|jt|j5}|jt|j
|jd|j
|j|jdddddy#1swYyxYwN)	rRrr'rZr[seekrcrar6rds  rtestSeekForwardzBZ2FileTest.testSeekForward-sp
T]]
#	;ti3IIcNTYY[$))CD/:	;	;	;sABBcd|jdt|j5}|jt|j
|jt
|jdz|j|j|jdddddy#1swYyxYw)Nrrnr)
rRrr'rZr[rrsr6rcrards  rtestSeekForwardAcrossStreamsz(BZ2FileTest.testSeekForwardAcrossStreams4sA&
T]]
#	;ti3IIc$))ns*+TYY[$))CD/:	;	;	;sA5B&&B/c|jt|j5}|jd|j	dd|j|j|jdddddy#1swYyxYwNijr i^)rRrr'rarrcr6rds  rtestSeekBackwardszBZ2FileTest.testSeekBackwards;sk
T]]
#	?tIIcNIIdATYY[$))GH*=>	?	?	?sABB	c|jdt|j5}t|jdz}|dkDr#|t|j|z}|dkDr#|j
dd|j|j|jdd|jzdddy#1swYyxYw)Nrrnrrrr i)rRrr'rsr6rarrc)r*rereadtos   rtestSeekBackwardsAcrossStreamsz*BZ2FileTest.testSeekBackwardsAcrossStreamsBsA&
T]]
#	Kt^c)F1*#dii/001*IIdATYY[$))GH*=		*IJ	K	K	KsAB>)AB>>Cc"|jt|j5}|jdd|j	|j|jt|jdz
ddddy#1swYyxYw)Nrrr)rRrr'rrcrar6rsrds  rtestSeekBackwardsFromEndz$BZ2FileTest.testSeekBackwardsFromEndKsr
T]]
#	JtIIdATYY[$))C		N34F4G*HI	J	J	JsABBc|jdt|j5}|jdd|j	|j|jdzdddddy#1swYyxYw)Nrrni)rRrr'rrcrar6rds  r%testSeekBackwardsFromEndAcrossStreamsz1BZ2FileTest.testSeekBackwardsFromEndAcrossStreamsQsmA&
T]]
#	CtIIeQTYY[499q=%&*AB	C	C	CsAA44A=c@|jt|j5}|jd|j	|jt
|j|j	|jddddy#1swYyxYwNIr	rRrr'rrctellrsr6rards  rtestSeekPostEndzBZ2FileTest.testSeekPostEndWsq
T]]
#	/tIIfTYY[#dii.9TYY[#.	/	/	/sA%BBcJ|jdt|j5}|jd|j	|jt
|jdz|j	|jddddy#1swYyxYwNrmrnrrrrds  rtestSeekPostEndMultiStreamz&BZ2FileTest.testSeekPostEndMultiStream^s{A&
T]]
#	/tIIfTYY[#dii.1*<=TYY[#.	/	/	/sA(BB"cb|jt|j5}|jd|jd|j	|jt
|j|j	|jddddy#1swYyxYwrrrds  rtestSeekPostEndTwicez BZ2FileTest.testSeekPostEndTwicees}
T]]
#	/tIIfIIfTYY[#dii.9TYY[#.		/	/	/sA6B%%B.cl|jdt|j5}|jd|jd|j	|jt
|jdz|j	|jddddy#1swYyxYwrrrds  rtestSeekPostEndTwiceMultiStreamz+BZ2FileTest.testSeekPostEndTwiceMultiStreammsA&
T]]
#	/tIIfIIfTYY[#dii.1*<=TYY[#.		/	/	/sA9B**B3c.|jt|j5}|jd|j	|jd|j	|j
|jdddy#1swYyxYw)NrrrRrr'rrcrrar6rds  rtestSeekPreStartzBZ2FileTest.testSeekPreStartusl
T]]
#	5tIIdOTYY[!,TYY[$))4	5	5	5sABBc8|jdt|j5}|jd|j	|jd|j	|j
|jdzdddy#1swYyxYw)Nrrnrrrrds  rtestSeekPreStartMultiStreamz'BZ2FileTest.testSeekPreStartMultiStream|suA&
T]]
#	9tIIdOTYY[!,TYY[$))a-8	9	9	9sABBcz|jt|jd5}t|}	|j	|j|j|j
	ddd|jtj
y#|j
wxYw#1swY?xYw)Nr)	rRrCr'rrcfilenor)rZr\)r*rawfres   r
testFilenozBZ2FileTest.testFilenos
$--
&	$4=D
  
>

		
*dkk2

		s"B1.B"B1B..B11B:cttt|j}	|j|j	|j|j|j	|j
|jt|jttd}	|j|j	|j
|jt|jt|j}d|_t|}	|j|j	|j
|jt|jy#|j
wxYw#|j
wxYw#|j
wxYw)Nrcy)NFrIrIrr<lambda>z*BZ2FileTest.testSeekable.<locals>.<lambda>sr)
rrr7rseekablerar)rZr\assertFalse)r*resrcs   rtestSeekablezBZ2FileTest.testSeekables!wtyy)*	OODMMO,IIKOODMMO,JJL*dmm4wy#&	T]]_-JJL*dmm4dii $s|	T]]_-JJL*dmm4#
JJL
JJL
JJLs$AE;3F+F%;F
F"%F7cZtt|j}	|j|j	|j|j|j	|j
|jt|jttd}	|j|j	|j
|jt|jy#|j
wxYw#|j
wxYwNr)
rrr7rreadablerar)rZr\rrds  rtestReadablezBZ2FileTest.testReadableswtyy)*	OODMMO,IIKOODMMO,JJL*dmm4wy#&	T]]_-JJL*dmm4
JJL
JJLAD3DDD*cZtt|j}	|j|j	|j|j|j	|j
|jt|jttd}	|j|j	|j
|jt|jy#|j
wxYw#|j
wxYwr)
rrr7rwritablerar)rZr\rrds  rtestWritablezBZ2FileTest.testWritableswtyy)*	T]]_-IIKT]]_-JJL*dmm4wy#&	OODMMO,JJL*dmm4
JJL
JJLrcp|jtdD]}t|j}~y)Ni')rRrangerr')r*ios   rtestOpenDelzBZ2FileTest.testOpenDels2u	A

&A	rc:|jttdy)Nz
/non/existent)rZrirr.s rtestOpenNonexistentzBZ2FileTest.testOpenNonexistents'7O<rcd}t|jd5}|j|dddt|j5}|j	}ddd|jdgt|j5}t
|j	}ddd|jdgy#1swYxYw#1swYsxYw#1swY5xYw)Ns,BZh91AY&SYb] !h3M<]BCe%trMsTest)rCr'rNrrrcr)r*rrQrelinesxliness      rtestReadlinesNoNewlinez"BZ2FileTest.testReadlinesNoNewlinesz
$--
&	!
GGDM	
T]]
#	%tNN$E	%	*
T]]
#	,t$..*+F	,'+			%	%	,	,s#B?C	C?CCC cd}t|jd5}|jddddt|jd}|j	|5	ddd|j	d	t|jd5}ddzddd|j	dy#1swYxYw#1swY]xYw#t
$rYZwxYw#1swYBxYw#t$rYywxYw)NrMsxxxrz4__enter__ on a closed file didn't raise an exceptionr rz1/0 didn't raise an exception)rr'rNr)failr\ZeroDivisionErrorr*rQs  rtestContextProtocolzBZ2FileTest.testContextProtocols
T]]D
)	Q
GGFO	DMM4(			N



IILM	7-
!


II56#		


		


 		s_B.CB:C8C!CC!.B7:C?C	CCCC!!	C-,C-c0ddzd}t|jd5fd}t|Dcgc]}tj|}}tj|5	ddddddycc}w#1swYxYw#1swYyxYw)N1irWrMcHtdD]}jyNrm)rrN)rrrQs rcompz'BZ2FileTest.testThreading.<locals>.comps!q"AGGDM"r)target)rr'r	threadingThreadr	
start_threads)r*nthreadsr
rthreadsrrQs     @@r
testThreadingzBZ2FileTest.testThreadingse|
T]]D
)	Q
"?DHoNy''t4NGN!//8

		O

		s4BA;B(B*B;BB		BBc|jt|jd}|dz}t|j5}|j||j
t||jd|d|j
|j|j|ddddt|j5}|j|j
t||jd|j
|j|jddddt|j5}|j|jtt||j
|jgdddy#1swYxYw#1swYxYw#1swYyxYw)Nrrr )
rRrsr4rr'rarcrr6rrrZ
StopIteration)r*linelenhalflenres    rtestMixedIterationAndReadsz&BZ2FileTest.testMixedIterationAndReadssidooa()Q,
T]]
#	?tIIgT$Z);GH)EFTYY[$))GH*=>	?T]]
#	BtMMOT$Z);<T]]_dooa.@A	BT]]
#	3tNNmT48T^^-r2	3	3	?	?	B	B	3	3s'A*F"
A&F.
AF:"F+.F7:Gcd}d}t|jd5}|j|dddt|jd5}|j|dddt|j5}|j|j	||zdddy#1swY{xYw#1swYWxYw#1swYyxYw)Nsfoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoosbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarrr)rr'rNrcra)r*data1data2res    rtestMultiStreamOrderingz#BZ2FileTest.testMultiStreamOrderings
T]]C
(	DJJu	
T]]C
(	DJJu	
T]]
#	9tTYY[%%-8	9	9						9	9s#B'B3:$B?'B03B<?Cc$|j}	|jd}t	d5}|j|jdddt	|d5}|j|j|jdddt	|d5}|j|j|jdddy#t$r|jdYwxYw#1swYxYw#1swYuxYw#1swYyxYw)Nasciiz%Temporary file name needs to be ASCIIrMr)	r'encodeUnicodeEncodeErrorskipTestrrNr7rcra)r*str_filenamebytes_filenamerQs    rtestOpenBytesFilenamez!BZ2FileTest.testOpenBytesFilenames}}	C)009N^T
*	a
GGDII	
^T
*	2aQVVXtyy1	2\4
(	2AQVVXtyy1	2	2"	CMMAB	C			2	2	2	2s4CC.+C:+DC+*C+.C7:DDcPtj|j}t|d5}|j	|j
dddt|d5}|j
|j|j
dddy#1swYIxYw#1swYyxYw)NrMr)pathlibPathr'rrNr7rcra)r*r'rQs   rtestOpenPathLikeFilenamez$BZ2FileTest.testOpenPathLikeFilename*s<<

.
Xt
$	
GGDII	
Xt
$	2QVVXtyy1	2	2			2	2sB+BBB%ctjdtdzd}|jt	|t
jtt|}|j|jdddtz}|j|jjj|dy)z-Decompressed data buffering should be limitedg>A	r!r z)Excessive amount of data was decompressedN)rrGint
assertLessrsrqrrrrrcrarassertLessEqual_bufferrawr)r*bombdecomp
max_decomps    rtestDecompressLimitedz!BZ2FileTest.testDecompressLimited1s||ECH,A|>D	<#;#;<'Q/,,
V^^//446
7	9rctt|j5}t|5}|jt|j
t
|j|j|jddd|j|jdddy#1swY-xYw#1swYyxYwr$)rr7rrZr[rarbrcr6rclosedr*biores   rtestReadBytesIOzBZ2FileTest.testReadBytesIO?s
TYY
	)3
9!!)TYY@  dii8
9
SZZ(		)	)
9
9	)	)s#B.AB"6#B."B+	'B..B7ct|j5}t|5}|j}|j	t|d|j
|jj||j|j|jddddddy#1swYxYw#1swYyxYwr)rr7rrrrsrr6rrcra)r*r9rers    rtestPeekBytesIOzBZ2FileTest.testPeekBytesIOFs
TYY
	93
9		##CJ2		 4 4U ;<  dii8	
9	9	9
9
9	9	9s#B?BB3"B?3B<	8B??Cct5}t|d5}|jt|j|j	|j
ddd|j
t|j|j
|j|jdddy#1swY`xYw#1swYyxYwr)rrrZr[rNr6rcrgetvaluerr7r8s   rtestWriteBytesIOzBZ2FileTest.testWriteBytesIONs
Y	)#c"
&d!!)TZZ8

499%
&
^CLLN;TYYGSZZ(	)	)
&
&	)	)s#
B?<B3AB?3B<	8B??CcTt|j5}t|5}|jt|j
|jd|j
|j|jddddddddy#1swYxYw#1swYyxYwr)	rr7rrZr[rrcrar6r8s   rtestSeekForwardBytesIOz"BZ2FileTest.testSeekForwardBytesIOVs
TYY
	?3
?!!)TYY7		#  diio>
?	?	?
?
?	?	?s#BABBB	BB'c8t|j5}t|5}|jd|j	dd|j|j|jddddddddy#1swYxYw#1swYyxYwr)rr7rrarrcr6r8s   rtestSeekBackwardsBytesIOz$BZ2FileTest.testSeekBackwardsBytesIO]s
TYY
	C3
C		#		$"  dii.AB
C	C	C
C
C	C	Cs#BAB3BB
		BBc~|jdd}tt|5}|jt|j
dddtt|5}|j
|jt|j|j|jt|j
ddddtdD]C}tt|d|5}|jt|j
ddddEy#1swYxYw#1swYgxYw#1swYhxYw)Nr )
r7rrrZEOFErrorrarcrsr6r)r*	truncatedrQrs    rtest_read_truncatedzBZ2FileTest.test_read_truncateddsIIdsO	
WY'
(	0Ah/	0
WY'
(	3AQVVC		N3TYY?h2	3r	7A2A/0
7A!!(AFFA6
7
7	7
	0	0	3	3

7
7s$!D!A D'."D3D$'D03D<	c8tjdgd}t||jz}tt	d5}|j|j
|||j|j|dddy#1swYyxYw)NQ)r rrYrmr)arrayrsitemsizerrrcrNr)r*qLENGTHrQs    rtest_issue44439zBZ2FileTest.test_issue44439qsuKK_-Q!**$
WY
$	/QWWQZ0QVVXv.	/	/	/s
ABBN)r r)Br0r1r2r3rRr^rfrjrorurxrzr|rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr	requires_working_threadingrrrr%r)r5r:r<r?rArCrIrQrIrrrKrKZsZ
	B52
935
9
0	.	2>
5
488@D@
D
6B
B1B@F;;?KJC////593545"5"=
,7*1002
3
3"	922	9)9)?C7/rrKcheZdZdZdZdZejee	dzddZ
dZy	)
BZ2CompressorTestct}|jt|j|j|j}||jz
}|j
t||jyr$)r
rZr[rGr6flushrcrr*bz2crs   rtestCompresszBZ2CompressorTest.testCompress{sX)T]]3}}TYY'

-tyy9rct}|jd}||jz
}|j||jyNr)r
rGrVrcr8rWs   rtestCompressEmptyStringz)BZ2CompressorTest.testCompressEmptyStrings;}}S!

t/rct}d}d}	|j|dz|dzdz}|sn||j|z
}|dz
}5||jz
}|j	t||jy)NrrrWr )r
r6rGrVrcr)r*rXrrrs     rtestCompressChunks10z&BZ2CompressorTest.testCompressChunks10s
))AbD!A#r*CDMM#&&D
FA	


-tyy9rrrsizememusecFt}d|z}	|j|}||jz
}d}tj	|}	|jt
|||jt
|jddd}y#d}wxYw#d}wxYw)Nxr)r
rGrVrrrcrsstrip)r*r`rXr
compresseds     rtestCompress4Gz BZ2CompressorTest.testCompress4Gsd{	t,J$**,&JD~~j)	SY-SD!12A6D
DDs$B
ABBB cttjdzD]>}|jt5tj
t
|ddd@y#1swYKxYwNr )rpickleHIGHEST_PROTOCOLrZr[dumpsr
r*protos  r
testPicklezBZ2CompressorTest.testPicklesY622Q67	5E""9-
5]_e4
5
5	5
5
5AA(	N)r0r1r2rYr\r^rskip_if_pgo_taskrrrfrnrIrrrTrTzsC:0:
S3Yq)* 5rrTceZdZdZdZdZdZdZeje
edzdd	Zd
Z
dZdZd
ZdZdZej&dZdZy)BZ2DecompressorTestc:|jttdy)N*)rZr[rr.s rtest_Constructorz$BZ2DecompressorTest.test_Constructors)_b9rct}|jt|j|j|j}|j||jyr$)rrZr[rr7rcr6r*bz2drs   rtestDecompressz"BZ2DecompressorTest.testDecompresssD )T__5tyy)tyy)rct}d}d}	|j|dz|dzdz}|sn||j|z
}|dz
}5|j||jy)NrrrWr )rr7rrcr6)r*rxrrrs     rtestDecompressChunks10z*BZ2DecompressorTest.testDecompressChunks10sp 
))AbD!A#r*CDOOC((D
FA	
tyy)rct}d}|j|j|z}|j||j|j|j
|y)Nsthis is unused data)rrr7rcr6unused_data)r*rxr}rs    rtestDecompressUnusedDataz,BZ2DecompressorTest.testDecompressUnusedDatasP ,tyy45tyy)));7rct}|j|j}|jt|jd|jt|jdy)Nsanythingr)rrr7rZrGrws   rtestEOFErrorz BZ2DecompressorTest.testEOFErrorsH tyy)(DOO[A(DOOS9rrgffffff
@r_ctd|}tj|}	||dz
|zdzz}tj	|}t}|j
|}|j||k(d}d}d}y#d}d}d}wxYw)Nir )minrandom	randbytesrrGrrr)r*r`	blocksizeblockrrerxdecompresseds        rtestDecompress4Gz$BZ2DecompressorTest.testDecompress4Gs($/	  +		 T!V	1A56Dd+J"$D??:6LOOLD01DJLDJLsAA<<BcttjdzD]>}|jt5tj
t
|ddd@y#1swYKxYwrh)rrirjrZr[rkrrls  rrnzBZ2DecompressorTest.testPicklesZ622Q67	7E""9-
7_.6
7
7	7
7
7roct}d}g}t|jdz
}|j|j	|jd|||j|j|jt|d||j|j	d||j|j|jt|d||j|j	|j|d||jt|d||jsM|j|j	d||jt|d||jsMdj|}|j||j|j|jdy)Nr@
max_lengthr)
rrsrHappendrrneeds_inputrcr/eofr5r<r})r*bzdroutlen_s     rtestDecompressorChunksMaxsizez1BZ2DecompressorTest.testDecompressorChunksMaxsizes
4==!B&

3>>$--"6-7"9	:)SWz2	

3>>#*>=>)SWz2	

3>>$--"6-7"9	:SR\:6''JJs~~cj~AB  SWz:''hhsmdmm,#.rct}g}|j|j|jdddd|j	|jdd|j	|j|jddd|j	|j|jdd|jdj||jy)Nrrrrrirrcrr7rr5r6r*rrs   rtest_decompressor_inputbuf_1z0BZ2DecompressorTest.test_decompressor_inputbuf_1s	
		$334(67:	<
	

3>>#q)*	

3>>$))C"4b9:	

3>>$))CD/23#		2rc$t}g}|j|j|jdddd|j	|jd|j	|j|jddd|j	|j|jddd|j	|j|jdd|jdj||jy)Nrrrir,rrs   rtest_decompressor_inputbuf_2z0BZ2DecompressorTest.test_decompressor_inputbuf_2s	
		$334(67:	<

3>>#&'	

3>>$))C"4a89	

3>>$))C"4a89	

3>>$))CD/23#		2rct}g}|j|j|jddd|j|j|jddd|j|j|jdd|j	dj||jy)Nrrmrr)rrrr7rcr5r6rs   rtest_decompressor_inputbuf_3z0BZ2DecompressorTest.test_decompressor_inputbuf_30s	

3>>$))DS/156	

3>>$))C"4a89	

3>>$))CD/23#		2rct}|jt|j|jdz|jt|j|jdzy)N)rrZ	Exceptionrr9)r*rs  rtest_failurez BZ2DecompressorTest.test_failure@sH)S^^T]]R5GH)S^^T]]R5GHrctjtd}t}|}t	dD]}|j|j
||z
ddy)NgettotalrefcountrrrW)delta)r
get_attributesysrr__init__assertAlmostEqual)r*rrrefs_beforers     rtest_refleaks_in___init__z-BZ2DecompressorTest.test_refleaks_in___init__Fs`"006HI&(s	ALLN	/1K?"Mrc|jtjtjt	dyr[)rcr__new__rbytesr.s r(test_uninitialized_BZ2Decompressor_crashz<BZ2DecompressorTest.test_uninitialized_BZ2Decompressor_crashOs+00A#EG,c	3rN)r0r1r2ruryr{r~rrrprrrrnrrrrr
refcount_testrrrIrrrrrrs:*
*8:
S3Ys+
 ,
 7
/>3,3*3 I
NN3rrrcHeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
Zy)CompressDecompressTestctj|j}|jt	||jyr$)rrGr6rcr)r*rs  rrYz#CompressDecompressTest.testCompressUs-||DII&-tyy9rcftjd}|j||jyr[)rrGrcr8r*rs  rr\z.CompressDecompressTest.testCompressEmptyStringYs$||C t/rcztj|j}|j||jyr$rrr7rcr6rs  rryz%CompressDecompressTest.testDecompress]s(~~dii(tyy)rcRtjd}|j|dyr[)rrrcrs  rtestDecompressEmptyz*CompressDecompressTest.testDecompressEmptyas ~~c"s#rcftj|j}|j|dyr[)rrr8rcrs  rtestDecompressToEmptyStringz2CompressDecompressTest.testDecompressToEmptyStringes$~~doo.s#rch|jttj|jddy)NrE)rZr\rrr7r.s rtestDecompressIncompletez/CompressDecompressTest.testDecompressIncompleteis"*cnndiioFrcb|jttj|jyr$)rZrirrr9r.s rtestDecompressBadDataz,CompressDecompressTest.testDecompressBadDatals'3>>4==Arctj|jdz}|j||jdzyrrrs  rtestDecompressMultiStreamz0CompressDecompressTest.testDecompressMultiStreamos0~~dii!m,tyy1}-rctj|j|jz}|j	||j
yr$rrr7r9rcr6rs  rtestDecompressTrailingJunkz1CompressDecompressTest.testDecompressTrailingJunkss1~~dii$--78tyy)rctj|jdz|jz}|j	||j
dzyrrrs  r%testDecompressMultiStreamTrailingJunkz<CompressDecompressTest.testDecompressMultiStreamTrailingJunkws9~~dii!mdmm;<tyy1}-rN)
r0r1r2rYr\ryrrrrrrrrIrrrrTs6:0*$$GB.*.rrcLeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
y)
OpenTestzTest the open function.c,tj|i|Sr$)rrC)r*argskwargss   rrCz
OpenTest.opensxx(((rcdD]}|dk(rt|j|j|j|5}|j|jdddt|jd5}t|j
}|j||jddd|j|jd5}|j|j
|jddd|j|jd5}|j|jdddt|jd5}t|j
}|j||jdzdddy#1swYHxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw)N)rMxbrrabrr
r'rCrNr6rrarcr*moderQ	file_datas    rtest_binary_modeszOpenTest.test_binary_modessv 	;Dt|t}}%4==$/
#1		"
#dmmT*
7a*16684	  DII6
74==$/
61  4995
64==$/
#1		"
#dmmT*
;a*16684	  DIIM:
;
;	;
#
#
7
7
6
6
#
#
;
;;F76F,+F9 G9GF)	,F6	9G	G	G	cdD]}|dk(rt|j|j|j|5}|j|jdddt|jd5}t|j
}|j||jddd|j|jd5}|j|j
|jddd|j|jd5}|j|jdddt|jd5}t|j
}|j||jdzdddy#1swYHxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw)N)rxrrrXrrrrs    rtest_implicit_binary_modesz#OpenTest.test_implicit_binary_modessv	;Ds{t}}%4==$/
#1		"
#dmmT*
7a*16684	  DII6
74==#.
6!  4995
64==#.
#!		"
#dmmT*
;a*16684	  DIIM:
;
;	;
#
#
7
7
6
6
#
#
;
;rc|jjd}|jdtj}dD]}|dk(rt|j|j|j|d5}|j|dddt|jd5}t|jjd}|j||ddd|j|jdd5}|j|j|ddd|j|jdd5}|j|dddt|jd5}t|jjd}|j||d	zdddy#1swYBxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw)
Nr
)wtxtrencodingrrtatr)r6decodereplacer(linesepr
r'rCrNrrarc)r*rtext_native_eolrrQrs      rtest_text_modeszOpenTest.test_text_modessyy(,,tRZZ8 	ADt|t}}%4==$A
Q

dmmT*
=a*16684;;GD	  O<
=4==$A
1Q  40
14==$A
Q

dmmT*
Aa*16684;;GD	  Oa,?@
A
A	A


=
=
1
1


A
As<:G*;G!G%G1>G=G	G"	%G.	1G:	=H	cldD]}t|jd|vrdnd}|j|j||5}	ddd|jt5|j|j|5}	ddddddy#1swYPxYw#1swY xYw#1swYxYw)N)rrrtutf-8r)r
r'rCrZFileExistsError)r*rrrQs    rtest_x_modezOpenTest.test_x_modes%	D4==!"%+w4H4==$B
a
""?3
YYt}}d3q

	



s0B B*=B?B*B	B'#B**B3	c|jt|jd5}|j|j	|j
ddd|jt|jd5}|j|j	|j
ddd|j
j
d}|jt|jdd5}|j|j	|dddy#1swYxYw#1swYxYw#1swYyxYw)NrXrrrrr)rCrr7rcrar6r)r*rQrs   rtest_fileobjzOpenTest.test_fileobjs
YYwtyy)3
/	21QVVXtyy1	2
YYwtyy)4
0	2AQVVXtyy1	2yy(
YYwtyy)4'Y
B	-aQVVXt,	-	-	2	2	2	2	-	-s#+D>+D)3!D5D&)D25D>c|jt|j|jd|jt|j|jd|jt|j|jdd|jt|j|jdd|jt|j|jdd	y)
Nwbtxbtrrrignore)errorsr)newline)rZr\rCr'r.s rtest_bad_paramszOpenTest.test_bad_paramss*))T]]E	;*))T]]E	;*))T]]D7		L*))T]]D		K*))T]]D$		Hrcr|jjd}|jdtj}|j|jdd5}|j|dddt|jd5}t|jjd}|j||ddd|j|jdd5}|j|j|dddy#1swYxYw#1swY]xYw#1swYyxYw)Nrrrz	utf-16-lerrr)r6rrr(rrCr'rNrrarc)r*rrrQrs     r
test_encodingzOpenTest.test_encodingsyy(,,tRZZ8
YYt}}d[Y
A	Q
GGDM	
$--
&	9!&qvvx077DIY8	9YYt}}d[Y
A	-QQVVXt,	-	-			9	9	-	-s$D
;D!+!D-D!D*-D6c0|j|jd5}|jdddd|j|jddd5}|j|j	ddddy#1swYRxYw#1swYyxYw)NrMsfoobarrrr)rrfoobar)rCr'rNrcrars  rtest_encoding_error_handlerz$OpenTest.test_encoding_error_handlers
YYt}}d
+	#q
GGM"	#
YYt}}dWXY
N	1QVVXx0	1	1	#	#	1	1sB!BB	Bcn|jjd}|j|jddd5}|j	|ddd|j|jddd5}|j|j
|gdddy#1swYSxYw#1swYyxYw)Nrrrr)rrr
)r6rrCr'rNrcr)r*rrQs   rtest_newlinezOpenTest.test_newlinesyy(
YYt}}dWdY
K	q
GGDM	
YYt}}dWdY
K	4qQ[[]TF3	4	4			4	4sB4"B+B(+B4N)r0r1r2r3rCrrrrrrrrrrIrrrr|s9);";$A&-H
-14rrc,tjyr$)r
reap_childrenrIrrtearDownModulersr__main__)*testrtest.supportrrrMunittestiorrr(rir=r%r'rrrrrr	test.support.os_helperr
rqr
import_modulerrr
rrrTestCaserrKrTrrrrrr0mainrIrr<module>r
s(+	


&))
"m!!%(77$1x  1h]/(]/@0505fd3(d3N%.X%.Pv4xv4rzHMMOr