%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/lib/python2.7/test/
Upload File :
Create Path :
Current File : //usr/local/lib/python2.7/test/test_httpservers.pyo


Nac@s#dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
mZddlmZddlmZddlmZddlmZejdZd	d#d
YZdefdYZd
ejfdYZde
jfdYZde
jfdYZdefdYZdefdYZdZ dZ!dZ"e
j#e$edoej%dkddefdYZ&de
jfd YZ'dd!Z)e*d"kre)ndS($sUnittests for the various HTTPServer modules.

Written by Cody A.W. Somerville <cody-somerville@ubuntu.com>,
Josip Dzolonga, and Michael Otteneder for the 2007/08 GHOP contest.
iN(tBaseHTTPRequestHandlert
HTTPServer(tSimpleHTTPRequestHandler(tCGIHTTPRequestHandler(tStringIO(ttest_supportt	threadingtNoLogRequestHandlercBseZdZRS(cGsdS(N((tselftargs((s1/usr/local/lib/python2.7/test/test_httpservers.pytlog_messages(t__name__t
__module__R
(((s1/usr/local/lib/python2.7/test/test_httpservers.pyRstSocketlessRequestHandlercBs#eZdZdZdZRS(cCst|_d|_dS(NsHTTP/1.1(tFalset
get_calledtprotocol_version(R((s1/usr/local/lib/python2.7/test/test_httpservers.pyt__init__$s	cCsDt|_|jd|jdd|j|jjddS(NisContent-Types	text/htmls <html><body>Data</body></html>
(tTrueRt
send_responsetsend_headertend_headerstwfiletwrite(R((s1/usr/local/lib/python2.7/test/test_httpservers.pytdo_GET(s
	

cGsdS(N((RtfmtR	((s1/usr/local/lib/python2.7/test/test_httpservers.pyR
/s(RRRRR
(((s1/usr/local/lib/python2.7/test/test_httpservers.pyR
#s		tTestServerThreadcBs#eZdZdZdZRS(cCs&tjj|||_||_dS(N(RtThreadRtrequest_handlerttest_object(RRR((s1/usr/local/lib/python2.7/test/test_httpservers.pyR4s	cCs{td|j|_|jjj\|j_|j_|jjj	d|_z|jjdWd|jjXdS(Nt	localhostig?(Ri(
RRtservertsockettgetsocknameRtHOSTtPORTtserver_startedtsettNonet
serve_forevertserver_close(R((s1/usr/local/lib/python2.7/test/test_httpservers.pytrun9s$	cCs|jj|jdS(N(Rtshutdowntjoin(R((s1/usr/local/lib/python2.7/test/test_httpservers.pytstopCs
(RRRR)R,(((s1/usr/local/lib/python2.7/test/test_httpservers.pyR3s		
tBaseTestCasecBs,eZdZdZddidZRS(cCs`tj|_tjt_tj|_t	||j
|_|jj|jj
dS(N(Rtthreading_setupt_threadstEnvironmentVarGuardtostenvironRtEventR$RRtthreadtstarttwait(R((s1/usr/local/lib/python2.7/test/test_httpservers.pytsetUpIs
cCs.|jjtjjtj|jdS(N(R4R,R1R2t__exit__Rtthreading_cleanupR/(R((s1/usr/local/lib/python2.7/test/test_httpservers.pyttearDownQs

tGETcCsAtj|j|j|_|jj|||||jjS(N(thttplibtHTTPConnectionR"R#t
connectiontrequesttgetresponse(Rturitmethodtbodytheaders((s1/usr/local/lib/python2.7/test/test_httpservers.pyR?VsN(RRR7R:R&R?(((s1/usr/local/lib/python2.7/test/test_httpservers.pyR-Hs		tBaseHTTPRequestHandlerTestCasecBsweZdZejdZdZdZdZdZ	dZ
dZdZd	Z
d
ZdZRS(sZTest the functionality of the BaseHTTPServer focussing on
    BaseHTTPRequestHandler.
    sHTTP/1.[0-9]+ 200 OKcCst|_dS(N(R
thandler(R((s1/usr/local/lib/python2.7/test/test_httpservers.pyR7bscCsQt|}t}||j_||j_|jj|jd|jS(Ni(RRFtrfileRthandle_one_requesttseekt	readlines(Rtmessaget	input_msgtoutput((s1/usr/local/lib/python2.7/test/test_httpservers.pytsend_typical_requestes	

cCs|j|jjdS(N(t
assertTrueRFR(R((s1/usr/local/lib/python2.7/test/test_httpservers.pytverify_get_callednscs;x4dD],|jtfd|DdqWdS(NsServer: sDate: sContent-Type: c3s|]}|jVqdS(N(t
startswith(t.0th(t	fieldName(s1/usr/local/lib/python2.7/test/test_httpservers.pys	<genexpr>ssi(sServer: sDate: sContent-Type: (tassertEqualtsum(RRD((RTs1/usr/local/lib/python2.7/test/test_httpservers.pytverify_expected_headersqs
cCs#|jj|}|j|dS(N(tHTTPResponseMatchtsearchtassertIsNotNone(Rtresponsetmatch((s1/usr/local/lib/python2.7/test/test_httpservers.pytverify_http_server_responseuscCsV|jd}|j|d|j|dd!|j|j|dddS(NsGET / HTTP/1.1

iiis <html><body>Data</body></html>
(RNR]RWRPRU(Rtresult((s1/usr/local/lib/python2.7/test/test_httpservers.pyt
test_http_1_1ys

cCsV|jd}|j|d|j|dd!|j|j|dddS(NsGET / HTTP/1.0

iiis <html><body>Data</body></html>
(RNR]RWRPRU(RR^((s1/usr/local/lib/python2.7/test/test_httpservers.pyt
test_http_1_0s

cCsG|jd}|jt|d|j|dd|jdS(NsGET / HTTP/0.9

iis <html><body>Data</body></html>
(RNRUtlenRP(RR^((s1/usr/local/lib/python2.7/test/test_httpservers.pyt
test_http_0_9scCsV|jd}|j|d|j|dd!|j|j|dddS(Ns(GET / HTTP/1.0
Expect: 100-continue

iiis <html><body>Data</body></html>
(RNR]RWRPRU(RR^((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_with_continue_1_0s

cCsB|jddd}|j|dd|j|jjdS(NsGET txiis#HTTP/1.1 414 Request-URI Too Long
(RNRUtassertFalseRFR(RR^((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_request_lengths(RRt__doc__tretcompileRXR7RNRPRWR]R_R`RbRcRf(((s1/usr/local/lib/python2.7/test/test_httpservers.pyRE[s										tBaseHTTPServerTestCasecBseZdeefdYZdZdZdZdZdZ	dZ
dZd	Zd
Z
dZdZd
ZdZdZdZdZdZRS(RcBsJeZdZdZdZdZdZdZdZdZ	RS(sHTTP/1.1cCs;|jd|jdd|jdd|jdS(NisContent-Types	text/htmlt
Connectiontclose(RRR(R((s1/usr/local/lib/python2.7/test/test_httpservers.pytdo_TESTs
cCs;|jd|jdd|jdd|jdS(NisContent-Types	text/htmlRks
keep-alive(RRR(R((s1/usr/local/lib/python2.7/test/test_httpservers.pytdo_KEEPs
cCs|jddS(Ni(t
send_error(R((s1/usr/local/lib/python2.7/test/test_httpservers.pytdo_KEYERRORscCs;|jd|jdd|jdd|jdS(NisContent-Types	text/htmlRkRl(RRR(R((s1/usr/local/lib/python2.7/test/test_httpservers.pyt	do_CUSTOMs
cCs|jt|jddS(Ni(Rotinttpath(R((s1/usr/local/lib/python2.7/test/test_httpservers.pyt
do_SEND_ERRORscCs|jt|jddS(Ni(RoRrRs(R((s1/usr/local/lib/python2.7/test/test_httpservers.pytdo_HEADs(
RRRtdefault_request_versionRmRnRpRqRtRu(((s1/usr/local/lib/python2.7/test/test_httpservers.pyRs					cCs9tj|tj|j|j|_|jjdS(N(R-R7R<R=R"R#tcontconnect(R((s1/usr/local/lib/python2.7/test/test_httpservers.pyR7s
cCs9|jjdd|jj}|j|jddS(NR;t/i(RwR?R@RUtstatus(Rtres((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_commandscCsRd|j_|jjdd|jj|jj}|j|jddS(Ns	HTTP/1.1
tXYZBOGUSRyi(Rwt
_http_vsn_strt
putrequestt
endheadersR@RURz(RR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_request_line_trimmings

cCsRd|j_|jjdd|jj|jj}|j|jddS(NtFUBARR;Ryi(RwR~RRR@RURz(RR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_version_boguss

cCsRd|j_|jjdd|jj|jj}|j|jddS(Ns
HTTP/9.9.9R;Ryi(RwR~RRR@RURz(RR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_version_digitss

cCsRd|j_|jjdd|jj|jj}|j|jddS(NtR;Ryi(RwR~RRR@RURz(RR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_version_none_gets

cCsRd|j_|jjdd|jj|jj}|j|jddS(NRtCUSTOMRyi(RwR~RRR@RURz(RR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_version_nones

cCs^d|j_d|j_|jjdd|jj|jj}|j|jddS(NicsHTTP/9.9R;Ryi(Rwt	_http_vsnR~RRR@RURz(RR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_version_invalids
cCsRd|j_|jjdd|jj|jj}|j|jddS(NRi(RwR~RRR@RURz(RR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_send_blanks

cCsY|jjdd|jjdd|jj|jj}|j|jddS(NR;RyRkRli(RwRt	putheaderRR@RURz(RR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_header_closes

cCsed|j_|jjdd|jjdd|jj|jj}|j|jddS(NsHTTP/1.1R;RyRks
keep-alivei(RwR~RRRR@RURz(RR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_head_keep_alives
cCs9|jjdd|jj}|j|jddS(NtTESTRyi(RwR?R@RURz(RR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_handlerscCse|jjdd|jj}|j|jdd|jjdd|j|jjdS(NtKEEPRyRks
keep-aliveR(RwR?R@RUt	getheadert
addCleanupRl(RR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_return_header_keep_alive
s
cCs9|jjdd|jj}|j|jddS(NtKEYERRORRyi(RwR?R@RURz(RR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_internal_key_errorscCs9|jjdd|jj}|j|jddS(NRRyi(RwR?R@RURz(RR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_return_custom_statusscCsd}xd
D]}|jjddj||jj}|j||j|jd|jd|jd|jd	||kr|jd|jd
n|j}|jd|q
WdS(Nii0ieifit
SEND_ERRORs/{}sContent-LengthsContent-TypesTransfer-EncodingR(ii0(ieifiii0(	RwR?tformatR@RURzR&Rtread(Rtallow_transfer_encoding_codestcodeR{tdata((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_send_errors
cCsd
}xdD]}|jjddj||jj}|j||j|dkr|jd|jd|jd	|jd
n2|jd|jd|jd|jd
||kr|jd|jdn|j	}|jd|q
WdS(Nii0ieiitHEADs/{}sContent-Lengths	text/htmlsContent-TypesTransfer-EncodingR(ii0(ieiiii0(
RwR?RR@RURzR&RtassertInR(RRRR{R((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_head_via_send_error,s
(RRRRRR7R|RRRRRRRRRRRRRRR(((s1/usr/local/lib/python2.7/test/test_httpservers.pyRjs$																tSimpleHTTPServerTestCasecBsceZdeefdYZdZdZd	dZdZ	dZ
dZdZRS(
RcBseZRS((RR(((s1/usr/local/lib/python2.7/test/test_httpservers.pyR@scCstj|tj|_tj}tj|d|_tj	d||_
tjj|j
|_
d|j
|_ttjj|j
dd}|j|j|jdS(NsWe are the knights who say Ni!tdirRyttesttwb(R-R7R1tgetcwdtcwdttempfilet
gettempdirtchdirRtmkdtempttempdirRstbasenamettempdir_nametbase_urltopenR+RRl(Rtbasetempdirttemp((s1/usr/local/lib/python2.7/test/test_httpservers.pyR7Cs

	!cCsQz<tj|jytj|jWntk
r:nXWdtj|XdS(N(	R1RRtshutiltrmtreeRtOSErrorR-R:(R((s1/usr/local/lib/python2.7/test/test_httpservers.pyR:Ps
cCsY|j}|j||j|j||j|j|rU|j||ndS(N(RRORURzRZtreason(RR[RzRRC((s1/usr/local/lib/python2.7/test/test_httpservers.pytcheck_status_and_reasonZs
cCs|j|jd}|j|dd|j|j|jd}|j|d|j|jd}|j|d|j|j}|j|d|j|jd}|j|d|j|jd	}|j|d|j|jd
|jd|jd}|j|d|jd}|j|dttjj	|j
dd}|j|jd}|j|dtjdkrtjdkrtj
|jd|j|jd}|j|dtj
|jdnWdQXdS(Ns/testiRs/test/iRyi-s/?hi=2s?hi=1tLocations/?hi=1s/ThisDoesNotExisttThisDoesNotExists
index.htmltwtposixiis/ThisDoesNotExists/ThisDoesNotExist/(R?RRRRURRR1RsR+RtnametgeteuidtchmodR(RR[tfp((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_getbs4$!cCsq|j|jddd}|j|d|j|jdtt|j|j|jdddS(Ns/testRBRiscontent-lengthscontent-typesapplication/octet-stream(R?RRRURtstrRaR(RR[((s1/usr/local/lib/python2.7/test/test_httpservers.pyt	test_headscCss|jddd}|j|d|jddd}|j|d|jddd}|j|ddS(NRyRBtFOOitcustomtGETs(R?R(RR[((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_invalid_requestsscCs
|j|jd}|j|dd|j|j|jd}|j|d|j|jd}|j|d|j|j}|j|d|j|jd}|j|d|j|jd	}|j|d|j|jd
|jddS(Ns/testiRs/test/iRyi-s/?hi=2s?hi=1Rs/?hi=1(R?RRRRUR(RR[((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_path_without_leading_slashsN(
RRRRRR7R:R&RRRRR(((s1/usr/local/lib/python2.7/test/test_httpservers.pyR?s	
	
	 				s@#!%s

print "Content-type: text/html"
print
print "Hello World"
s#!%s
import cgi

print "Content-type: text/html"
print

form = cgi.FieldStorage()
print "%%s, %%s, %%s" %% (form.getfirst("spam"), form.getfirst("eggs"),
                          form.getfirst("bacon"))
sT#!%s
import os

print("Content-type: text/html")
print("")

print(os.environ["%s"])
Ris7This test can't be run reliably as root (issue #13308).tCGIHTTPServerTestCasecBseZdeefdYZdZdZdZdZdZ	dZ
dZd	Zd
Z
dZdZd
ZdZdZRS(RcBseZRS((RR(((s1/usr/local/lib/python2.7/test/test_httpservers.pyRscCstj|tj|_tjj|jd|_tjj|jd|_	tj
|jtj
|j	ttdrtjj|jd|_tj
tj|jntj|_tjj|jd|_t|jd}|jt|jWdQXtj|jdtjj|jd|_t|jd}|jt|jWdQXtj|jdtjj|jd	|_t|jd}|jt|jWdQXtj|jdtjj|j	d
|_t|jd}|jt|jWdQXtj|jdtjj|jd|_t|jd!}|jt|jdfWdQXtj|jdtj|_tj|jdS(
Nscgi-bins	child-dirtsymlinktpythonsnocgi.pyRisfile1.pysfile2.pysfile3.pysfile4.pytQUERY_STRING(R-R7RRt
parent_dirR1RsR+tcgi_dirt
cgi_child_dirtmkdirthasattrt	pythonexeRtsyst
executablet
nocgi_pathRRt	cgi_file1Rt
file1_patht
file2_patht	cgi_file2t
file3_patht
file4_patht	cgi_file4RRR(RRtfile1tfile2tfile3tfile4((s1/usr/local/lib/python2.7/test/test_httpservers.pyR7s@
 cCsztj|j|jtjkr8tj|jntj|jtj|jtj|j	tj|j
tj|jtj|j
tj|jtj|jWdtj|XdS(N(R1RRRRRtremoveRRRRRtrmdirRRRR-R:(R((s1/usr/local/lib/python2.7/test/test_httpservers.pyR:sc	CsTidd6td6td6dd6dd6dd6dd6d	d
6d	d	6dd6dd
6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6td6dd6dd 6td!6dd"6dd#6}x|jD]u\}}t|trt|tr|j|tj|qtj|}|j	||d$d%|||fqWdS(&Ns//Rs..s/.//..Rys//\s/\s/.//s/cgi-bin/file1.pyscgi-bin/file1.pys//atas/as./as/C:/s./C:/s/a/bs/a/b/s/a/b/.s	/a/b/c/..s/a/b/ds/a/b/c/../ds/a/b/d/fs/a/b/c/../d/e/../fs/a/b/fs/a/b/c/../d/e/../../fs/a/b/c/../d/e/.././././..//fs../a/b/c/../d/e/.././././..//fs/a/fs/a/b/c/../d/e/../../../fs//fs/a/b/c/../d/e/../../../../fs/a/b/c/../d/e/../../../../../fs/a/b/c/../d/e/../../../../f/..s /a/b/c/../d/e/../../../../f/../.tmsgspath = %r
Got:    %r
Wanted: %r(
t
IndexErrort	iteritemst
isinstancettypet
issubclasst	ExceptiontassertRaisest
CGIHTTPServert_url_collapse_pathRU(Rttest_vectorsRstexpectedtactual((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_url_collapse_pathsJ
	cCs>|jd}|jd|j|jd|jfdS(Ns/cgi-bin/file1.pysHello World
s	text/htmlisContent-type(sHello World
s	text/htmli(R?RURRRz(RR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_headers_and_content0s	cCs&|jd}|j|jddS(Ns)///////////nocgi.py/../cgi-bin/nothere.shi(R?RURz(RR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_issue194355scCsctjidd6dd6dd6}idd6}|jd	d
||}|j|jddS(NitspamRteggsi@tbacons!application/x-www-form-urlencodedsContent-types/cgi-bin/file2.pytPOSTs1, python, 123456
(turllibt	urlencodeR?RUR(RtparamsRDR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyt	test_post9s$
cCs0|jd}|j|j|jddS(Ns/cgi-bin/invalidi(R?RRURz(RR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_invaliduri@s
cCsaidtjdd6}|jddd|}|jd|j|jd
|jfdS(NsBasic %ss
username:passt
Authorizations/cgi-bin/file1.pyR;RDsHello World
s	text/htmlisContent-type(sHello World
s	text/htmli(tbase64t	b64encodeR?RURRRz(RRDR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_authorizationEs
	cCs>|jd}|jd|j|jd|jfdS(Nscgi-bin/file1.pysHello World
s	text/htmlisContent-type(sHello World
s	text/htmli(R?RURRRz(RR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_no_leading_slashLs	cCshd}|tjd<|jd}|jd|j|jd|jf|jtjd|dS(	NsTest CGI ServertSERVER_SOFTWAREs/cgi-bin/file1.pysHello World
s	text/htmlisContent-type(sHello World
s	text/htmli(R1R2R?RURRRz(Rt	signatureR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_os_environ_is_not_alteredRs
	"cCs>|jd}|jd|j|jd|jfdS(Ns/cgi-bin%2ffile1.pysHello World
s	text/htmlisContent-type(sHello World
s	text/htmli(R?RURRRz(RR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyt#test_urlquote_decoding_in_cgi_checkZs	cCs>|jd}|jd|j|jd|jfdS(Ns/cgi-bin/child-dir/file3.pysHello World
s	text/htmlisContent-type(sHello World
s	text/htmli(R?RURRRz(RR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_nested_cgi_path_issue21323_s	cCs>|jd}|jd|j|jd|jfdS(Ns/cgi-bin/file4.py?a=b?c=dsa=b?c=d
s	text/htmlisContent-type(sa=b?c=d
s	text/htmli(R?RURRRz(RR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyt&test_query_with_multiple_question_markdscCs>|jd}|jd|j|jd|jfdS(Ns0/cgi-bin/file4.py?k=aa%2F%2Fbb&//q//p//=//a//b//sk=aa%2F%2Fbb&//q//p//=//a//b//
s	text/htmlisContent-type(sk=aa%2F%2Fbb&//q//p//=//a//b//
s	text/htmli(R?RURRRz(RR{((s1/usr/local/lib/python2.7/test/test_httpservers.pyt"test_query_with_continuous_slashesjs
(RRRRRR7R:RRRRRRRRRRRR(((s1/usr/local/lib/python2.7/test/test_httpservers.pyRs	,		*										t SimpleHTTPRequestHandlerTestCasecBs2eZdZdZdZdZdZRS(s Test url parsing cCs:tj|_tjj|jd|_t|_dS(Ntfilename(R1Rt
translatedRsR+R
RF(R((s1/usr/local/lib/python2.7/test/test_httpservers.pyR7tscCss|jjd}|j||j|jjd}|j||j|jjd}|j||jdS(Ns	/filenames/filename?foo=bars/filename?a=b&spam=eggs#zot(RFttranslate_pathRUR
(RRs((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_query_argumentsyscCsN|jjd}|j||j|jjd}|j||jdS(Ns
//filenames//filename?foo=bar(RFRRUR
(RRs((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_start_with_double_slashscCs#ddl}tj|jdt|jjd}|jtjtj}|j	||j
|jjd}|jtjtj}|j	||j
|jjd}|jtjtj}|j	||j
|jjd}|jtjtj}|j	||j
WdQXdS(NiRssc:c:c:foo/filenames\c:../filenamesc:\c:..\foo/filenamesc:c:foo\c:c:bar/filename(tSimpleHTTPServerRt	swap_attrR1tntpathRFRtreplacetsepRUR
(RRRs((s1/usr/local/lib/python2.7/test/test_httpservers.pyttest_windows_colons(RRRgR7RR
R(((s1/usr/local/lib/python2.7/test/test_httpservers.pyRrs
			cCs>z)tj}tjtttttWdtj	|XdS(N(
R1RRtrun_unittestRERRjRRR(tverboseR((s1/usr/local/lib/python2.7/test/test_httpservers.pyt	test_mains	t__main__((+RgR1RRhRRRRR<RtunittestRtBaseHTTPServerRRRRRRRRt
import_moduleRRR
RRtTestCaseR-RERjRRRRtskipIfRRRRR&RR(((s1/usr/local/lib/python2.7/test/test_httpservers.pyt<module>sDAl
$	)

Zerion Mini Shell 1.0