PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  4h^c@sddlZddlZddlZddlZddlZddlZddlZyddlmZWn!e k rddl m ZnXddl m Z ddl mZddl mZddl mZddl mZdd l mZdd l mZdd lmZd d1d YZdeejfdYZdeejfdYZdejfdYZdejfdYZdejfdYZdejfdYZdejfdYZdejfdYZdejfdYZ d Z!d!ejfd"YZ"d#ejfd$YZ#d%ejfd&YZ$d'ejfd(YZ%d)d2d*YZ&d+d3d,YZ'd-Z(e)d.krej*d/d0ndS(4iN(tsha1(tnew(tDummySupervisor(tPopulatedDummySupervisor(tDummyRPCInterfaceFactory(t DummyPConfig(t DummyOptions(t DummyRequest(t DummyLogger(t NOT_DONE_YETt HandlerTestscBseZdZdZRS(cCs|j|S(N(t_getTargetClass(tselft supervisord((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt_makeOnescCsQdddY}t}|j|}|j|j||jtdS(Nt FakeRequestcBseZdZRS(cSs ||_dS(N(turi(R R((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt__init__s(t__name__t __module__R(((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRs((RRt assertEqualtmatchtpathtTrue(R Rt supervisorthandler((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt test_matchs (RRRR(((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR s tLogtailHandlerTestscBs,eZdZdZdZdZRS(cCsddlm}|S(Ni(tlogtail_handler(tsupervisor.httpR(R R((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR %scCst}t|dddddd}t|d|}|j|}tdddd}|j||j|jddS( Ntprocess1s /bin/process1tpriorityitstdout_logfiles/tmp/process1.logs/logtail/process1i( RRRRRtNonethandle_requestRt_error(R toptionstpconfigR Rtrequest((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt'test_handle_request_stdout_logfile_none)s   cCsxt}t|ddd}t|d|}|j|}tdddd}|j||j|jddS(Ntfoos it/is/missings /logtail/fooi( RRRRRR!R"RR#(R R$R%R RR&((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt*test_handle_request_stdout_logfile_missing3s  c Cstj}|j}t}t|ddd|}t|d|}|j|}tdddd}|j ||j |j dddl m }|j |jd|jtj|tj|j |jdd|j t|jd |j |jtdS( NR(R s /logtail/fooi(t http_dates Last-Modifieds Content-Typestext/plain;charset=utf-8i(ttempfiletNamedTemporaryFiletnameRRRRRR!R"RR#tsupervisor.medusaR*theaderstbuild_http_datetoststattST_MTIMEtlent producerst_doneR( R tfttR$R%R RR&R*((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyttest_handle_request<s     (RRR R'R)R9(((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR$s  tMainLogTailHandlerTestscBs,eZdZdZdZdZRS(cCsddlm}|S(Ni(tmainlogtail_handler(RR;(R R;((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR NscCsQt}|j|}tdddd}|j||j|jddS(Ns /mainlogtaili(RRRR!R"RR#(R RRR&((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR'Rs   cCs]t}d|j_tdddd}|j|}|j||j|jddS(Ns /not/theres /mainlogtaili( RR$tlogfileRR!RR"RR#(R RR&R((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR)Ys    cCst}tj}|j}||j_|j|}tdddd}|j ||j |j dddl m }|j |jd|jtj|tj|j |jdd|j t|jd|j |jtdS(Ns /mainlogtaili(R*s Last-Modifieds Content-Typestext/plain;charset=utf-8i(RR+R,R-R$R<RRR!R"RR#R.R*R/R0R1R2R3R4R5R6R(R RR7R8RR&R*((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR9as      (RRR R'R)R9(((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR:Ms   tTailFProducerTestscBs>eZdZdZdZdZdZdZRS(cCsddlm}|S(Ni(ttail_f_producer(RR>(R R>((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR sscCs|j|||S(N(R (R R&tfilenamethead((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRwscCstdddd}ddlm}tj}|jdd|j|j||j d}|j }|j |dd|jdd|j|j }|j |dd|j }|j ||j |j d|j|j }|j |d dS( Ns /logtail/fooi(thttptaiPtwidis==> File truncated <== (RR!RRAR+R,twritetflushRR-tmoreRR ttruncate(R R&RAR7tproducertresult((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyttest_handle_morezs$         cCstdddd}tj}|jdd|j|j||jd}|jj |j }|j ||j dS(Ns /logtail/fooRBiP( RR!R+R,RDRERR-tfiletcloseRFR(R R&R7RHRI((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyttest_handle_more_fd_closeds    cCstdddd}tj}|jdd|j|j||jd}|j}|j |dd|j t |jd}z+|jdd|j |j}Wdt j |jX|j |dddS(Ns /logtail/fooRBiPRCtb(RR!R+R,RDRERR-RFRRLtopenR1tunlink(R R&R7RHRItf2((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt&test_handle_more_follow_file_recreateds     cCstdddd}tj}t|d}|jdd|jz|j||jd}Wdt j |jX|j }|j |ddt|d}|jdd|jz$|j }|j |ddWdt j |jXdS(Ns /logtail/footwbRBiPRN( RR!R+tmktempRORDRLRR-R1RPRFR(R R&R?R7RHRI((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt!test_handle_more_follow_file_gones"     (RRR RRJRMRRRU(((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR=rs     tDeferringChunkedProducerTestscBsSeZdZddZdZdZdZdZdZ dZ RS( cCsddlm}|S(Ni(tdeferring_chunked_producer(RRW(R RW((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR scCs|j||S(N(R (R RHtfooters((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRscCs5tt}|j|}|j|jtdS(N(t DummyProducerR RRRF(R twrappedRH((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyttest_more_not_done_yets cCs5td}|j|}|j|jddS(Nthellos 5 hello (RYRRRF(R RZRH((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyttest_more_strings cCs>t}|j|dddg}|j|jddS(NRXRBRNs 0 a b (RYRRRF(R RZRH((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyttest_more_nodatas cCsAtd}|j|dddg}|j|jddS(NtRXRBRNs 0 a b (RYRRRF(R RZRH((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyttest_more_nodata_footerss cCs5td}|j|}|j|jddS(NR_s0 (RYRRRF(R RZRH((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyttest_more_nodata_nofooterss cCs)|jd}|j|jddS(NR_(RR!RRF(R RH((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyttest_more_noproducersN( RRR R!RR[R]R^R`RaRb(((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRVs       tDeferringCompositeProducerTestscBs5eZdZdZdZdZdZRS(cCsddlm}|S(Ni(tdeferring_composite_producer(RRd(R Rd((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR scCs|j|S(N(R (R R5((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRscCs8tt}|j|g}|j|jtdS(N(RYR RRRF(R RZRH((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR[s cCsstd}td}|j||g}|j|jd|j|jd|j|jddS(NR\tgoodbyeR_(RYRRRF(R twrapped1twrapped2RH((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR]s   cCs5t}|j|g}|j|jddS(NR_(RYRRRF(R RZRH((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR^s (RRR RR[R]R^(((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRcs     tDeferringGlobbingProducerTestscBs8eZdZddZdZdZdZRS(cCsddlm}|S(Ni(tdeferring_globbing_producer(RRi(R Ri((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR siicCs|j||S(N(R (R RHt buffer_size((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRscCs5tt}|j|}|j|jtdS(N(RYR RRRF(R RZRH((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR[s cCs~tddd}|j|dd}|j|jdtddd}|j|dd}|j|jddS(NR\ttheretguyRjii2t hellothereguy(RYRRRF(R RZRH((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR] s cCs2t}|j|}|j|jddS(NR_(RYRRRF(R RZRH((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR^s i(RRR RR[R]R^(((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRhs     tDeferringHookedProducerTestscBs>eZdZdZdZdZdZdZRS(cCsddlm}|S(Ni(tdeferring_hooked_producer(RRo(R Ro((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR scCs|j||S(N(R (R RHtfunction((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRscCs8tt}|j|d}|j|jtdS(N(RYR RR!RRF(R RZRH((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR[!s csztd}gfd}|j||}|j|jd|jg|j|jdgdS(NR\csj|dS(N(tappend(tbytes(tL(s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pytcallback)si(RYRRRF(R RZRtRH((Rss>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR]&s  cs]t}gfd}|j||}|j|jd|jdgdS(Ncsj|dS(N(Rq(Rr(Rs(s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRt4sR_i(RYRRRF(R RZRtRH((Rss>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR^1s  cCs,|jdd}|j|jddS(NR_(RR!RRF(R RH((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRb:s(RRR RR[R]R^Rb(((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRns     tDeferringHttpRequestTestscBseZdZdddddddZdZdZdZd Zd Z d Z d Z d Z dZ dZRS(cCsddlm}|S(Ni(tdeferring_http_request(RRv(R Rv((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR ?ssGET / HTTP/1.0tGETt/s1.0cCs|j||||||S(N(R (R tchanneltreqtcommandRtversiontheader((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRCs cCsdddY}|S(NtChannelcBs eZeZdZdZRS(cSs t|_dS(N(Rtclosed(R ((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pytclose_when_doneSscSs ||_dS(N(RH(R RH((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pytpush_with_producerUs(RRtFalseRRR(((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR~Qs (((R R~((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt _makeChannelPscCsB|j}|jd|dd}|j|j|jdS(NRyR|s1.0(RRtdonet assertTrueR(R Rytinst((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyttest_done_http_10_nokeepaliveYs  cCsK|j}|jd|ddddg}|j|j|jdS(NRyR|s1.0R}sConnection: Keep-Alive(RRRRR(R RyR((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt-test_done_http_10_keepalive_no_content_length_s    cCsl|j}|jd|ddddg}d|jd<|j|j|dd |j|jdS( NRyR|s1.0R}sConnection: Keep-AliveisContent-Lengtht Connections Keep-Alive(RRt reply_headersRRt assertFalseR(R RyR((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt.test_done_http_10_keepalive_and_content_lengthjs     cCsK|j}|jd|ddddg}|j|j|jdS(NRyR|s1.1R}sConnection: close(RRRRR(R RyR((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt"test_done_http_11_connection_closevs    cCsO|j}|jd|dd}d|jd<|j|j|jdS(NRyR|s1.1t notchunkedsTransfer-Encoding(RRRRRR(R RyR((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt+test_done_http_11_unknown_transfer_encodings     cCsO|j}|jd|dd}d|jd<|j|j|jdS(NRyR|s1.1tchunkedsTransfer-Encoding(RRRRRR(R RyR((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt+test_done_http_11_chunked_transfer_encodings     cCs^|j}|jd|dd}t|_|j|jd|k|j|jdS(NRyR|s1.1sTransfer-Encoding(RRRt use_chunkedRRRR(R RyR((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyttest_done_http_11_use_chunkeds     cCsK|j}|jd|dd}t|_|j|j|jdS(NRyR|s1.1(RRRRRRR(R RyR((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt>test_done_http_11_wo_content_length_no_te_no_use_chunked_closes     cCsB|j}|jd|dd}|j|j|jdS(NRyR|(RRR!RRR(R RyR((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyttest_done_http_09s     N((RRR R!RRRRRRRRRRR(((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRu>s"    tDeferringHttpChannelTestscBsGeZdZdZdZdZdZdZdZRS(cCsddlm}|S(Ni(tdeferring_http_channel(RR(R R((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR scCs|jddddddS(Ntservertconntaddr(R R!(R ((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRs cCs6|j}|j|jd|j|jddS(Ni(RRtdelaytlast_writable_check(R Ry((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt0test_defaults_delay_and_last_writable_check_times cCsX|j}d|_t|_td}|j|jd||j|jtdS(Niitnow(RRt_NOWRRtwritableR(R Rytlater((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt5test_writable_with_delay_is_False_if_elapsed_lt_delays     cCs[|j}d|_t|_t|j}|j|jd||j|jtdS(NiR(RRRRRRR(R RyR((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt5test_writable_with_delay_is_False_if_elapsed_eq_delays     cCs_|j}d|_t|_t|jd}|j|jd||j|j|dS(Nig?R(RRRRRRR(R RyR((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt4test_writable_with_delay_is_True_if_elapsed_gt_delays    cCsX|j}d|_t|_td}|j|jd||j|j|dS(NiiR(RRRRRRR(R RyR((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt>test_writable_with_delay_is_True_if_system_time_goes_backwardss     ( RRR RRRRRR(((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRs      ifWt"EncryptedDictionaryAuthorizedTestscBsPeZdZdZdZdZdZdZdZdZ RS(cCsddlm}|S(Ni(tencrypted_dictionary_authorizer(RR(R R((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR scCs|j|S(N(R (R tdict((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRscCs)|ji}|j|jddS(NR(tbar(sfooR(RRt authorize(R t authorizer((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyttest_authorize_baduserscCs0|jidd6}|j|jddS(NtpasswordR(R(sfoosbar(RRR(R R((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt#test_authorize_gooduser_badpasswordscCs0|jidd6}|j|jddS(NRR((sfoospassword(RRR(R R((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt$test_authorize_gooduser_goodpasswordscCs0|jidd6}|j|jddS(Ns pass:wordR((sfoos pass:word(RRR(R R((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt/test_authorize_gooduser_goodpassword_with_colonscCsFdtdj}|ji|d6}|j|jddS(Ns{SHA}RR(R(sfoosbar(Rt hexdigestRRR(R RR((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt'test_authorize_gooduser_badpassword_shascCsFdtdj}|ji|d6}|j|jddS(Ns{SHA}RR((sfoospassword(RRRRR(R RR((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt(test_authorize_gooduser_goodpassword_shas( RRR RRRRRRR(((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRs       tSupervisorAuthHandlerTestscBs>eZdZdZdZdZdZdZRS(cCsddlm}|S(Ni(tsupervisor_auth_handler(RR(R R((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR scCs|j||S(N(R (R RR((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR scCsC|jidd6d}ddlm}|j|jj|dS(NiRBi(R(RR!RRRRt __class__(R RR((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt test_ctorscCswtdddd}tjd}d|g|_t}|jidd6|}|j||j|j dS(Ns/logtail/process1s user:passwordsAuthorization: Basic %sRtuser( RR!tbase64t b64encodeR}t DummyHandlerRR"Rthandled_request(R R&tencodedRt auth_handler((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt/test_handle_request_authorizes_good_credentialss  cCswtdddd}tjd}d|g|_t}|jidd6|}|j||j|j dS(Ns/logtail/process1suser:pass:wordsAuthorization: Basic %ss pass:wordR( RR!RRR}RRR"RR(R R&RRR((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt7test_handle_request_authorizes_good_password_with_colons  cCswtdddd}tjd}d|g|_t}|jidd6|}|j||j|j dS(Ns/logtail/process1s wrong:wrongsAuthorization: Basic %sRR( RR!RRR}RRR"RR(R R&RRR((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt6test_handle_request_does_not_authorize_bad_credentials's  (RRR RRRRR(((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRs     tLogWrapperTestscBs5eZdZdZdZdZdZRS(cCsddlm}|S(Ni(t LogWrapper(RR(R R((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR 1scCs|j|S(N(R (R tlogger((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR5scCs\t}|j|}|jd|j}|jt|d|j|dddS(Nsfoo iiR((RRtlogtdataRR4(R Rt log_wrappertlogdata((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt'test_strips_trailing_newlines_from_msgs8s    cCset}|j|}g}|j|_|jd|jt|d|j|dddS(Ns Server Errorii(RRRqterrorRRR4(R RRterrors((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt(test_logs_msgs_with_error_at_error_level@s   cCset}|j|}g}|j|_|jd|jt|d|j|dddS(NsGET /ii(RRRqttraceRRR4(R RRttraces((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt'test_logs_other_messages_at_trace_levelIs   (RRR RRRR(((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR0s     tTopLevelFunctionTestscBs,eZdZdZdZdZRS(c Cst}||_dtifg|_t}ddlm}|||}zPxI|D]A\}}|j|jd}|dk rYt j |qYqYWWdddl m } | jX|S(Ntdummyi(tmake_http_serversRK(t socket_map(Rtserver_configsRtrpcinterface_factoriesRRRRLtgetR!R1RPtasyncoreRtclear( R tsconfigsR$R Rtserverstconfigtst socketfileR((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt_make_http_serversSs      cCsidd6dd6dd6dd6dd6d d 6}y#|j|g}|jd Wn*tk r}|j|jd d nXdS(Nitfamilyt localhostthostiGEtporttusernameRtinet_http_servertsectionsnothing raisedis Cannot determine socket type 999(R!Rtfailt ValueErrorRtargs(R RRtexc((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt(test_make_http_servers_socket_type_errores c Cshtj}itjd6dd6dd6dd6dd6dd 6}itjd6|d 6td d d 6dd6dd6dd6dd 6}|j||g}|jt |d|d}|j|d||d}dddddg}|jg|j D]}|j ^q||d} |j| d|| d}|jg|j D]}|j ^qK|dS(NRRRiGERRRRRRKt700itchmoditchowntunix_http_serveriiisSupervisor XML-RPC HandlersLogtail HTTP Request Handlers!Main Logtail HTTP Request Handlers&Supervisor Web UI HTTP Request HandlersDefault HTTP Request Handler(ii( R+RTtsockettAF_INETR!tAF_UNIXtintRRR4thandlerstIDENT( R RtinettunixRtinetdataRtidentstxtunixdata((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyttest_make_http_servers_noauthos* $    )  c Cstj}itjd6dd6dd6dd6dd6dd 6}itjd6|d 6td d d 6dd6dd6dd6dd 6}|j||g}|jt|dddl m }xA|D]9\}}x*|j D]}|j t |||qWqWdS(NRRRiHERRRRRRKRiRiRRi(R(ii(R+RTRRRRRRR4RRRRt isinstance( R RRRRRRRR((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyttest_make_http_servers_withauths  $ (RRRRRR(((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRRs  RcBseZdZdZRS(cCs t|_dS(N(RR(R ((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRscCs t|_dS(N(RR(R R&((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyR"s(RRRR"(((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRs RYcBseZdZdZRS(cGst||_dS(N(tlistR(R R((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRscCs!|jr|jjdSdSdS(NiR_(Rtpop(R ((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRFs (RRRRF(((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyRYs cCstjtjtS(N(tunittestt findTestCasestsystmodulesR(((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pyt test_suitest__main__t defaultTestR((((+RR1RR2RR+RthashlibRt ImportErrortshaRtsupervisor.tests.baseRRRRRRRRR R tTestCaseRR:R=RVRcRhRnRuRRRRRRRRYRRtmain(((s>/usr/lib/python2.7/site-packages/supervisor/tests/test_http.pytsL         )%M%%t1")"H