python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_wsgiref.cpython-311.opt-2.pyc

eKu6ddlmZddlmZddlmZddlmZddlmZddl	m
Z
ddlmZddl
mZmZmZdd	lmZdd
lmZddlmZmZddlmZdd
lmZddlmZmZmZddlm Z ddl!m"Z"ddl#Z#ddl$Z$ddl%Z%ddl&Z&ddl'Z'ddlZGddeZ(GddeZ)dZ*dZ+e*dfdZ,dZ-GddeZ.GddeZ/Gdd eZ0Gd!d"eZ1Gd#d$e1Z2Gd%d&eZ3e4d'krej5dSdS)()mock)support)
socket_helper)NoLogRequestHandler)TestCase)setup_testing_defaults)Headers)BaseHandlerBaseCGIHandler
SimpleHandler)util)	validator)
WSGIServerWSGIRequestHandler)make_server)HTTPConnection)StringIOBytesIOBufferedReader)
BaseServer)python_implementationNceZdZ	dZdZdS)
MockServercZtj||||dSN)r__init__server_bind)selfserver_addressRequestHandlerClasss   E/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_wsgiref.pyrzMockServer.__init__s0D.2EFFFc^|j\}}||_||_|dSr)rserver_nameserver_port
setup_environ)rhostports   r!rzMockServer.server_bind!s6(
dr"N)__name__
__module____qualname__rrr"r!rrs5 r"rceZdZ	dZdZdS)MockHandlercF|j|_|j\|_|_dSr)request
connectionrfilewfilers r!setupzMockHandler.setup*s,!%
DJJJr"cdSrr,r4s r!finishzMockHandler.finish.sr"N)r)r*r+r5r7r,r"r!r.r.(s5!111




r"r.c$|dddgdgS)N200 OKContent-Typez
text/plainDatezMon, 05 Jun 2006 18:49:54 GMT
Hello, world!r,environstart_responses  r!	hello_apprB2s.N8%0
r"c|dddgd|d|d|dgdgS)	Nr9r:r<;HTTP_X_TEST_HEADERQUERY_STRING	PATH_INFO
iso-8859-1)joinencoder?s  r!
header_apprK:slN8&1
HH$%w~'>

vlr"sGET / HTTP/1.0

ctdd|tt}tt	|}t	}t
j}tx}t
_	|||fd|t
_n#|t
_wxYw|	|	fS)NP)	127.0.0.1i")
rrr.rrsysstderrrfinish_requestgetvalue)appdataserverinpoutolderrerrs       r!	run_amockr[Es
Rj+
>
>F

'
'C
))C
ZFzz!C#*sCj*<===

V
<<>>3<<>>))s/BB"c	|}t||urt|D]}t||kst	t|td|#t$rYdSwxYw)NzToo many items from .__next__())iterAssertionErrornext
StopIteration)make_itmatchititems    r!compare_generic_iterreTsG
B88r>>!!Bxx4   DR>CCC



sA##
A10A1cReZdZddZdZdZdZdZdZdZ	d	Z
d
ZdZdZ
d
S)IntegrationTestsTctdztjdz}||d|zdz|rdpdzdzddS)	N/rz(HTTP/1.0 200 OK
Server: WSGIServer/0.2 zA
Content-Type: text/plain
Date: Mon, 05 Jun 2006 18:49:54 GMT
zContent-Length: 13
rMz
Hello, world!rH)rrPversionsplitassertEqualrJ)rrX
has_lengthpyvers    r!check_hellozIntegrationTests.check_helloks&((3.!!##A&'&(-.066
55
;	=

$VL11	
	
	
	
	
r"cRt\}}||dSr)r[rorrXrZs   r!test_plain_helloz!IntegrationTests.test_plain_helloxs);;Sr"cd}tt|\}}||dddS)NsmGET /p%61th/?query=test HTTP/1.0
X-Test-Header: Python test 
X-Test-Header: Python test 2
Content-Length: 0

s+Python test,Python test 2;query=test;/path/)r[rKrl
splitlines)rr0rXrZs    r!test_environzIntegrationTests.test_environ|sX
%	Z11SNNR :	
	
	
	
	
r"ctdddzzdz\}}||dddS)NsGET xis HTTP/1.0

rUrs!HTTP/1.0 414 Request-URI Too Long)r[rlrurqs   r!test_request_lengthz$IntegrationTests.test_request_lengths['TE\":=M"MNNNS))!,=	?	?	?	?	?r"c|ttt\}}||ddS)NF)rm)r[rrBrorqs   r!test_validated_helloz%IntegrationTests.test_validated_hellos:Yy1122S/////r"cd}tt|\}}||d||dddS)Nc |dddgS)Nr9r:z
Hello, world!r,r?s  r!bad_appz>IntegrationTests.test_simple_validation_error.<locals>.bad_appsN8%BCCC#$$r";A server error occurred.  Please contact the administrator.z^AssertionError: Headers (('Content-Type', 'text/plain')) must be of type list: <class 'tuple'>r[r
assertTrueendswithrlrurrrXrZs    r!test_simple_validation_errorz-IntegrationTests.test_simple_validation_errors	%	%	%Yw//00SJ

				
NNR 
0	
	
	
	
	
r"cbd}gd}|D]\}}||5t||\}}||d||d|dddn#1swxYwYdS)Ncfd}|S)Nc$|dgdgS)Nr;ztext/plain; charset=utf-8r>r,)r@rAstatuss  r!rzWIntegrationTests.test_status_validation_errors.<locals>.create_bad_app.<locals>.bad_apps"v(U'VWWW())r"r,)rrs` r!create_bad_appzFIntegrationTests.test_status_validation_errors.<locals>.create_bad_apps#
*
*
*
*
*Nr"))200z4AssertionError: Status must be at least 4 characters)z20X OKz8AssertionError: Status message must begin w/3-digit code)200OKz;AssertionError: Status message must have a space after code)rrr)subTestr[rrrlru)rrtestsrexc_messagerXrZs       r!test_status_validation_errorsz.IntegrationTests.test_status_validation_errorss,			


$)	D	DFKV,,
D
D$^^F%;%;<<SR!!  !1!1"!5{CCC
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D	D	DsA2B##B'	*B'	cd}tt|\}}||d||dddS)NcV|d|ddgdgS)N
wsgi.inputr9rdata)readess  r!rz1IntegrationTests.test_wsgi_input.<locals>.bad_apps6
lO  """
AhFGHHH9r"rrr^rrs    r!test_wsgi_inputz IntegrationTests.test_wsgi_inputs			Yw//00SJ

				
NNR "2	
	
	
	
	
r"cd}tt|\}}||dtjdd}td}|dz|z}|	d|zdz|dS)Nc$|dddgdgS)Nr9rr=zWed, 24 Dec 2008 13:29:32 GMTrr,rs  r!rTz3IntegrationTests.test_bytes_validation.<locals>.apps-
Ah=9


9r"z"GET / HTTP/1.0" 200 4
rascii/s(HTTP/1.0 200 OK
Server: WSGIServer/0.2 sV
Content-Type: text/plain; charset=utf-8
Date: Wed, 24 Dec 2008 13:29:32 GMT

data)
r[rrrrPrjrkrJrrl)rrTrXrZverpyrns       r!test_bytes_validationz&IntegrationTests.test_bytes_validations			Ys^^,,S%?@@AAAk!!!$++G44#%%,,W55T	C+,125					r"cd}tt|d\}}|dtjddddg|dS)	NcV|dddg|ddgS)Nr9r:rrGlatin1rJrs  r!rTz-IntegrationTests.test_cp1252_url.<locals>.apps@
Ah.9


kN))(3344r"sGET /%80 HTTP/1.0rysHTTP/1.0 200 OKsContent-Type: text/plains#Date: Wed, 24 Dec 2008 13:29:32 GMTr"s/)r[rrlrANYru)rrTrXrZs    r!test_cp1252_urlz IntegrationTests.test_cp1252_urls	5	5	5cNN!9;;;S"+6


NN										r"c	
tjtd	d}Gddtt}ttjd|||j	tjfd}tjtj|}|tjtj|d
tj
	
fd}tj|	}|||
tjd
z
dS)Npthread_killc:|dgdtjzgS)Nr9)r
SOCK_MAX_SIZEr?s  r!rTz4IntegrationTests.test_interrupted_write.<locals>.apps%N8R(((G1122r"ceZdZdS)<IntegrationTests.test_interrupted_write.<locals>.WsgiHandlerNr)r*r+r,r"r!WsgiHandlerrDr"rr)
handler_classc0dSr)set)signumframeinterrupteds  r!signal_handlerz?IntegrationTests.test_interrupted_write.<locals>.signal_handlersOOr"ctj}|dd|5}|d	t
jtdrn;t|dddn#1swxYwY|
dS)NGETridT)timeout)rrr0getresponsersignalSIGUSR1waitfloatlenclose)httpresponsermain_threadrreceivedrVs  r!
run_clientz;IntegrationTests.test_interrupted_write.<locals>.run_clients!6#89DLL$$$!!##
0x

c""" Lfn==="''a'99
x}}//
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
JJLLLLLsA3B99B=B=)targetr)r
get_attributerrrrrHOST
addCleanupserver_close	threadingEventr	get_identThreadstarthandle_requestrIrlr)rrTrroriginalr
backgroundrrrrrVs       @@@@@r!test_interrupted_writez'IntegrationTests.test_interrupted_writes,V^DD	3	3	3					-/A			]/C{SSS+,,,o''					=@@
v~x@@@)++									$%Z888
7#83#>?????r"N)T)r)r*r+rorrrvrzr|rrrrrrr,r"r!rgrgis






???
000



DDD*


*./@/@/@/@/@r"rgcleZdZdZddZdZdZddZdZd	Z	d
Z
dZdZd
Z
dZdZdZdZdS)UtilityTestsc||d}tj||tj||||d|||d||S)NSCRIPT_NAMErGrGr)r
rrlshift_path_info)rsn_inpi_inpartsn_outpi_outenvs       r!
checkShiftzUtilityTests.checkShift#s|"u55#C(((-c224888[)&111]+F333
r"Nci}tj|t|tr"|||tnSt|t
r"|||t
n||||||i}tj|||||dSr)r
r
isinstancerassertIsInstancerrlassertIs)rkeyvaluealtrs     r!checkDefaultzUtilityTests.checkDefault+s#C(((eX&&	.!!#c(H5555
g
&
&	.!!#c(73333SXu---3i#C(((

c#h$$$$$r"cftj|||||dSr)r
rrl)rrrkws    r!checkCrossDefaultzUtilityTests.checkCrossDefault;s3#B'''C'''''r"c~tj||tj||dSr)r
rrlapplication_uri)rurirs   r!checkAppURIzUtilityTests.checkAppURI?s:#B'''-b11#66666r"rctj||tj|||dSr)r
rrlrequest_uri)rrqueryrs    r!checkReqURIzUtilityTests.checkReqURICs<#B''')"U33C88888r"c2||fd}t|||}||jj|D]}||jj|||jjdS)NcFtjt||Sr)r
FileWrapperr)textsizes  r!raz%UtilityTests.checkFW.<locals>.make_itIs#HTNN4888r")reassertFalsefilelikeclosedrr)rrrrbrarcrds       r!checkFWzUtilityTests.checkFWGs4	9	9	9	9	WU+++
WYY+,,,		D+,,,



*+++++r"c|ddddd|ddddd|ddddd|ddddd|dd	ddddS)
NrMriz/xx/az/x/yz/a/x/yz/x/rr4s r!testSimpleShiftszUtilityTests.testSimpleShiftsYs3C,,,4dB///Bc2...VS&$777US&#66666r"c,|ddddd|ddddd|dddd	d|dd
dd	d|dddd	d|dd
dd	d|ddddd|ddddd|ddddd|ddddd|ddddddS)Nz/a/bz/../yz..rrrMz//yyz/a/b/yz//y/riz/./yz/./y/z///./..//y/.//z/y/z///z/a/b/z/.//z/x//rz/a/b/xz/.rr4s r!testNormalizedShiftsz!UtilityTests.testNormalizedShifts`s'tT:::GT2t444sHb999Xs;;;Xr:::h<<< 0$eDDDr7B777GR888Xs;;;dFB77777r"cddddddddd	d
ddtfd
tfdfD]\}}|||dS)N)SERVER_NAMErO)SERVER_PORT80)SERVER_PROTOCOLHTTP/1.0)	HTTP_HOSTrO)REQUEST_METHODr)rrM)rGri)wsgi.versionrr)
wsgi.run_oncer)wsgi.multithreadr)wsgi.multiprocessrrwsgi.errors)wsgi.url_schemer)rrr)rrrs   r!testDefaultszUtilityTests.testDefaultsmsx'!*%$# #$
799%
HJJ'&
	)	)JC 
c%((((!	)	)r"cV|ddd|ddd|ddd|ddd	|dd
d|dd
d|ddddS)Nrzfoo.barr
rhttpsonHTTPS1yesrfoorr443)rr4s r!testCrossDefaultszUtilityTests.testCrossDefaultss{9KKK0tDDD0sCCC0uEEE0eDDD}T>>>}U>>>>>r"c|tjid|tjddid|tjddid|tjddid|tjddiddS)Nrr!r$rrr#r")rlr
guess_schemer4s r!testGuessSchemezUtilityTests.testGuessSchemes*2..777*GE?;;VDDD*GD>::GDDD*GE?;;WEEE*GC=997CCCCCr"cx|d|dd|dd|ddd	
|dd
|ddd|dd|ddddS)Nhttp://127.0.0.1/http://127.0.0.1/spam/spamrhttp://127.0.0.1/sp%E4m/spämzhttp://spam.example.com:2071/zspam.example.com:20712071)rrzhttp://spam.example.com/zspam.example.comrrO)rr
zhttps://127.0.0.1/rr zhttp://127.0.0.1:8000/8000)rr)rr4s r!testAppURIszUtilityTests.testAppURIss,---0gFFF2
KKK8-6		C	C	C3*		,	,	,,!/A		C	C	C-T:::1v						r"c|d|dd|dd|ddd	|d
dd	|ddd	|d
dd	|dddd|dddd|ddddddS)Nr+r,r-r.r/r0zhttp://127.0.0.1/spammity/spamz	/spammityrz http://127.0.0.1/spammity/sp%E4mz"http://127.0.0.1/spammity/spam;hamz	/spam;hamz/http://127.0.0.1/spammity/spam;cookie=1234,5678z/spam;cookie=1234,5678z%http://127.0.0.1/spammity/spam?say=nizsay=ni)rrGrFz'http://127.0.0.1/spammity/spam?s%E4y=nizs%E4y=nir)rr4s r!testReqURIszUtilityTests.testReqURIsso,---0gFFF2
KKK9#w		8	8	8;#z		;	;	;=#{		<	<	<J#/G		I	I	I@#wH		N	N	NB#wJ		P	P	P91#wH		N	N	N	N	Nr"c8|ddddgdS)Nږxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxxxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyz)rr4s r!testFileWrapperzUtilityTests.testFileWrappers#XsXh$788888r"cdD]h}||||fD])}|tj|*idD]h}||||fD])}|tj|*idS)NzbConnection Keep-Alive Proxy-Authenticate Proxy-Authorization TE Trailers Transfer-Encoding Upgradez4Accept Cache-Control Date Pragma Trailer Via Warning)rktitleupperlowerrr

is_hop_by_hopr)rhoprs   r!testHopByHopzUtilityTests.testHopByHops
4
%''	9	9CCIIKKciikkA
9
9 23 7 78888
9

C
%''	:	:CCIIKKciikkA
:
:  !3C!8!89999
:	:	:r"r)r)r)r*r+rrrrrrrrrr&r)r3r5r;rBr,r"r!rr!s%%%% (((7779999,,,$777888)))&???DDDNNN&999
:
:
:
:
:r"rc eZdZdZdZdZdS)HeaderTestsc	dg}|ttd|ttgd|tt|ddd|t|dddg|t|dddg|t|dd||t||t}|d=d|d<|j|j|j	|j
fD]z}||d||d||d	||d{||ddd
|d<||d	d
||	dd
g||ddd
||ddd||
ddd
||
ddd||dd
||dddS)
N)rr
rrrr
r$barFooFOObazwheezoo)rlrr	keysvaluesitemsassertIsNot__contains__getget_all__getitem__rr
setdefault)rtesthms    r!testMappingInterfacez HeaderTests.testMappingInterfaces{WYY+++WR[[))!,,,WT!!!W--..q111aaa))..003%888aaa))0022SE:::aaa))//114888,,..555II
eH%	1=@	'	'AOOAAeHH%%%OOAAeHH%%%OOAAeHH%%%QQuXX&&&&5%(((%5%(((5))5'222uV,,e444uV,,f555eF33U;;;eF33V<<<5%(((5&)))))r"cH|ttddS)Nr$)assertRaises	TypeErrorr	r4s r!testRequireListzHeaderTests.testRequireLists )We44444r"ct}|t|d|ddd||dd|t|d|ddd	||ddd
g|t|ddS)Nz
r$rFspam)rIzbar; baz="spam"zfoo: bar; baz="spam"

rG)cheesezbar; cheesez*foo: bar; baz="spam"
Foo: bar; cheese

)r	rlstr
add_headerrRrrVs  r!
testExtraszHeaderTests.testExtrassIIQ'''	U5V,,,5#4555Q >???	U5---5))

.	0	0	0	
Q
	
	
	
	
	
r"N)r)r*r+rXr\rcr,r"r!rDrDsB***@555




r"rDcZeZdZ	eejZdZdS)ErrorHandlerc	t|tj|ttt	|dddS)NT)multithreadmultiprocess)rrrrr)rrs  r!rzErrorHandler.__init__sPr"""'))WYY

B4	
	
	
	
	
	
r"N)	r)r*r+dictosr@rN
os_environrr,r"r!reresE9
bj&&(())J




r"receZdZ	dZdS)TestHandlercrr,r4s r!handle_errorzTestHandler.handle_errors
r"N)r)r*r+ror,r"r!rmrm	s&Kr"rmc`eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdS)HandlerTestsicxdddddd}tjtd|5tdd	
}|dddn#1swxYwYdD]7}|t|d|z|jd
|z8i}t||D]\}}||vr|||<|	dd	dd|
|dddddtj
d||j|dS)Nz/my/homez/my/pathzfr_FR.UTF-8test_script_nametest_server_name)HOMEPATHLANGrr
rkYz/override/home)Xru)rjrgrhrun_oncefile_wrapperwsgi_zwsgi.rMrOrFrT)ryrurr
rrrrrrrzwsgi.file_wrapper)r	swap_attrrmr&rlgetattrr@rrNupdate	get_stdin
get_stderrr
rassertDictEqual)rrkhandlerattrexpectedrrs       r!testEnvironzHandlerTests.testEnvirons!.-	
	


{L*
E
E	$	$!C.>???G!!###	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$%	>	>DWWgn==$_Wt^<
>
>
>
>x(((%**,,	&	&JC("" %
$&"++--"--//""% $!%!%!1%

			(	
W_h77777s&AAActdddi}|dD]}|||jdS)N)rrr)rr&assertInr@)rrVrs   r!testCGIEnvironzHandlerTests.testCGIEnvironJsW4T"--	A	*	*CMM#qy))))	*	*r"ctd}|||jddt}|||jdddS)Nrr rrr)rmr&rlr@rbs  r!
testSchemezHandlerTests.testSchemePs{
D
!
!
!1??#4#4#4#45g>>>
--***#45f=====r"ct}dD]+}|tt||,|t|jddS)N)_flushrradd_cgi_varsrU)r
rZNotImplementedErrorr~_write)rrVnames   r!testAbstractMethodsz HandlerTests.testAbstractMethodsVscMM
	D	DD
171T??CCCC-qx@@@@@r"cd}d}d}d}t}||||jddt}||||jddt}||||jdt}||||jd	dS)
NcR|dg|ddgSNr9rrHrrs  r!trivial_app1z4HandlerTests.testContentLength.<locals>.trivial_app1as.
AhrNNN'(//==>>r"cb|dg|ddgSrrrs  r!trivial_app2z4HandlerTests.testContentLength.<locals>.trivial_app2es5AAhrNN1./66|DDEEEIr"cF|dgddgS)Nr9uтестzutf-8rrs  r!trivial_app3z4HandlerTests.testContentLength.<locals>.trivial_app3is(
AhrNNN.55g>>??r"c |ddggS)Nr9)zContent-Length12345r,rs  r!trivial_app4z4HandlerTests.testContentLength.<locals>.trivial_app4ms
Ah34555Ir"z)Status: 200 OK
Content-Length: 4

httprHzStatus: 200 OK

https-Status: 200 OK
Content-Length: 8

тестs)Status: 200 OK
Content-Length: 12345

)rmrunrlstdoutrSrJ)rrrrrrVs      r!testContentLengthzHandlerTests.testContentLength^s	?	?	?				@	@	@			

MM	l**,,F<((		*	*	*
MM	l**,,F<((	*	*	*

MM	l**,,
0	1	1	1
MM	l**,,
					r"cd}d}t}||||jdd||jdt}||||jd|jt|j	fzd|j	z|
d|jdS)Nc|dggSNr9r,rs  r!
non_error_appz8HandlerTests.testBasicErrorOutput.<locals>.non_error_app
AhrNNNIr"c td)N This should be caught by handlerr^rs  r!	error_appz4HandlerTests.testBasicErrorOutput.<locals>.error_apps !CDDDr"%Status: 200 OK
Content-Length: 0

rHrMz<Status: %s
Content-Type: text/plain
Content-Length: %d

r^)rerrlrrSrJrQerror_statusr
error_bodyr)rrrrVs    r!testBasicErrorOutputz!HandlerTests.testBasicErrorOutputsH				E	E	E
NN	m**,,F<((	*	*	*	
**,,R000NN	i**,,nS%6%678:@9M9Ml	
				


&(9(9(;(;<<<<<r"c<dfd}t}||||jddz|d|jdS)NSome output has been sentcL|dgtd)Nr9rr)rrMSGs  r!rz4HandlerTests.testErrorAfterOutput.<locals>.error_apps,AAhrNN3 !CDDDr"zStatus: 200 OK

rHr^)rerrlrrSrJrrQ)rrrVrs   @r!testErrorAfterOutputz!HandlerTests.testErrorAfterOutputs*	E	E	E	E	E
NN	i**,,6,'',	.	.	.	


&(9(9(;(;<<<<<r"c
2d}d}dd}dD]x}|rd|zpd}dD]h}d	D]a}t|
}d|_||_||_|||||jt|
}d|_||_||_|||d
kr.||jd|	tj|||fzd|j|||fzd|jfcjzdS)Nc|dggSrr,rs  r!rz5HandlerTests.testHeaderFormats.<locals>.non_error_apprr"zfHTTP/%s 200 OK\r\nDate: \w{3}, [ 0123]\d \w{3} \d{4} \d\d:\d\d:\d\d GMT\r\n%sContent-Length: 0\r\n\r\nrrH)z
FooBar/1.0NzServer: %s
rM)z1.0z1.1)HTTP/0.9rzHTTP/1.1)rFTrr")rJrm
origin_serverhttp_versionserver_softwarerrlrrSrrerb)	rrstdpatshortpatsswswrjprotorVs	         r!testHeaderFormatszHandlerTests.testHeaderFormatss			

3	
@
&

	&		C/)C/52B'

?E#E:::A&+AO%,AN(+A%EE-((($$Xah.?.?.A.ABBB#E:::A&*AO%,AN(+A%EE-(((j(((():):)<)<SAAAAHfgb\&9%A%A,%O%O ! 1 1 3 355$gb\199,GG ! 1 1 3 35#
		r"cd}t}|||d|jdS)Nc"|ddgdgS)Nr9rrr,rs  r!rTz'HandlerTests.testBytesData.<locals>.apps*
Ah=


9r"sRStatus: 200 OK
Content-Type: text/plain; charset=utf-8
Content-Length: 4

data)rmrrlrrS)rrTrVs   r!
testBytesDatazHandlerTests.testBytesDatase			
MM	c




H	!	!	!	!	!r"cddidfd}t}|||dddS)Nclose_calledFrcl|dgGfddt}|S)Nr9c eZdZdZfdZdS)HHandlerTests.testCloseOnError.<locals>.error_app.<locals>.CrashyIterablec3.K	dVtd)NTsblahrrr4s r!__iter__zQHandlerTests.testCloseOnError.<locals>.error_app.<locals>.CrashyIterable.__iter__s$Q%


,-OPPPr"cdd<dS)NTrr,)rside_effectss r!rzNHandlerTests.testCloseOnError.<locals>.error_app.<locals>.CrashyIterable.closes37L000r"N)r)r*r+rr)rsr!CrashyIterablers@QQQ8888888r"r)object)rrrrrs   r!rz0HandlerTests.testCloseOnError.<locals>.error_appsaAAhrNN3
8
8
8
8
8
8
8
8
8
8">###r"T)rerrl)rrrVrrs   @@r!testCloseOnErrorzHandlerTests.testCloseOnErrorso&.*		$		$		$		$		$		$
NN	in5t<<<<<r"cttGfdd}ddi}tt|tj|}d}|t|5|tdddn#1swxYwY|	ddS)Nc eZdZfdZdZdS)4HandlerTests.testPartialWrite.<locals>.PartialWriterc`|dd}|t|S)N)extendr)rbpartialwrittens   r!writez:HandlerTests.testPartialWrite.<locals>.PartialWriter.write
s.BQB%w'''7||#r"cdSrr,r4s r!flushz:HandlerTests.testPartialWrite.<locals>.PartialWriter.flushsr"N)r)r*r+rr)rsr!
PartialWriterr	s=
$
$
$
$
$





r"rrrzshould not do partial writesssHTTP/1.0 200 OK
Content-Type: text/plain
Date: Mon, 05 Jun 2006 18:49:54 GMT
Content-Length: 13

Hello, world!)
	bytearrayrrrPrQassertWarnsRegexDeprecationWarningrrBrl)rrr@rVmsgrs     @r!testPartialWritezHandlerTests.testPartialWrites++										%j1'))]]__cj'JJ,

"
"#5s
;
;		
EE)															

					s0BBBcddi}tttfD]|5Gfdd}t	}tt
|||}|t|	|
dddn#1swxYwYdS)Nrr	exceptionceZdZfdZdS)EHandlerTests.testClientConnectionTerminations.<locals>.AbortingWritercrr,)rrrs  r!rzKHandlerTests.testClientConnectionTerminations.<locals>.AbortingWriter.write(s'r"Nr)r*r+rrsr!AbortingWriterr's.(((((((r"r)ConnectionAbortedErrorBrokenPipeErrorConnectionResetErrorrrrrrrBrrS)rr@rrQrVrs     @r! testClientConnectionTerminationsz-HandlerTests.testClientConnectionTerminationss)$j1" 
	4	4I
	22	
4	
4(((((((((("!'))^^-=-=vwOOi     !2!2333	
4	
4	
4	
4	
4	
4	
4	
4	
4	
4	
4	
4	
4	
4	
4	4	4sBCC	
C	cGddtGfdd}t}ddi}tt|||}|t
|d|||j	||j
||j||jdS)NceZdZdS)KHandlerTests.testDontResetInternalStateOnException.<locals>.CustomExceptionNrr,r"r!CustomExceptionr2rr"rceZdZfdZdS)JHandlerTests.testDontResetInternalStateOnException.<locals>.AbortingWritercrr,)rrrs  r!rzPHandlerTests.testDontResetInternalStateOnException.<locals>.AbortingWriter.write:s	%%r"Nr)rsr!rr9s.
&
&
&
&
&
&
&r"rrr)
ValueErrorrrrrrBrrSassertIsNotNoneresultheadersrr@)rrrQr@rVrs     @r!%testDontResetInternalStateOnExceptionz2HandlerTests.testDontResetInternalStateOnException1s$					j				&	&	&	&	&	&	&	&	&	&$j1'))^^%5%5vwGG	i

'):):;;;	
QX&&&QY'''QX&&&QY'''''r"N)r)r*r+maxDiffrrrrrrrrrrrrrr,r"r!rqrqsG484848l***>>>AAA000d===8===)))V!!! ===$2444$(((((r"rq__main__)6unittestrrUrtest.supportrtest.test_httpserversrrwsgiref.utilrwsgiref.headersr	wsgiref.handlersr
rrwsgirefr
wsgiref.validaterwsgiref.simple_serverrrrhttp.clientriorrrsocketserverrplatformrrjrrrPrrr.rBrKr[rergrrDrermrqr)mainr,r"r!<module>r	sc&&&&&&555555//////######GGGGGGGGGG&&&&&&@@@@@@@@------&&&&&&0000000000######******								












$


"7****DDD*u@u@u@u@u@xu@u@u@p`:`:`:`:`:8`:`:`:D5
5
5
5
5
(5
5
5
n









>





,x(x(x(x(x(8x(x(x(v	zHMOOOOOr"