python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_bz2.cpython-312.opt-2.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	eZdZ	gdZdj	eZdZdZdZdZ	e
dZeje
jj	eje
jj!edD]8Zeed	5Ze	ej+eee	d
z
Z	d
d
d
e	dkDs8nej1edZd
ZdZy
#1swY,xYw)BaseTest)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__
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	rceZdZ	d>dZdZdZdZdZdZdZ	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/Z1e2jfd0Z4d1Z5d2Z6d3Z7d4Z8d5Z9d6Z:d7Z;d8Z<d9Z=d:Z>d;Z?d<Z@y=)?BZ2FileTestct|jd5}|j|j|z|j|dddy#1swYyxYw)Nwb)rBr'writer6)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$	rQrr'rYrZreadfloatassertEqualr5r*bz2fs  rtestReadzBZ2FileTest.testReadmsc
T]]
#	5tiEG<TYY[$))4	5	5	5sABBc|jd|jt|j5}|j	t
|jdddy#1swYyxYw)NrrNrO)rQr8rr'rYOSErrorr`rcs  rtestReadBadFilezBZ2FileTest.testReadBadFilessPAdmm<
T]]
#	2tgtyy1	2	2	2s!AA&c(|jdt|j5}|jt|j
t
|j|j|jdzdddy#1swYyxYwNrNr_rcs  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_wxYwrk)
_compressionBUFFER_SIZElenr6rQrr'rYrZr`rarbr5)r*buffer_sizerds   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)rOrQr8rr'rbr`r5rcs  rtestReadTrailingJunkz BZ2FileTest.testReadTrailingJunksT4==1
T]]
#	5tTYY[$))4	5	5	5s+A&&A/c|jd|jt|j5}|j	|j|jdzdddy#1swYyxYw)Nrlrgrvrcs  rtestReadMultiStreamTrailingJunkz+BZ2FileTest.testReadMultiStreamTrailingJunksZAdmm<
T]]
#	9tTYY[$))a-8	9	9	9s.A**A3c|jt|j5}|jt|j
t
|j|jdddddy#1swYyxYw)Nrr)rQrr'rYrZr`rarbrcs  r	testRead0zBZ2FileTest.testRead0sa
T]]
#	0tiEG<TYYq\3/	0	0	0sAA::Bc|jt|j5}d}	|jd}|sn||z
}|j	||j
dddy#1swYyxYw)NrrVrQrr'r`rbr5r*rdtextstrs    rtestReadChunk10zBZ2FileTest.testReadChunk10sp
T]]
#	.tDiim	

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

T499q=1	2	2	2s=A..A7c|jt|j5}|j|j	d|j
dddddy#1swYyxYw)Nd)rQrr'rbr`r5rcs  rtestRead100zBZ2FileTest.testRead100sS
T]]
#	>tTYYs^TYYt_=	>	>	>/AA'cv|jt|j5}|j}|j	t|d|j
|jj||j|j|jdddy#1swYyxYwNr)rQrr'peekassertNotEqualrr
assertTruer5
startswithrbr`)r*rdpdatas   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)rQrr'r:rbrDr5rr)r*rdnbs    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$rQrr'rYrZreadliner3rbr*rdlines   rtestReadLinezBZ2FileTest.testReadLinesp
T]]
#	8ti=
8  $7
8	8	8	8sABBc(|jdt|j5}|jt|j
d|jdzD]"}|j|j|$	dddy#1swYyxYwrkrrs   rtestReadLineMultiStreamz#BZ2FileTest.testReadLineMultiStreamszA&
T]]
#	8ti=!+
8  $7
8	8	8	8sABBc|jt|j5}|jt|j
d|j
|j|jdddy#1swYyxYwr$rQrr'rYrZ	readlinesrbr3rcs  r
testReadLineszBZ2FileTest.testReadLinessf
T]]
#	@ti>T^^-t?	@	@	@sAA;;Bc|jdt|j5}|jt|j
d|j
|j|jdzdddy#1swYyxYwrkrrcs  rtestReadLinesMultiStreamz$BZ2FileTest.testReadLinesMultiStreamspA&
T]]
#	Dti>T^^-t/BC	D	D	DsABB	c|jt|j5}|jt	t||jdddy#1swYyxYwr$rQrr'rblistiterr3rcs  rtestIteratorzBZ2FileTest.testIteratorsR
T]]
#	@tT$t*-t?	@	@	@rc|jdt|j5}|jt	t||jdzdddy#1swYyxYwrkrrcs  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$)rQrr'r)rYr[nextrrcs  rtestClosedIteratorDeadlockz&BZ2FileTest.testClosedIteratorDeadlocksKt}}%

*dD1*dnn5rct|jd5}|jt|j|j	|j
dddt
|jd5}|jt|j|j
dddy#1swY\xYw#1swYyxYw)Nwr
rr'rYrZrMr5rBrbrr`r*rdrPs   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)NrrrVr r)rr'r5rMrBrbrr`)r*rdrrrPs     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)Nrlr!rr)	rrFr5rr'rMrBrbr`)r*expectedrdrPs    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'rYrZ
writelinesr3r[rBrbrr`r5rs   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)NrsabcrWa)rr'rMrYrhrrcs  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)	rQrr'rYrZseekrbr`r5rcs  rtestSeekForwardzBZ2FileTest.testSeekForward-sp
T]]
#	;ti3IIcNTYY[$))CD/:	;	;	;sABBcd|jdt|j5}|jt|j
|jt
|jdz|j|j|jdddddy#1swYyxYw)Nrrmr)
rQrr'rYrZrrrr5rbr`rcs  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^)rQrr'r`rrbr5rcs  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)Nrrmrrrr i)rQrr'rrr5r`rrb)r*rdreadtos   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)rQrr'rrbr`r5rrrcs  rtestSeekBackwardsFromEndz$BZ2FileTest.testSeekBackwardsFromEndKsr
T]]
#	JtIIdATYY[$))C		N34F4G*HI	J	J	JsABBc|jdt|j5}|jdd|j	|j|jdzdddddy#1swYyxYw)Nrrmi)rQrr'rrbr`r5rcs  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	rQrr'rrbtellrrr5r`rcs  rtestSeekPostEndzBZ2FileTest.testSeekPostEndWsq
T]]
#	/tIIfTYY[#dii.9TYY[#.	/	/	/sA%BBcJ|jdt|j5}|jd|j	|jt
|jdz|j	|jddddy#1swYyxYwNrlrmrrrrcs  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#1swYyxYwrrrcs  rtestSeekPostEndTwicez BZ2FileTest.testSeekPostEndTwicees}
T]]
#	/tIIfIIfTYY[#dii.9TYY[#.		/	/	/sA6B%%B.cl|jdt|j5}|jd|jd|j	|jt
|jdz|j	|jddddy#1swYyxYwrrrcs  rtestSeekPostEndTwiceMultiStreamz+BZ2FileTest.testSeekPostEndTwiceMultiStreammsA&
T]]
#	/tIIfIIfTYY[#dii.1*<=TYY[#.		/	/	/sA9B**B3c.|jt|j5}|jd|j	|jd|j	|j
|jdddy#1swYyxYw)NrrrQrr'rrbrr`r5rcs  rtestSeekPreStartzBZ2FileTest.testSeekPreStartusl
T]]
#	5tIIdOTYY[!,TYY[$))4	5	5	5sABBc8|jdt|j5}|jd|j	|jd|j	|j
|jdzdddy#1swYyxYw)Nrrmrrrrcs  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)	rQrBr'rrbfilenor)rYr[)r*rawfrds   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)NFrHrHrr<lambda>z*BZ2FileTest.testSeekable.<locals>.<lambda>sr)
rrr6rseekabler`r)rYr[assertFalse)r*rdsrcs   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rr6rreadabler`r)rYr[rrcs  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rr6rwritabler`r)rYr[rrcs  rtestWritablezBZ2FileTest.testWritableswtyy)*	T]]_-IIKT]]_-JJL*dmm4wy#&	OODMMO,JJL*dmm4
JJL
JJLrcp|jtdD]}t|j}~y)Ni')rQrangerr')r*ios   rtestOpenDelzBZ2FileTest.testOpenDels2u	A

&A	rc:|jttdy)Nz
/non/existent)rYrhr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%trLsTest)rBr'rMrrrbr)r*rrPrdlinesxliness      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)NrLsxxxrz4__enter__ on a closed file didn't raise an exceptionr rz1/0 didn't raise an exception)rr'rMr)failr[ZeroDivisionErrorr*rPs  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)N1irVrLcHtdD]}jyNrl)rrM)rrrPs rcompz'BZ2FileTest.testThreading.<locals>.comps!q"AGGDM"r)target)rr'r	threadingThreadr	
start_threads)r*nthreadsrrthreadsrrPs     @@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 )
rQrrr3rr'r`rbrr5rrrY
StopIteration)r*linelenhalflenrds    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'rMrbr`)r*data1data2rds    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 ASCIIrLr)	r'encodeUnicodeEncodeErrorskipTestrrMr6rbr`)r*str_filenamebytes_filenamerPs    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)NrLr)pathlibPathr'rrMr6rbr`)r*r'rPs   rtestOpenPathLikeFilenamez$BZ2FileTest.testOpenPathLikeFilename*s<<

.
Xt
$	
GGDII	
Xt
$	2QVVXtyy1	2	2			2	2sB+BBB%c	tjdtdzd}|jt	|t
jtt|}|j|jdddtz}|j|jjj|dy)Ng>A	r!r z)Excessive amount of data was decompressed)rrFint
assertLessrrrprqrrrbr`rassertLessEqual_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$)rr6rrYrZr`rarbr5rclosedr*biords   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)rr6rrrrrrr5rrbr`)r*r8rdrs    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rYrZrMr5rbrgetvaluerr6r7s   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)	rr6rrYrZrrbr`r5r7s   rtestSeekForwardBytesIOz"BZ2FileTest.testSeekForwardBytesIOVs
TYY
	?3
?!!)TYY7		#  diio>
?	?	?
?
?	?	?s#BABBB	BB'c8t|j5}t|5}|jd|j	dd|j|j|jddddddddy#1swYxYw#1swYyxYwr)rr6rr`rrbr5r7s   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 )
r6rrrYEOFErrorr`rbrrr5r)r*	truncatedrPrs    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 rrXrlr)arrayrritemsizerrrbrMr)r*qLENGTHrPs    rtest_issue44439zBZ2FileTest.test_issue44439qsuKK_-Q!**$
WY
$	/QWWQZ0QVVXv.	/	/	/s
ABBN)r r)Ar0r1r2rQr]rerirnrtrwryr{rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr	requires_working_threadingrrrr$r(r4r9r;r>r@rBrHrPrHrrrJrJZsZ
	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/rrJcheZdZdZdZdZejee	dzddZ
dZy	)
BZ2CompressorTestct}|jt|j|j|j}||jz
}|j
t||jyr$)r
rYrZrFr5flushrbrr*bz2crs   rtestCompresszBZ2CompressorTest.testCompress{sX)T]]3}}TYY'

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

t/rct}d}d}	|j|dz|dzdz}|sn||j|z
}|dz
}5||jz
}|j	t||jy)NrrrVr )r
r5rFrUrbr)r*rWrrrs     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
rFrUrrrbrrstrip)r*r_rWr
compresseds     rtestCompress4Gz BZ2CompressorTest.testCompress4Gsd{	t,J$**,&JD~~j)	SY-SD!12A6D
DDs$B
ABBB cttjdzD]>}|jt5tj
t
|ddd@y#1swYKxYwNr )rpickleHIGHEST_PROTOCOLrYrZdumpsr
r*protos  r
testPicklezBZ2CompressorTest.testPicklesY622Q67	5E""9-
5]_e4
5
5	5
5
5AA(	N)r0r1r2rXr[r]rskip_if_pgo_taskrrrermrHrrrSrSzsC:0:
S3Yq)* 5rrSceZdZdZdZdZdZdZeje
edzdd	Zd
Z
dZdZd
ZdZdZej&dZdZy)BZ2DecompressorTestc:|jttdy)N*)rYrZrr.s rtest_Constructorz$BZ2DecompressorTest.test_Constructors)_b9rct}|jt|j|j|j}|j||jyr$)rrYrZrr6rbr5r*bz2drs   rtestDecompressz"BZ2DecompressorTest.testDecompresssD )T__5tyy)tyy)rct}d}d}	|j|dz|dzdz}|sn||j|z
}|dz
}5|j||jy)NrrrVr )rr6rrbr5)r*rwrrrs     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)rrr6rbr5unused_data)r*rwr|rs    rtestDecompressUnusedDataz,BZ2DecompressorTest.testDecompressUnusedDatasP ,tyy45tyy)));7rct}|j|j}|jt|jd|jt|jdy)Nsanythingr)rrr6rYrFrvs   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	randbytesrrFrrr)r*r_	blocksizeblockrrdrwdecompresseds        rtestDecompress4Gz$BZ2DecompressorTest.testDecompress4Gs($/	  +		 T!V	1A56Dd+J"$D??:6LOOLD01DJLDJLsAA<<BcttjdzD]>}|jt5tj
t
|ddd@y#1swYKxYwrg)rrhrirYrZrjrrks  rrmzBZ2DecompressorTest.testPicklesZ622Q67	7E""9-
7_.6
7
7	7
7
7rnct}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)
rrrrGappendrrneeds_inputrbr.eofr4r;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)Nrrrrrirrbrr6rr4r5r*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)Nrrlrr)rrrr6rbr4r5rs   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)rrY	Exceptionrr8)r*rs  rtest_failurez BZ2DecompressorTest.test_failure@sH)S^^T]]R5GH)S^^T]]R5GHrctjtd}t}|}t	dD]}|j|j
||z
ddy)NgettotalrefcountrrrV)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	dyrZ)rbr__new__rbytesr.s r(test_uninitialized_BZ2Decompressor_crashz<BZ2DecompressorTest.test_uninitialized_BZ2Decompressor_crashOs+00A#EG,c	3rN)r0r1r2rtrxrzr}rrrorrrrmrrrrr
refcount_testrrrHrrrqrqs:*
*8:
S3Ys+
 ,
 7
/>3,3*3 I
NN3rrqcHeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
Zy)CompressDecompressTestctj|j}|jt	||jyr$)rrFr5rbr)r*rs  rrXz#CompressDecompressTest.testCompressUs-||DII&-tyy9rcftjd}|j||jyrZ)rrFrbr7r*rs  rr[z.CompressDecompressTest.testCompressEmptyStringYs$||C t/rcztj|j}|j||jyr$rrr6rbr5rs  rrxz%CompressDecompressTest.testDecompress]s(~~dii(tyy)rcRtjd}|j|dyrZ)rrrbrs  rtestDecompressEmptyz*CompressDecompressTest.testDecompressEmptyas ~~c"s#rcftj|j}|j|dyrZ)rrr7rbrs  rtestDecompressToEmptyStringz2CompressDecompressTest.testDecompressToEmptyStringes$~~doo.s#rch|jttj|jddy)NrD)rYr[rrr6r.s rtestDecompressIncompletez/CompressDecompressTest.testDecompressIncompleteis"*cnndiioFrcb|jttj|jyr$)rYrhrrr8r.s rtestDecompressBadDataz,CompressDecompressTest.testDecompressBadDatals'3>>4==Arctj|jdz}|j||jdzyrrrs  rtestDecompressMultiStreamz0CompressDecompressTest.testDecompressMultiStreamos0~~dii!m,tyy1}-rctj|j|jz}|j	||j
yr$rrr6r8rbr5rs  rtestDecompressTrailingJunkz1CompressDecompressTest.testDecompressTrailingJunkss1~~dii$--78tyy)rctj|jdz|jz}|j	||j
dzyrrrs  r%testDecompressMultiStreamTrailingJunkz<CompressDecompressTest.testDecompressMultiStreamTrailingJunkws9~~dii!mdmm;<tyy1}-rN)
r0r1r2rXr[rxrrrrrrrrHrrrrTs6:0*$$GB.*.rrcJeZdZ	dZdZdZdZdZdZdZ	dZ
d	Zd
Zy)OpenTestc,tj|i|Sr$)rrB)r*argskwargss   rrBz
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)rLxbrrabrr
r'rBrMr5rr`rbr*moderP	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)rxrrrWrrrrs    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)r5decodereplacer(linesepr
r'rBrMrr`rb)r*rtext_native_eolrrPrs      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'rBrYFileExistsError)r*rrrPs    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)NrWrrrrr)rBrr6rbr`r5r)r*rPrs   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)rYr[rBr'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)r5rrr(rrBr'rMrr`rb)r*rrrPrs     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)NrLsfoobarrrr)rrfoobar)rBr'rMrbr`rs  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
)r5rrBr'rMrbr)r*rrPs   rtest_newlinezOpenTest.test_newlinesyy(
YYt}}dWdY
K	q
GGDM	
YYt}}dWdY
K	4qQ[[]TF3	4	4			4	4sB4"B+B(+B4N)
r0r1r2rBrrrrrrrrrrHrrrr|s9);";$A&-H
-14rrc,tjyr$)r
reap_childrenrHrrtearDownModulersr__main__)*testrtest.supportrrrLunittestiorrr(rhr<r%r&rrrrrr	test.support.os_helperr
rpr
import_modulerrr
rrrTestCaserrJrSrqrrrr0mainrHrr<module>r	s(+	


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