tzh
2024-08-22 c7d0944258c7d0943aa7b2211498fd612971ce27
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
P\¬Qc@sdZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl m Z m Z ddlmZddl
mZddlmZddlmZejdƒZd    d"d
„ƒYZd efd „ƒYZd ejfd„ƒYZde    jfd„ƒYZde    jfd„ƒYZdefd„ƒYZdefd„ƒYZdZdZ e    j!e"edƒo³ej#ƒdkdƒdefd„ƒYƒZ$de    jfd„ƒYZ%dd „Z'e(d!kr e'ƒ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]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyt log_messages(t__name__t
__module__R
(((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyRstSocketlessRequestHandlercBs#eZd„Zd„Zd„ZRS(cCst|_d|_dS(NsHTTP/1.1(tFalset
get_calledtprotocol_version(R((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/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_responset send_headert end_headerstwfiletwrite(R((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pytdo_GET's
     
cGsdS(N((RtfmtR    ((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyR
.s(R R RRR
(((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyR "s        tTestServerThreadcBs#eZd„Zd„Zd„ZRS(cCs&tjj|ƒ||_||_dS(N(RtThreadRtrequest_handlert test_object(RRR((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyR3s    cCsstd|jƒ|_|jjjƒd|j_|jjjƒd|_z|jj
dƒWd|jj ƒXdS(Ntiigš™™™™™©?(Ri( RRtservertsockett getsocknameRtPORTtserver_startedtsettNonet serve_forevert server_close(R((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pytrun8s    cCs|jjƒdS(N(Rtshutdown(R((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pytstopBs(R R RR(R*(((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyR2s        
t BaseTestCasecBs,eZd„Zd„Zddid„ZRS(cCs`tjƒ|_tjƒt_tjƒ|_t    ||j
ƒ|_ |j j ƒ|jj ƒdS(N(Rtthreading_setupt_threadstEnvironmentVarGuardtostenvironRtEventR#RRtthreadtstarttwait(R((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pytsetUpGs  cCs.|jjƒtjjƒtj|jŒdS(N(R2R*R/R0t__exit__Rtthreading_cleanupR-(R((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttearDownOs  tGETcCs>tjd|jƒ|_|jj||||ƒ|jjƒS(Nt    localhost(thttplibtHTTPConnectionR"t
connectiontrequestt getresponse(Rturitmethodtbodytheaders((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyR>TsN(R R R5R8R%R>(((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyR+Fs        tBaseHTTPRequestHandlerTestCasecBsweZdZejdƒZd„Zd„Zd„Zd„Z    d„Z
d„Z d„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]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyR5`scCsQt|ƒ}tƒ}||j_||j_|jjƒ|jdƒ|jƒS(Ni(RREtrfileRthandle_one_requesttseekt    readlines(Rtmessaget    input_msgtoutput((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pytsend_typical_requestcs         cCs|j|jjƒdS(N(t
assertTrueRER(R((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pytverify_get_calledlscs;x4dD],‰|jt‡fd†|DƒƒdƒqWdS(NsServer: sDate: sContent-Type: c3s|]}|jˆƒVqdS(N(t
startswith(t.0th(t    fieldName(s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pys    <genexpr>qsi(sServer: sDate: sContent-Type: (t assertEqualtsum(RRC((RSs]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pytverify_expected_headersos cCs)|jj|ƒ}|j|dk    ƒdS(N(tHTTPResponseMatchtsearchRNR%(Rtresponsetmatch((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pytverify_http_server_responsesscCsV|jdƒ}|j|dƒ|j|dd!ƒ|jƒ|j|ddƒdS(NsGET / HTTP/1.1
 
iiiÿÿÿÿs <html><body>Data</body></html>
(RMR[RVRORT(Rtresult((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyt test_http_1_1ws
 
cCsV|jdƒ}|j|dƒ|j|dd!ƒ|jƒ|j|ddƒdS(NsGET / HTTP/1.0
 
iiiÿÿÿÿs <html><body>Data</body></html>
(RMR[RVRORT(RR\((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/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>
(RMRTtlenRO(RR\((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/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>
(RMR[RVRORT(RR\((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/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
(RMRTt assertFalseRER(RR\((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttest_request_length’s(R R t__doc__tretcompileRWR5RMRORVR[R]R^R`RaRd(((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyRDYs                                        tBaseHTTPServerTestCasecBs¨eZdeefd„ƒYZd„Zd„Zd„Zd„Zd„Z    d„Z
d„Z d    „Z d
„Z d „Zd „Zd „Zd„Zd„Zd„ZRS(RcBs8eZdZdZd„Zd„Zd„Zd„ZRS(sHTTP/1.1cCs;|jdƒ|jddƒ|jddƒ|jƒdS(NiÌs Content-Types    text/htmlt
Connectiontclose(RRR(R((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pytdo_TESTŸs cCs;|jdƒ|jddƒ|jddƒ|jƒdS(NiÌs Content-Types    text/htmlRis
keep-alive(RRR(R((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pytdo_KEEP¥s cCs|jdƒdS(Niç(t
send_error(R((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyt do_KEYERROR«scCs;|jdƒ|jddƒ|jddƒ|jƒdS(Niçs Content-Types    text/htmlRiRj(RRR(R((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyt    do_CUSTOM®s (R R Rtdefault_request_versionRkRlRnRo(((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyR›s             cCs6tj|ƒtjd|jƒ|_|jjƒdS(NR:(R+R5R;R<R"tcontconnect(R((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyR5´s cCs9|jjddƒ|jjƒ}|j|jdƒdS(NR9t/iõ(RqR>R?RTtstatus(Rtres((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyt test_command¹scCsRd|j_|jjddƒ|jjƒ|jjƒ}|j|jdƒdS(Ns    HTTP/1.1
R9Rsiõ(Rqt _http_vsn_strt
putrequestt
endheadersR?RTRt(RRu((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttest_request_line_trimming¾s
  cCsRd|j_|jjddƒ|jjƒ|jjƒ}|j|jdƒdS(NtFUBARR9Rsi(RqRwRxRyR?RTRt(RRu((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttest_version_bogusÅs
  cCsRd|j_|jjddƒ|jjƒ|jjƒ}|j|jdƒdS(Ns
HTTP/9.9.9R9Rsi(RqRwRxRyR?RTRt(RRu((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttest_version_digitsÌs
  cCsRd|j_|jjddƒ|jjƒ|jjƒ}|j|jdƒdS(NRR9Rsiõ(RqRwRxRyR?RTRt(RRu((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttest_version_none_getÓs
  cCsRd|j_|jjddƒ|jjƒ|jjƒ}|j|jdƒdS(NRtPUTRsi(RqRwRxRyR?RTRt(RRu((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttest_version_noneÚs
  cCs^d|j_d|j_|jjddƒ|jjƒ|jjƒ}|j|jdƒdS(NicsHTTP/9.9R9Rsiù(Rqt    _http_vsnRwRxRyR?RTRt(RRu((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttest_version_invalidás    cCsRd|j_|jjddƒ|jjƒ|jjƒ}|j|jdƒdS(NRi(RqRwRxRyR?RTRt(RRu((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttest_send_blankés
  cCsY|jjddƒ|jjddƒ|jjƒ|jjƒ}|j|jdƒdS(NR9RsRiRjiõ(RqRxt    putheaderRyR?RTRt(RRu((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttest_header_closeðs
 cCsed|j_|jjddƒ|jjddƒ|jjƒ|jjƒ}|j|jdƒdS(NsHTTP/1.1R9RsRis
keep-aliveiõ(RqRwRxR„RyR?RTRt(RRu((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttest_head_keep_alive÷s   cCs9|jjddƒ|jjƒ}|j|jdƒdS(NtTESTRsiÌ(RqR>R?RTRt(RRu((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyt test_handlerÿscCse|jjddƒ|jjƒ}|j|jdƒdƒ|jjddƒ|j|jjƒdS(NtKEEPRsRis
keep-aliveR‡(RqR>R?RTt    getheadert
addCleanupRj(RRu((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttest_return_header_keep_alives
cCs9|jjddƒ|jjƒ}|j|jdƒdS(NtKEYERRORRsiç(RqR>R?RTRt(RRu((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttest_internal_key_error scCs9|jjddƒ|jjƒ}|j|jdƒdS(NtCUSTOMRsiç(RqR>R?RTRt(RRu((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttest_return_custom_statuss(R R RRRR5RvRzR|R}R~R€R‚RƒR…R†RˆRŒRŽR(((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyRhšs                                                         tSimpleHTTPServerTestCasecBsZeZdeefd„ƒYZd„Zd„Zdd„Zd„Z    d„Z
d„Z RS(    RcBseZRS((R R (((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyRscCsªtj|ƒtjƒ|_tjƒ}tj|ƒd|_tj    d|ƒ|_
tj j |j
ƒ|_ ttj j|j
dƒdƒ}|j|jƒ|jƒdS(NsWe are the knights who say Ni!tdirttesttwb(R+R5R/tgetcwdtcwdttempfilet
gettempdirtchdirtdatatmkdtempttempdirtpathtbasenamet tempdir_nametopentjoinRRj(Rt basetempdirttemp((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyR5s       !cCsQz<tj|jƒytj|jƒWntk
r:nXWdtj|ƒXdS(N(    R/R™R–tshutiltrmtreeRœtOSErrorR+R8(R((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyR8&s cCsY|jƒ}|j|ƒ|j|j|ƒ|j|jƒ|rU|j||ƒndS(N(treadRNRTRttassertIsNotNonetreason(RRYRtRšRB((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pytcheck_status_and_reason0s   cCst|j|jdƒ}|j|dd|jƒ|j|jdƒ}|j|dƒ|j|jƒ}|j|dƒ|jdƒ}|j|dƒ|jdƒ}|j|dƒttjj|jd    ƒd
ƒ}|jd|jdƒ}|j|dƒtjd krptj    ƒd krptj
|j d ƒ|j|jdƒ}|j|dƒtj
|j d ƒndS(Ns/testiÈRšRsi-s/ThisDoesNotExisti”tThisDoesNotExists
index.htmltwtposixiiís/ThisDoesNotExists/ThisDoesNotExist/( R>RŸRªRšR R/RR¡tnametgeteuidtchmodRœ(RRYtf((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttest_get8s$!!cCsq|j|jdddƒ}|j|dƒ|j|jdƒtt|jƒƒƒ|j|jdƒdƒdS(Ns/testRAtHEADiÈscontent-lengths content-typesapplication/octet-stream(R>RŸRªRTRŠtstrR_Rš(RRY((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyt    test_headPscCss|jdddƒ}|j|dƒ|jdddƒ}|j|dƒ|jdddƒ}|j|dƒdS(NRsRAtFOOiõtgettGETs(R>Rª(RRY((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttest_invalid_requestsYs N( R R RRRR5R8R%RªR²RµR¹(((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/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"))
R¯is7This test can't be run reliably as root (issue #13308).tCGIHTTPServerTestCasecBsreZdeefd„ƒYZd„Zd„Zd„Zd„Zd„Z    d„Z
d„Z d    „Z d
„Z RS( RcBseZRS((R R (((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyR{scCsstj|ƒtjƒ|_tjj|jdƒ|_tj    |jƒt
tdƒrŠtjj|jdƒ|_ tj t j|j ƒn t j|_ tjj|jdƒ|_t|jdƒ}|jt|j ƒWdQXtj|jdƒtjj|jdƒ|_t|jdƒ}|jt|j ƒWdQXtj|jdƒtjƒ|_tj|jƒdS(Nscgi-bintsymlinktpythonsfile1.pyR¬iÿsfile2.py(R+R5R—R›t
parent_dirR/RR¡tcgi_dirtmkdirthasattrt    pythonexeR»tsyst
executablet
file1_pathR Rt    cgi_file1R°t
file2_patht    cgi_file2R•R–R™(Rtfile1tfile2((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyR5~s$  cCsŽzytj|jƒ|jtjkr8tj|jƒntj|jƒtj|jƒtj    |j
ƒtj    |j ƒWdt j |ƒXdS(N(R/R™R–RÁRÂRÃtremoveRÄRÆtrmdirR¾R½R+R8(R((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyR8™sc
CsTidd6td6td6dd6dd6dd6dd6d    d
6d    d    6d d 6d d 6d d 6d d6dd6dd6dd6dd6dd6dd6dd6dd6dd6td6dd6dd 6td!6dd"6dd#6}xƒ|jƒD]u\}}t|tƒrt|tƒr|j|tj|ƒq×tj|ƒ}|j    ||d$d%|||fƒq×WdS(&Ns//Rs..s/.//..Rss//\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_pathRT(Rt test_vectorsRtexpectedtactual((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttest_url_collapse_path¥sJ
    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>RTR§RŠRt(RRu((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttest_headers_and_contentÏs    cCsctjidd6dd6dd6ƒ}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>RTR§(RtparamsRCRu((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyt    test_postÔs$ cCs0|jdƒ}|jƒ|j|jdƒdS(Ns/cgi-bin/invalidi”(R>R§RTRt(RRu((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/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.pyR9RCs Hello World
s    text/htmliÈs Content-type(s Hello World
s    text/htmliÈ(tbase64t    b64encodeR>RTR§RŠRt(RRCRu((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttest_authorizationàs
    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>RTR§RŠRt(RRu((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttest_no_leading_slashçs    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È(R/R0R>RTR§RŠRt(Rt    signatureRu((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttest_os_environ_is_not_alteredís      "(R R RRRR5R8RÚRÛRãRäRèRéRì(((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyRºxs            *                    t SimpleHTTPRequestHandlerTestCasecBs)eZdZd„Zd„Zd„ZRS(s Test url parsing cCs:tjƒ|_tjj|jdƒ|_tƒ|_dS(Ntfilename(R/R•t
translatedRR¡R RE(R((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyR5øscCss|jjdƒ}|j||jƒ|jjdƒ}|j||jƒ|jjdƒ}|j||jƒdS(Ns    /filenames/filename?foo=bars/filename?a=b&spam=eggs#zot(REttranslate_pathRTRï(RR((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttest_query_argumentsýs cCsN|jjdƒ}|j||jƒ|jjdƒ}|j||jƒdS(Ns
//filenames//filename?foo=bar(RERðRTRï(RR((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyttest_start_with_double_slashs(R R ReR5RñRò(((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyRíös        cCs>z)tjƒ}tjtttttƒWdtj    |ƒXdS(N(
R/R•Rt run_unittestRDRíRhR‘RºR™(tverboseR–((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyt    test_main s      t__main__(()ReR/RÂRfRæR¤RàR;R—tunittestRÕtBaseHTTPServerRRtSimpleHTTPServerRRRR“Rt import_moduleRRR RRtTestCaseR+RDRhR‘RÅRÇtskipIfRÀR¯RºRíR%RõR (((s]/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_httpservers.pyt<module>s@          A|S $    |