Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 3.145.94.92
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : test_httpservers.pyc
�
?��cc@s#dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
mZddlmZddlmZddlmZddlmZejd�Zd	d#d
��YZdefd��YZd
ejfd��YZde
jfd��YZde
jfd��YZdefd��YZdefd��YZdZ dZ!dZ"e
j#e$ed�o�ej%�dkd�defd��Y�Z&de
jfd ��YZ'dd!�Z)e*d"kre)�ndS($s�Unittests 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.
i����N(tBaseHTTPRequestHandlert
HTTPServer(tSimpleHTTPRequestHandler(tCGIHTTPRequestHandler(tStringIO(ttest_supportt	threadingtNoLogRequestHandlercBseZd�ZRS(cGsdS(N((tselftargs((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pytlog_messages(t__name__t
__module__R
(((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyRstSocketlessRequestHandlercBs#eZd�Zd�Zd�ZRS(cCst|_d|_dS(NsHTTP/1.1(tFalset
get_calledtprotocol_version(R((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyt__init__$s	cCsDt|_|jd�|jdd�|j�|jjd�dS(Ni�sContent-Types	text/htmls <html><body>Data</body></html>
(tTrueRt
send_responsetsend_headertend_headerstwfiletwrite(R((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pytdo_GET(s
	

cGsdS(N((RtfmtR	((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyR
/s(RRRRR
(((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyR
#s		tTestServerThreadcBs#eZd�Zd�Zd�ZRS(cCs&tjj|�||_||_dS(N(RtThreadRtrequest_handlerttest_object(RRR((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyR4s	cCs{td|j�|_|jjj�\|j_|j_|jjj	�d|_z|jjd�Wd|jj�XdS(Nt	localhostig�������?(Ri(
RRtservertsockettgetsocknameRtHOSTtPORTtserver_startedtsettNonet
serve_forevertserver_close(R((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pytrun9s$	cCs|jj�|j�dS(N(Rtshutdowntjoin(R((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pytstopCs
(RRRR)R,(((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyR3s		
tBaseTestCasecBs,eZd�Zd�Zddid�ZRS(cCs`tj�|_tj�t_tj�|_t	||j
�|_|jj�|jj
�dS(N(Rtthreading_setupt_threadstEnvironmentVarGuardtostenvironRtEventR$RRtthreadtstarttwait(R((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pytsetUpIs
cCs.|jj�tjj�tj|j�dS(N(R4R,R1R2t__exit__Rtthreading_cleanupR/(R((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttearDownQs

tGETcCsAtj|j|j�|_|jj||||�|jj�S(N(thttplibtHTTPConnectionR"R#t
connectiontrequesttgetresponse(Rturitmethodtbodytheaders((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyR?VsN(RRR7R:R&R?(((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyR-Hs		tBaseHTTPRequestHandlerTestCasecBsweZdZejd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�ZRS(sZTest the functionality of the BaseHTTPServer focussing on
    BaseHTTPRequestHandler.
    sHTTP/1.[0-9]+ 200 OKcCst�|_dS(N(R
thandler(R((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyR7bscCsQt|�}t�}||j_||j_|jj�|jd�|j�S(Ni(RRFtrfileRthandle_one_requesttseekt	readlines(Rtmessaget	input_msgtoutput((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pytsend_typical_requestes	

cCs|j|jj�dS(N(t
assertTrueRFR(R((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pytverify_get_callednscs;x4dD],�|jt�fd�|D��d�qWdS(NsServer: sDate: sContent-Type: c3s|]}|j��VqdS(N(t
startswith(t.0th(t	fieldName(s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pys	<genexpr>ssi(sServer: sDate: sContent-Type: (tassertEqualtsum(RRD((RTs</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pytverify_expected_headersqs
cCs#|jj|�}|j|�dS(N(tHTTPResponseMatchtsearchtassertIsNotNone(Rtresponsetmatch((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pytverify_http_server_responseuscCsV|jd�}|j|d�|j|dd!�|j�|j|dd�dS(NsGET / HTTP/1.1

iii����s <html><body>Data</body></html>
(RNR]RWRPRU(Rtresult((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyt
test_http_1_1ys

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

iii����s <html><body>Data</body></html>
(RNR]RWRPRU(RR^((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyt
test_http_1_0�s

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

iis <html><body>Data</body></html>
(RNRUtlenRP(RR^((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyt
test_http_0_9�scCsV|jd�}|j|d�|j|dd!�|j�|j|dd�dS(Ns(GET / HTTP/1.0
Expect: 100-continue

iii����s <html><body>Data</body></html>
(RNR]RWRPRU(RR^((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_with_continue_1_0�s

cCsB|jddd�}|j|dd�|j|jj�dS(NsGET txiis#HTTP/1.1 414 Request-URI Too Long
(RNRUtassertFalseRFR(RR^((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_request_length�s(RRt__doc__tretcompileRXR7RNRPRWR]R_R`RbRcRf(((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyRE[s										tBaseHTTPServerTestCasecBs�eZdeefd��YZd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�ZRS(RcBsJeZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	RS(sHTTP/1.1cCs;|jd�|jdd�|jdd�|j�dS(Ni�sContent-Types	text/htmlt
Connectiontclose(RRR(R((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pytdo_TEST�s
cCs;|jd�|jdd�|jdd�|j�dS(Ni�sContent-Types	text/htmlRks
keep-alive(RRR(R((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pytdo_KEEP�s
cCs|jd�dS(Ni�(t
send_error(R((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pytdo_KEYERROR�scCs;|jd�|jdd�|jdd�|j�dS(Ni�sContent-Types	text/htmlRkRl(RRR(R((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyt	do_CUSTOM�s
cCs|jt|jd��dS(Ni(Rotinttpath(R((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyt
do_SEND_ERROR�scCs|jt|jd��dS(Ni(RoRrRs(R((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pytdo_HEAD�s(
RRRtdefault_request_versionRmRnRpRqRtRu(((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyR�s					cCs9tj|�tj|j|j�|_|jj�dS(N(R-R7R<R=R"R#tcontconnect(R((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyR7�s
cCs9|jjdd�|jj�}|j|jd�dS(NR;t/i�(RwR?R@RUtstatus(Rtres((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_command�scCsRd|j_|jjdd�|jj�|jj�}|j|jd�dS(Ns	HTTP/1.1
tXYZBOGUSRyi�(Rwt
_http_vsn_strt
putrequestt
endheadersR@RURz(RR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_request_line_trimming�s

cCsRd|j_|jjdd�|jj�|jj�}|j|jd�dS(NtFUBARR;Ryi�(RwR~RR�R@RURz(RR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_version_bogus�s

cCsRd|j_|jjdd�|jj�|jj�}|j|jd�dS(Ns
HTTP/9.9.9R;Ryi�(RwR~RR�R@RURz(RR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_version_digits�s

cCsRd|j_|jjdd�|jj�|jj�}|j|jd�dS(NtR;Ryi�(RwR~RR�R@RURz(RR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_version_none_get�s

cCsRd|j_|jjdd�|jj�|jj�}|j|jd�dS(NR�tCUSTOMRyi�(RwR~RR�R@RURz(RR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_version_none�s

cCs^d|j_d|j_|jjdd�|jj�|jj�}|j|jd�dS(NicsHTTP/9.9R;Ryi�(Rwt	_http_vsnR~RR�R@RURz(RR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_version_invalid�s
cCsRd|j_|jjdd�|jj�|jj�}|j|jd�dS(NR�i�(RwR~RR�R@RURz(RR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_send_blank�s

cCsY|jjdd�|jjdd�|jj�|jj�}|j|jd�dS(NR;RyRkRli�(RwRt	putheaderR�R@RURz(RR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_header_close�s

cCsed|j_|jjdd�|jjdd�|jj�|jj�}|j|jd�dS(NsHTTP/1.1R;RyRks
keep-alivei�(RwR~RR�R�R@RURz(RR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_head_keep_alives
cCs9|jjdd�|jj�}|j|jd�dS(NtTESTRyi�(RwR?R@RURz(RR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_handlerscCse|jjdd�|jj�}|j|jd�d�|jjdd�|j|jj�dS(NtKEEPRyRks
keep-aliveR�(RwR?R@RUt	getheadert
addCleanupRl(RR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_return_header_keep_alive
s
cCs9|jjdd�|jj�}|j|jd�dS(NtKEYERRORRyi�(RwR?R@RURz(RR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_internal_key_errorscCs9|jjdd�|jj�}|j|jd�dS(NR�Ryi�(RwR?R@RURz(RR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_return_custom_statusscCs�d}x�d
D]�}|jjddj|��|jj�}|j||j�|jd|jd��|jd|jd	��||kr�|jd|jd
��n|j�}|jd|�q
WdS(Ni�i0ieifi�t
SEND_ERRORs/{}sContent-LengthsContent-TypesTransfer-EncodingR�(i�i0(ieifi�i�i0(	RwR?tformatR@RURzR&R�tread(Rtallow_transfer_encoding_codestcodeR{tdata((s</usr/local/python-2.7/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|jd��n|j	�}|jd|�q
WdS(Ni�i0iei�i�tHEADs/{}sContent-Lengths	text/htmlsContent-TypesTransfer-EncodingR�(i�i0(iei�i�i�i0(
RwR?R�R@RURzR&R�tassertInR�(RR�R�R{R�((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_head_via_send_error,s
(RRRRRR7R|R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�(((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyRj�s$																tSimpleHTTPServerTestCasecBsceZdeefd��YZd�Zd�Zd	d�Zd�Z	d�Z
d�Zd�ZRS(
RcBseZRS((RR(((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyR@scCs�tj|�tj�|_tj�}tj|�d|_tj	d|�|_
tjj|j
�|_
d|j
|_ttjj|j
d�d�}|j|j�|j�dS(NsWe are the knights who say Ni!tdirRyttesttwb(R-R7R1tgetcwdtcwdttempfilet
gettempdirtchdirR�tmkdtempttempdirRstbasenamettempdir_nametbase_urltopenR+RRl(Rtbasetempdirttemp((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyR7Cs

	!cCsQz<tj|j�ytj|j�Wntk
r:nXWdtj|�XdS(N(	R1R�R�tshutiltrmtreeR�tOSErrorR-R:(R((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyR:Ps
cCsY|j�}|j|�|j|j|�|j|j�|rU|j||�ndS(N(R�RORURzRZtreason(RR[RzR�RC((s</usr/local/python-2.7/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|d�ttjj	|j
d�d���}|j|jd�}|j|d�tjdkrtj�dkrtj
|jd�|j|jd�}|j|d�tj
|jd�nWdQXdS(Ns/testi�R�s/test/i�Ryi-s/?hi=2s?hi=1tLocations/?hi=1s/ThisDoesNotExisttThisDoesNotExists
index.htmltwtposixii�s/ThisDoesNotExists/ThisDoesNotExist/(R?R�R�R�RUR�R�R1RsR+R�tnametgeteuidtchmodR�(RR[tfp((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_getbs4$!cCsq|j|jddd�}|j|d�|j|jd�tt|j���|j|jd�d�dS(Ns/testRBR�i�scontent-lengthscontent-typesapplication/octet-stream(R?R�R�RUR�tstrRaR�(RR[((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyt	test_head�scCss|jddd�}|j|d�|jddd�}|j|d�|jddd�}|j|d�dS(NRyRBtFOOi�tcustomtGETs(R?R�(RR[((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_invalid_requests�s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�dS(Ns/testi�R�s/test/i�Ryi-s/?hi=2s?hi=1R�s/?hi=1(R?R�R�R�RUR�(RR[((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_path_without_leading_slash�sN(
RRRRRR7R:R&R�R�R�R�R�(((s</usr/local/python-2.7/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"])
R�is7This test can't be run reliably as root (issue #13308).tCGIHTTPServerTestCasecBs�eZdeefd��YZd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�ZRS(RcBseZRS((RR(((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyR�scCs�tj|�tj�|_tjj|jd�|_tjj|jd�|_	tj
|j�tj
|j	�ttd�r�tjj|jd�|_tj
tj|j�ntj|_tjj|jd�|_t|jd��}|jt|j�WdQXtj|jd�tjj|jd�|_t|jd��}|jt|j�WdQXtj|jd�tjj|jd	�|_t|jd��}|jt|j�WdQXtj|jd�tjj|j	d
�|_t|jd��}|jt|j�WdQXtj|jd�tjj|jd�|_t|jd��!}|jt|jdf�WdQXtj|jd�tj�|_tj|j�dS(
Nscgi-bins	child-dirtsymlinktpythonsnocgi.pyR�i�sfile1.pysfile2.pysfile3.pysfile4.pytQUERY_STRING(R-R7R�R�t
parent_dirR1RsR+tcgi_dirt
cgi_child_dirtmkdirthasattrt	pythonexeR�tsyst
executablet
nocgi_pathR�Rt	cgi_file1R�t
file1_patht
file2_patht	cgi_file2t
file3_patht
file4_patht	cgi_file4R�R�R�(RR�tfile1tfile2tfile3tfile4((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyR7�s@
 cCs�z�tj|j�|jtjkr8tj|j�ntj|j�tj|j�tj|j	�tj|j
�tj|j�tj|j
�tj|j�tj|j�Wdtj|�XdS(N(R1R�R�R�R�R�tremoveR�R�R�R�R�trmdirR�R�R�R-R:(R((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyR:�sc	CsTidd6td6td6dd6dd6dd6dd6d	d
6d	d	6dd6dd
6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6td6dd6dd 6td!6dd"6dd#6}x�|j�D]u\}}t|t�rt|t�r|j|tj|�q�tj|�}|j	||d$d%|||f�q�WdS(&Ns//R�s..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((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_url_collapse_pathsJ
	cCs>|jd�}|jd|j�|jd�|jf�dS(Ns/cgi-bin/file1.pysHello World
s	text/htmli�sContent-type(sHello World
s	text/htmli�(R?RUR�R�Rz(RR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_headers_and_content0s	cCs&|jd�}|j|jd�dS(Ns)///////////nocgi.py/../cgi-bin/nothere.shi�(R?RURz(RR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_issue194355scCsctjidd6dd6dd6�}idd6}|jd	d
||�}|j|j�d�dS(NitspamR�teggsi@�tbacons!application/x-www-form-urlencodedsContent-types/cgi-bin/file2.pytPOSTs1, python, 123456
(turllibt	urlencodeR?RUR�(RtparamsRDR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyt	test_post9s$
cCs0|jd�}|j�|j|jd�dS(Ns/cgi-bin/invalidi�(R?R�RURz(RR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_invaliduri@s
cCsaidtjd�d6}|jddd|�}|jd|j�|jd
�|jf�dS(NsBasic %ss
username:passt
Authorizations/cgi-bin/file1.pyR;RDsHello World
s	text/htmli�sContent-type(sHello World
s	text/htmli�(tbase64t	b64encodeR?RUR�R�Rz(RRDR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_authorizationEs
	cCs>|jd�}|jd|j�|jd�|jf�dS(Nscgi-bin/file1.pysHello World
s	text/htmli�sContent-type(sHello World
s	text/htmli�(R?RUR�R�Rz(RR{((s</usr/local/python-2.7/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/htmli�sContent-type(sHello World
s	text/htmli�(R1R2R?RUR�R�Rz(Rt	signatureR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_os_environ_is_not_alteredRs
	"cCs>|jd�}|jd|j�|jd�|jf�dS(Ns/cgi-bin%2ffile1.pysHello World
s	text/htmli�sContent-type(sHello World
s	text/htmli�(R?RUR�R�Rz(RR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyt#test_urlquote_decoding_in_cgi_checkZs	cCs>|jd�}|jd|j�|jd�|jf�dS(Ns/cgi-bin/child-dir/file3.pysHello World
s	text/htmli�sContent-type(sHello World
s	text/htmli�(R?RUR�R�Rz(RR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_nested_cgi_path_issue21323_s	cCs>|jd�}|jd|j�|jd�|jf�dS(Ns/cgi-bin/file4.py?a=b?c=dsa=b?c=d
s	text/htmli�sContent-type(sa=b?c=d
s	text/htmli�(R?RUR�R�Rz(RR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyt&test_query_with_multiple_question_markdscCs>|jd�}|jd|j�|jd�|jf�dS(Ns0/cgi-bin/file4.py?k=aa%2F%2Fbb&//q//p//=//a//b//sk=aa%2F%2Fbb&//q//p//=//a//b//
s	text/htmli�sContent-type(sk=aa%2F%2Fbb&//q//p//=//a//b//
s	text/htmli�(R?RUR�R�Rz(RR{((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyt"test_query_with_continuous_slashesjs
(RRRRRR7R:R�R�R�R�R�R�RRRRRR(((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyR��s	,		*										t SimpleHTTPRequestHandlerTestCasecBs2eZdZd�Zd�Zd�Zd�ZRS(s Test url parsing cCs:tj�|_tjj|jd�|_t�|_dS(Ntfilename(R1R�t
translatedRsR+R
RF(R((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyR7tscCss|jjd�}|j||j�|jjd�}|j||j�|jjd�}|j||j�dS(Ns	/filenames/filename?foo=bars/filename?a=b&spam=eggs#zot(RFttranslate_pathRUR
(RRs((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_query_argumentsyscCsN|jjd�}|j||j�|jjd�}|j||j�dS(Ns
//filenames//filename?foo=bar(RFRRUR
(RRs((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_start_with_double_slash�scCs#ddl}tj|jdt���|jjd�}|jtjtj�}|j	||j
�|jjd�}|jtjtj�}|j	||j
�|jjd�}|jtjtj�}|j	||j
�|jjd�}|jtjtj�}|j	||j
�WdQXdS(Ni����Rssc:c:c:foo/filenames\c:../filenamesc:\c:..\foo/filenamesc:c:foo\c:c:bar/filename(tSimpleHTTPServerRt	swap_attrR1tntpathRFRtreplacetsepRUR
(RRRs((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyttest_windows_colon�s(RRRgR7RR
R(((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyRrs
			cCs>z)tj�}tjttttt�Wdtj	|�XdS(N(
R1R�Rtrun_unittestRERRjR�R�R�(tverboseR�((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyt	test_main�s	t__main__((+RgR1R�RhR�RR�R�R<R�tunittestR�tBaseHTTPServerRRRRRRR�Rt
import_moduleRRR
RRtTestCaseR-RERjR�R�R�R�tskipIfR�R�R�RR&RR(((s</usr/local/python-2.7/lib/python2.7/test/test_httpservers.pyt<module>sDA�l
$	�)
© 2025 GrazzMean