Your IP : 216.73.216.213


Current Path : /opt/alt/python33/lib64/python3.3/test/__pycache__/
Upload File :
Current File : //opt/alt/python33/lib64/python3.3/test/__pycache__/test_wsgiref.cpython-33.pyc

�
��f\Wc@sddlmZddlmZddlmZddlmZddlm	Z	m
Z
ddlmZddl
mZddlmZmZmZdd	lmZdd
lmZmZmZddlmZddlmZdd
lZdd
lZdd
lZddlm Z Gdd�de�Z!Gdd�de�Z"dd�Z#e#ddd�Z$dd�Z%Gdd�de�Z&Gdd�de�Z'Gdd�de�Z(Gd d!�d!e
�Z)Gd"d#�d#e)�Z*Gd$d%�d%e�Z+d&d'�Z,e-d(kre,�nd
S()i(u
nested_scopes(uTestCase(usetup_testing_defaults(uHeaders(uBaseHandleruBaseCGIHandler(uutil(u	validator(u
WSGIServeruWSGIRequestHandlerudemo_app(umake_server(uStringIOuBytesIOuBufferedReader(u
BaseServer(upython_implementationN(usupportcBs2|EeZdZdZdd�Zdd�ZdS(u
MockServeruNon-socket HTTP servercCs!tj|||�|j�dS(N(u
BaseServeru__init__userver_bind(uselfuserver_addressuRequestHandlerClass((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyu__init__suMockServer.__init__cCs/|j\}}||_||_|j�dS(N(userver_addressuserver_nameuserver_portu
setup_environ(uselfuhostuport((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyuserver_binds		uMockServer.server_bindN(u__name__u
__module__u__qualname__u__doc__u__init__userver_bind(u
__locals__((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyu
MockServersu
MockServercBs2|EeZdZdZdd�Zdd�ZdS(uMockHandleruNon-socket HTTP handlercCs%|j|_|j\|_|_dS(N(urequestu
connectionurfileuwfile(uself((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyusetup$suMockHandler.setupcCsdS(N((uself((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyufinish(suMockHandler.finishN(u__name__u
__module__u__qualname__u__doc__usetupufinish(u
__locals__((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyuMockHandler"suMockHandlercCs|dddg�dgS(	Nu200 OKuContent-Typeu
text/plainuDateuMon, 05 Jun 2006 18:49:54 GMTs
Hello, world!(uContent-Typeu
text/plain(uDateuMon, 05 Jun 2006 18:49:54 GMT((uenvironustart_response((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyu	hello_app,s
u	hello_appsGET / HTTP/1.0

cCs�tdd|tt�}tt|��}t�}tj}t�}t_z|j||fd�Wd|t_X|j	�|j	�fS(NuiPu	127.0.0.1i�"(u	127.0.0.1i�"(
umake_serveru
MockServeruMockHandleruBufferedReaderuBytesIOusysustderruStringIOufinish_requestugetvalue(uappudatauserveruinpuoutuolderruerr((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyu	run_amock3s		
u	run_amockcCs|�}d}x1|D])}|||ks5t�n|d7}qWy||Wntk
rcYnXtd|��yttfWntk
r�Yn�X|�}t|�|k	r�t�nx)|D]!}t|�|ks�t�q�q�Wyt|�Wntk
rYnXtd|��dS(uUtility to compare a generic 2.1/2.2+ iterator with an iterable

    If running under Python 2.2+, this tests the iterator using iter()/next(),
    as well as __getitem__.  'make_it' must be a function returning a fresh
    iterator to be tested (since this may test the iterator twice).iiuToo many items from __getitem__uToo many items from .__next__()N(uAssertionErroru
IndexErroruiteru
StopIterationu	NameErrorunext(umake_itumatchuitunuitem((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyucompare_generic_iterAs4	
	

		


ucompare_generic_itercBsk|EeZdZddd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dS(uIntegrationTestscCsWt�dtjj�d}|j|d|d|r>dpAddjd��dS(	Nu/iu(HTTP/1.0 200 OK
Server: WSGIServer/0.2 uA
Content-Type: text/plain
Date: Mon, 05 Jun 2006 18:49:54 GMT
uContent-Length: 13
uu
Hello, world!u
iso-8859-1(upython_implementationusysuversionusplituassertEqualuencode(uselfuoutu
has_lengthupyver((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyucheck_hellohs
	uIntegrationTests.check_hellocCs t�\}}|j|�dS(N(u	run_amockucheck_hello(uselfuoutuerr((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutest_plain_hellousu!IntegrationTests.test_plain_hellocCs?tddddd�\}}|j|j�dd�dS(NudatasGET sxis HTTP/1.0

is!HTTP/1.0 414 Request-URI Too Long(u	run_amockuassertEqualu
splitlines(uselfuoutuerr((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutest_request_lengthys!u$IntegrationTests.test_request_lengthcCs/ttt��\}}|j|dd�dS(Nu
has_lengthF(u	run_amocku	validatoru	hello_appucheck_hellouFalse(uselfuoutuerr((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutest_validated_hello~su%IntegrationTests.test_validated_hellocCsXdd�}tt|��\}}|j|jd��|j|j�dd�dS(NcSs|dd�dgS(Nu200 OKuContent-Typeu
text/plainu
Hello, world!(uContent-Typeu
text/plain((uenvironustart_response((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyubad_app�s
u>IntegrationTests.test_simple_validation_error.<locals>.bad_apps;A server error occurred.  Please contact the administrator.iu^AssertionError: Headers (('Content-Type', 'text/plain')) must be of type list: <class 'tuple'>i����(u	run_amocku	validatoru
assertTrueuendswithuassertEqualu
splitlines(uselfubad_appuoutuerr((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutest_simple_validation_error�s

u-IntegrationTests.test_simple_validation_errorcCsXdd�}tt|��\}}|j|jd��|j|j�dd�dS(NcSs%|dj�|ddg�dgS(Nu
wsgi.inputu200 OKuContent-Typeutext/plain; charset=utf-8sdata(uContent-Typeutext/plain; charset=utf-8(uread(ueus((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyubad_app�su1IntegrationTests.test_wsgi_input.<locals>.bad_apps;A server error occurred.  Please contact the administrator.iuAssertionErrori����(u	run_amocku	validatoru
assertTrueuendswithuassertEqualu
splitlines(uselfubad_appuoutuerr((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutest_wsgi_input�s
u IntegrationTests.test_wsgi_inputcCs�dd�}tt|��\}}|j|jd��tjj�djd�}t�jd�}|d|}|j	d|d|�dS(	NcSs|dddg�dgS(	Nu200 OKuContent-Typeutext/plain; charset=utf-8uDateuWed, 24 Dec 2008 13:29:32 GMTsdata(uContent-Typeutext/plain; charset=utf-8(uDateuWed, 24 Dec 2008 13:29:32 GMT((ueus((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyuapp�s
u3IntegrationTests.test_bytes_validation.<locals>.appu"GET / HTTP/1.0" 200 4
iuasciis/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(
u	run_amocku	validatoru
assertTrueuendswithusysuversionusplituencodeupython_implementationuassertEqual(uselfuappuoutuerruverupyupyver((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutest_bytes_validation�su&IntegrationTests.test_bytes_validationNT(u__name__u
__module__u__qualname__uTrueucheck_helloutest_plain_helloutest_request_lengthutest_validated_helloutest_simple_validation_errorutest_wsgi_inpututest_bytes_validation(u
__locals__((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyuIntegrationTestsfs

uIntegrationTestscBs�|EeZdZdd�Zd dd�Zdd�Zdd�Zd	d
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd S(!uUtilityTestscCsfi|d6|d6}tj|�|jtj|�|�|j|d|�|j|d|�|S(NuSCRIPT_NAMEu	PATH_INFO(uutilusetup_testing_defaultsuassertEqualushift_path_info(uselfusn_inupi_inupartusn_outupi_outuenv((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyu
checkShift�s
uUtilityTests.checkShiftcCs�i}tj|�t|t�r9|j||t�n:t|t�r_|j||t�n|j|||�i||6}tj|�|j|||�dS(N(uutilusetup_testing_defaultsu
isinstanceuStringIOuassertIsInstanceuBytesIOuassertEqualuassertIs(uselfukeyuvalueualtuenv((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyucheckDefault�s


uUtilityTests.checkDefaultcKs%tj|�|j|||�dS(N(uutilusetup_testing_defaultsuassertEqual(uselfukeyuvalueukw((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyucheckCrossDefault�s
uUtilityTests.checkCrossDefaultcKs*tj|�|jtj|�|�dS(N(uutilusetup_testing_defaultsuassertEqualuapplication_uri(uselfuuriukw((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyucheckAppURI�s
uUtilityTests.checkAppURIicKs-tj|�|jtj||�|�dS(N(uutilusetup_testing_defaultsuassertEqualurequest_uri(uselfuuriuqueryukw((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyucheckReqURI�s
uUtilityTests.checkReqURIcCs�||dd�}t||�|�}|j|jj�x|D]}qBW|j|jj�|j�|j|jj�dS(NcSstjt|�|�S(N(uutiluFileWrapperuStringIO(utextusize((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyumake_it�su%UtilityTests.checkFW.<locals>.make_it(ucompare_generic_iteruassertFalseufilelikeucloseducloseu
assertTrue(uselfutextusizeumatchumake_ituituitem((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyucheckFW�s
	

uUtilityTests.checkFWcCs�|jddddd�|jddddd�|jddddd�|jddddd�|jdd	ddd�dS(
Nuu/u/xuxu/au/x/yu/a/xu/yu/x/(u
checkShiftuNone(uself((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutestSimpleShifts�s
uUtilityTests.testSimpleShiftscCs|jddddd�|jddddd�|jdddd	d�|jdd
dd	d�|jdddd	d�|jdd
dd	d�|jddddd�|jddddd�|jddddd�|jddddd�|jddddd�dS(Nu/a/bu/../yu..u/au/yuu//yuyu/a/b/yu//y/u/u/./yu/./y/u///./..//y/.//u/y/u///u/a/b/u/.//u/x//uxu/a/b/xu/.(u
checkShiftuNone(uself((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutestNormalizedShifts�su!UtilityTests.testNormalizedShiftscCsgx`dddddddd d!d"d#dt�fdt�fd$gD]\}}|j||�qCWdS(%NuSERVER_NAMEu	127.0.0.1uSERVER_PORTu80uSERVER_PROTOCOLuHTTP/1.0u	HTTP_HOSTuREQUEST_METHODuGETuSCRIPT_NAMEuu	PATH_INFOu/uwsgi.versioniiu
wsgi.run_onceuwsgi.multithreaduwsgi.multiprocessu
wsgi.inputuwsgi.errorsuwsgi.url_schemeuhttp(uSERVER_NAMEu	127.0.0.1(uSERVER_PORTu80(uSERVER_PROTOCOLuHTTP/1.0(u	HTTP_HOSTu	127.0.0.1(uREQUEST_METHODuGET(uSCRIPT_NAMEu(u	PATH_INFOu/(ii(uwsgi.version(ii(u
wsgi.run_oncei(uwsgi.multithreadi(uwsgi.multiprocessi(uwsgi.url_schemeuhttp(uBytesIOuStringIOucheckDefault(uselfukeyuvalue((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutestDefaultss uUtilityTests.testDefaultscCs�|jdddd�|jdddd�|jdddd�|jdddd	�|jdd
dd�|jdd
dd�|jdddd�dS(Nu	HTTP_HOSTufoo.baruSERVER_NAMEuwsgi.url_schemeuhttpsuHTTPSuonu1uyesuhttpufoouSERVER_PORTu80u443(ucheckCrossDefault(uself((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutestCrossDefaultssuUtilityTests.testCrossDefaultscCs�|jtji�d�|jtjidd6�d�|jtjidd6�d�|jtjidd6�d�|jtjidd6�d�dS(NuhttpufoouHTTPSuonuhttpsuyesu1(uassertEqualuutiluguess_scheme(uself((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutestGuessSchemes
   uUtilityTests.testGuessSchemecCs�|jd�|jddd�|jddd�|jddd	d
d�|jdd
d�|jdddd
d�|jddd�|jdd
ddd�dS(Nuhttp://127.0.0.1/uhttp://127.0.0.1/spamuSCRIPT_NAMEu/spamuhttp://127.0.0.1/sp%E4mu/spämuhttp://spam.example.com:2071/u	HTTP_HOSTuspam.example.com:2071uSERVER_PORTu2071uhttp://spam.example.com/uSERVER_NAMEuspam.example.comu	127.0.0.1uhttps://127.0.0.1/uHTTPSuonuhttp://127.0.0.1:8000/u8000(ucheckAppURIuNone(uself((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutestAppURIs#s


uUtilityTests.testAppURIsc	Cs�|jd�|jddd�|jddd�|jdddd	d�|jd
ddd	d�|jdddd	d�|jd
ddd	d�|jdddd	ddd�|jdddd	ddd�|jddddd	ddd�dS(Nuhttp://127.0.0.1/uhttp://127.0.0.1/spamuSCRIPT_NAMEu/spamuhttp://127.0.0.1/sp%E4mu/spämuhttp://127.0.0.1/spammity/spamu	/spammityu	PATH_INFOu http://127.0.0.1/spammity/sp%E4mu"http://127.0.0.1/spammity/spam;hamu	/spam;hamu/http://127.0.0.1/spammity/spam;cookie=1234,5678u/spam;cookie=1234,5678u%http://127.0.0.1/spammity/spam?say=niuQUERY_STRINGusay=niu'http://127.0.0.1/spammity/spam?s%E4y=nius%E4y=nii(ucheckReqURI(uself((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutestReqURIs1s"




uUtilityTests.testReqURIscCs)|jdddddddg�dS(Nuxyzi2ixi(i
(ucheckFW(uself((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutestFileWrapperDsuUtilityTests.testFileWrappercCs�xYdj�D]K}xB||j�|j�|j�fD]}|jtj|��q8Wq
WxYdj�D]K}xB||j�|j�|j�fD]}|jtj|��q�WqiWdS(NubConnection Keep-Alive Proxy-Authenticate Proxy-Authorization TE Trailers Transfer-Encoding Upgradeu4Accept Cache-Control Date Pragma Trailer Via Warning(usplitutitleuupperuloweru
assertTrueuutilu
is_hop_by_hopuassertFalse(uselfuhopualt((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutestHopByHopGs++uUtilityTests.testHopByHopN(u__name__u
__module__u__qualname__u
checkShiftuNoneucheckDefaultucheckCrossDefaultucheckAppURIucheckReqURIucheckFWutestSimpleShiftsutestNormalizedShiftsutestDefaultsutestCrossDefaultsutestGuessSchemeutestAppURIsutestReqURIsutestFileWrapperutestHopByHop(u
__locals__((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyuUtilityTests�s
	uUtilityTestscBs8|EeZdZdd�Zdd�Zdd�ZdS(uHeaderTestscCs[dg}|jttg��d�|jtt|dd���d�|jt|dd��j�dg�|jt|dd��j�dg�|jt|dd��j�|�|jt|�j�|�tg�}|d=d|d<xr|j|j|j	|j
fD]R}|j|d��|j|d��|j|d��|j|d��qW|j|dd�d	|d<|j|dd	�|j|j	d�d	g�|j|jdd
�d	�|j|jdd
�d
�|j|j
dd
�d	�|j|j
dd
�d
�|j|dd	�|j|dd
�dS(
NuxuyiiufooubaruFoouFOOubazuwheeuzoo(uxuy(uassertEqualulenuHeadersukeysuvaluesuitemsuassertIsNotu__contains__ugetuget_allu__getitem__u
assertTrueuassertFalseu
setdefault(uselfutestuhum((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutestMappingInterfaceXs2	&))&
%
u HeaderTests.testMappingInterfacecCs|jttd�dS(Nufoo(uassertRaisesu	TypeErroruHeaders(uself((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutestRequireListwsuHeaderTests.testRequireListcCs�tg�}|jt|�d�|jdddd�|j|dd�|jt|�d�|jddd	d�|j|jd�dd
g�|jt|�d�dS(Nu
ufooubarubazuspamubar; baz="spam"ufoo: bar; baz="spam"

uFooucheeseubar; cheeseu*foo: bar; baz="spam"
Foo: bar; cheese

(uHeadersuassertEqualustru
add_headeruNoneuget_all(uselfuh((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyu
testExtras{s
uHeaderTests.testExtrasN(u__name__u
__module__u__qualname__utestMappingInterfaceutestRequireListu
testExtras(u
__locals__((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyuHeaderTestsVsuHeaderTestscBs;|EeZdZdZeejj��Zdd�Z	dS(uErrorHandleru/Simple handler subclass for testing BaseHandlerc
Ks<t|�tj|t�t�t�|dddd�dS(NumultithreadumultiprocessT(usetup_testing_defaultsuBaseCGIHandleru__init__uBytesIOuStringIOuTrue(uselfukw((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyu__init__�s
uErrorHandler.__init__N(
u__name__u
__module__u__qualname__u__doc__udictuosuenvironuitemsu
os_environu__init__(u
__locals__((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyuErrorHandler�suErrorHandlercBs&|EeZdZdZdd�ZdS(uTestHandleruASimple handler subclass for testing BaseHandler, w/error passthrucCs�dS(N((uself((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyuhandle_error�suTestHandler.handle_errorN(u__name__u
__module__u__qualname__u__doc__uhandle_error(u
__locals__((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyuTestHandler�suTestHandlercBs�|EeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS(uHandlerTestscCss|j}xcdddddgD]L}|dkrF|jdkrFqn|jt|d|�|d|�qWdS(Nuversionumultithreadumultiprocessurun_onceufile_wrapperuwsgi_uwsgi.(uenvironuwsgi_file_wrapperuNoneuassertEqualugetattr(uselfuhandleruenvuattr((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyucheckEnvironAttrs�s	uHandlerTests.checkEnvironAttrscCs�i}t|�|j}ddlm}x=|j�D]/\}}||kr6|j|||�q6q6Wx*|j�D]\}}|j||�qvWdS(Ni(uenviron(usetup_testing_defaultsuenvironuosuitemsuassertEqualuassertIn(uselfuhandleruemptyuenvuenvironukuv((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyucheckOSEnviron�s
	uHandlerTests.checkOSEnvironcCsNtdd�}|j�|j|�|j|�|j|jdd�dS(NuXuY(uTestHandleru
setup_environucheckEnvironAttrsucheckOSEnvironuassertEqualuenviron(uselfuh((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutestEnviron�s



uHandlerTests.testEnvironcCsGtdddi�}|j�x!dD]}|j||j�q&WdS(Nuwsgi.url_schemeu
wsgi.inputuwsgi.errors(uwsgi.url_schemeu
wsgi.inputuwsgi.errors(uBaseCGIHandleruNoneu
setup_environuassertInuenviron(uselfuhukey((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutestCGIEnviron�s

uHandlerTests.testCGIEnvironcCs^tdd�}|j�|j|jdd�t�}|j�|j|jdd�dS(NuHTTPSuonuwsgi.url_schemeuhttpsuhttp(uTestHandleru
setup_environuassertEqualuenviron(uselfuh((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyu
testScheme�s
	
uHandlerTests.testSchemecCsYt�}x3ddddgD]}|jtt||��qW|jt|jd�dS(Nu_flushu	get_stdinu
get_stderruadd_cgi_varsutest(uBaseHandleruassertRaisesuNotImplementedErrorugetattru_write(uselfuhuname((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutestAbstractMethods�s
	u HandlerTests.testAbstractMethodscCsdd�}dd�}dd�}dd�}t�}|j|�|j|jj�d	jd
��t�}|j|�|j|jj�djd
��t�}|j|�|j|jj�d�t�}|j|�|j|jj�d
�dS(NcSs!|dg�|djd�gS(Nu200 OKuwsgi.url_schemeu
iso-8859-1(uencode(ueus((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutrivial_app1�s
u4HandlerTests.testContentLength.<locals>.trivial_app1cSs$|dg�|djd��gS(Nu200 OKuwsgi.url_schemeu
iso-8859-1(uencode(ueus((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutrivial_app2�s u4HandlerTests.testContentLength.<locals>.trivial_app2cSs|dg�djd�gS(Nu200 OKuтестuutf-8(uencode(ueus((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutrivial_app3�s
u4HandlerTests.testContentLength.<locals>.trivial_app3cSs|ddg�gS(Nu200 OKuContent-Lengthu12345(uContent-Lengthu12345((ueus((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutrivial_app4�su4HandlerTests.testContentLength.<locals>.trivial_app4u)Status: 200 OK
Content-Length: 4

httpu
iso-8859-1uStatus: 200 OK

https-Status: 200 OK
Content-Length: 8

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

(uTestHandlerurunuassertEqualustdoutugetvalueuencode(uselfutrivial_app1utrivial_app2utrivial_app3utrivial_app4uh((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutestContentLength�s,	

	

	
	
uHandlerTests.testContentLengthcCs�dd�}dd�}t�}|j|�|j|jj�djd��|j|jj�d�t�}|j|�|j|jj�d|jt|j	�fjd�|j	�|j
d	|jj��dS(
NcSs|dg�gS(Nu200 OK((ueus((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyu
non_error_apps
u8HandlerTests.testBasicErrorOutput.<locals>.non_error_appcSstd��dS(Nu This should be caught by handler(uAssertionError(ueus((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyu	error_appsu4HandlerTests.testBasicErrorOutput.<locals>.error_appu%Status: 200 OK
Content-Length: 0

u
iso-8859-1uu<Status: %s
Content-Type: text/plain
Content-Length: %d

uAssertionError(uErrorHandlerurunuassertEqualustdoutugetvalueuencodeustderruerror_statusulenu
error_bodyuassertIn(uselfu
non_error_appu	error_appuh((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutestBasicErrorOutputs	

	
u!HandlerTests.testBasicErrorOutputcsqd��fdd�}t�}|j|�|j|jj�djd���|jd|jj��dS(NsSome output has been sentcs#|dg���td��dS(Nu200 OKu This should be caught by handler(uAssertionError(ueus(uMSG(u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyu	error_app#su4HandlerTests.testErrorAfterOutput.<locals>.error_appuStatus: 200 OK

u
iso-8859-1uAssertionError(uErrorHandlerurunuassertEqualustdoutugetvalueuencodeuassertInustderr(uselfu	error_appuh((uMSGu6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutestErrorAfterOutput!s	
u!HandlerTests.testErrorAfterOutputc	
Cswdd�}d}djd�}xOdD]G}|r>d|pAd}x(dD] }xdD]}td|�}d|_||_||_|j|�|j||j	j
��td|�}d|_||_||_|j|�|dkr
|j|j	j
�d�qX|jt
j|||fjd�|j	j
��|||fjd�|j	j
�f�qXWqKWq(WdS(NcSs|dg�gS(Nu200 OK((ueus((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyu
non_error_app0s
u5HandlerTests.testHeaderFormats.<locals>.non_error_appufHTTP/%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\nu%Status: 200 OK
Content-Length: 0

u
iso-8859-1u
FooBar/1.0uServer: %s
uu1.0u1.1uHTTP/0.9uHTTP/1.0uHTTP/1.1uSERVER_PROTOCOLs(u
FooBar/1.0N(u1.0u1.1(uHTTP/0.9uHTTP/1.0uHTTP/1.1FT(uencodeuNoneuTestHandleruFalseu
origin_serveruhttp_versionuserver_softwareurunuassertEqualustdoutugetvalueuTrueu
assertTrueureumatch(	uselfu
non_error_appustdpatushortpatusswuswuversionuprotouh((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutestHeaderFormats.s4	


			
			
uHandlerTests.testHeaderFormatscCs?dd�}t�}|j|�|jd|jj��dS(NcSs|ddg�dgS(Nu200 OKuContent-Typeutext/plain; charset=utf-8sdata(uContent-Typeutext/plain; charset=utf-8((ueus((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyuappZs
u'HandlerTests.testBytesData.<locals>.appsRStatus: 200 OK
Content-Type: text/plain; charset=utf-8
Content-Length: 4

data(uTestHandlerurunuassertEqualustdoutugetvalue(uselfuappuh((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyu
testBytesDataYs
	
	uHandlerTests.testBytesDatacsVidd6�d���fdd�}t�}|j|�|j�dd�dS(Nuclose_calledsSome output has been sentcs6|dg���G�fdd�dt�}|�S(Nu200 OKcs2|EeZdZdd�Z�fdd�ZdS(uHHandlerTests.testCloseOnError.<locals>.error_app.<locals>.CrashyIterablecssxdVtd��qdS(Nsblahu This should be caught by handler(uAssertionError(uself((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyu__iter__osuQHandlerTests.testCloseOnError.<locals>.error_app.<locals>.CrashyIterable.__iter__csd�d<dS(Nuclose_calledT(uTrue(uself(uside_effects(u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyuclosessuNHandlerTests.testCloseOnError.<locals>.error_app.<locals>.CrashyIterable.closeN(u__name__u
__module__u__qualname__u__iter__uclose(u
__locals__(uside_effects(u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyuCrashyIterablensuCrashyIterable(uobject(ueusuCrashyIterable(uMSGuside_effects(u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyu	error_applsu0HandlerTests.testCloseOnError.<locals>.error_appFT(uFalseuErrorHandlerurunuassertEqualuTrue(uselfu	error_appuh((uMSGuside_effectsu6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyutestCloseOnErroris
	
uHandlerTests.testCloseOnErrorN(u__name__u
__module__u__qualname__ucheckEnvironAttrsucheckOSEnvironutestEnvironutestCGIEnvironu
testSchemeutestAbstractMethodsutestContentLengthutestBasicErrorOutpututestErrorAfterOutpututestHeaderFormatsu
testBytesDatautestCloseOnError(u
__locals__((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyuHandlerTests�s	
2
+uHandlerTestscCstjt�dS(N(usupporturun_unittestu__name__(((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyu	test_main|su	test_mainu__main__(.u
__future__u
nested_scopesuunittestuTestCaseuwsgiref.utilusetup_testing_defaultsuwsgiref.headersuHeadersuwsgiref.handlersuBaseHandleruBaseCGIHandleruwsgirefuutiluwsgiref.validateu	validatoruwsgiref.simple_serveru
WSGIServeruWSGIRequestHandlerudemo_appumake_serveruiouStringIOuBytesIOuBufferedReaderusocketserveru
BaseServeruplatformupython_implementationuosureusysutestusupportu
MockServeruMockHandleru	hello_appu	run_amockucompare_generic_iteruIntegrationTestsuUtilityTestsuHeaderTestsuErrorHandleruTestHandleruHandlerTestsu	test_mainu__name__(((u6/opt/alt/python33/lib64/python3.3/test/test_wsgiref.pyu<module>s:
%N�7�