mς αΈEc@sŸdkZdkZdklZdklZdfd„ƒYZdeifd„ƒYZdeifd„ƒYZd „Z e d joei d d ƒndS( N(sStringIO(s ClockServert DummyLoggercBs#tZd„Zd„Zd„ZRS(NcCs g|_dS(N(tselftL(R((t=/data/zmath/zope/lib/python/ZServer/tests/test_clockserver.pyt__init__scOs|ii|ƒdS(N(RRtextendtarg(RRtkw((Rtlog scCsdi|iƒS(Nt (tjoinRR(R((Rtreads(t__name__t __module__RRR (((RRs  tLogHelperTestscBs#tZd„Zd„Zd„ZRS(NcCstiS(N(t ClockServert LogHelper(R((Rt_getTargetClassscOs|iƒ||ŽS(N(RRRR(RRR((Rt_makeOnescCsndkl}tƒ}|i|ƒ}|i|i|ƒ|iddddddƒ|i|iƒdƒdS( N(sStringIOtiptmsgtfooitbarisip msg( tStringIORtloggerRRthelpert assertEqualRR (RRRR((Rt test_helpers   (R R RRR(((RRs  tClockServerTestscBsYtZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d „Z RS( NcCstiS(N(R(R((RR!scOs|iƒ||ŽS(N(RRRR(RRR((RR$sc Csotƒ}|iddddddddd d d |ƒ}d id ƒ}|i|idddd|gƒdS(Ntmethodtatperiodi<tusertcharlietpasswordtbrownthostt localhostRs charlie:browntbase64s$User-Agent: Zope Clock Server ClientsAccept: text/html,text/plainsHost: localhostsAuthorization: Basic %s( RRRRtservertencodetauthRtheaders(RRR)R'((Rt test_ctor's    c Cs»tƒ}|iddddddddd d d |ƒ}|iƒ\}}}d k l }d k l }dk l}|it||ƒƒ|it||ƒƒ|it||ƒƒdS(NRRRi<R R!R"R#R$R%R(s http_request(s HTTPResponse(s HTTPRequest(RRRRR'tget_requests_and_responsetreqtzreqtresptZServer.medusa.http_servert http_requesttZServer.HTTPResponset HTTPResponsetZPublisher.HTTPRequestt HTTPRequestt failUnlesst isinstance( RR5R1R.R-R'R3RR/((Rttest_get_requests_and_response3s      cCstƒ}|iddddddddd d d |ƒ}d fd „ƒY}|i|ƒƒ}tddddddddddddddddƒ}x.|i ƒD] \}}|i |||ƒq€W|i |ddƒ|i |d dƒ|i |d!d"ƒ|i|d#ƒdS($NRRRi<R R!R"R#R$R%Rt dummy_requestcBstZd„ZdgZRS(NcCsdS(Ns/a%20s/bs?foo=bart(s/a%20s/bs?foo=barR:((R((Rt split_uriGssBAR:baz(R R R;theader(((RR9Fs tREQUEST_METHODtGETt SERVER_PORTtClockt SERVER_NAMEsZope Clock ServertSERVER_SOFTWAREtZopetSERVER_PROTOCOLsHTTP/1.0t SCRIPT_NAMER:tGATEWAY_INTERFACEsCGI/1.1t REMOTE_ADDRt0t PATH_INFOs/a /btPATH_TRANSLATEDt QUERY_STRINGsfoo=barschannel.creation_time(RRRRR'R9tget_envtenvtdictt_ENVtitemstktvRtassert_(RRORRR'RMR9RRQ((Rt test_get_envAs*      c CsStƒ}|iddddddddd d d |ƒ}|i|iƒtƒdS( NRRRi<R R!R"R#R$R%R(RRRRR'Rt handle_writetTrue(RRR'((Rttest_handle_write[s    c CsPtƒ}|iddddddddd d d |ƒ}|it|iƒdS( NRRRi<R R!R"R#R$R%R(RRRRR't assertRaisestAssertionErrort handle_error(RRR'((Rttest_handle_errorbs    cCstƒ}dfd„ƒY}|ƒ}|iddddddd d d d d |d|ƒ}|i|iƒt ƒ|i|i gƒt i dƒ|i|iƒt ƒ|i|i ddƒdk l}dkl}|it|i d|ƒƒ|it|i d|ƒƒdS(Nt DummyHandlercBstZd„Zd„ZRS(NcCs g|_dS(N(RR(R((RRlscGs ||_dS(N(RR(RR((Rt__call__ns(R R RR](((RR\ks RRRiR R!R"R#R$R%Rthandlerf1.1000000000000001itZope2(s HTTPResponse(s HTTPRequesti(RRR\R^RRR'RtreadabletFalseRttimetsleepR2R3R4R5RSR7(RR5R'R^R3RR\((Rt test_readableis      cCs€dkl}|ddƒ}|i|dƒ|ddƒ}|i|dƒ|ddƒ}|i|dƒ|ddƒ}|i|dƒ|ddƒ}|i|dƒ|ddƒ}|i|dƒ|dd ƒ}|i|d ƒ|dd ƒ}|i|d ƒ|dd ƒ}|i|d ƒ|dd ƒ}|i|d ƒ|dd ƒ}|i|d ƒ|ddƒ}|i|d ƒ|ddƒ}|i|dƒdS(N(s timesliceiiiii i i i i iiiii(tZServer.ClockServert timeslicetasliceRR(RRfRg((Rttest_timeslice~s6 ( R R RRR+R8RTRWR[RdRh(((RR s       cCs)titƒ}|ititƒƒ|S(N(tunittestt makeSuiteRtsuitetaddTestR(Rk((Rt test_suite›st__main__t defaultTestRm( RiRbRtZServerRRtTestCaseRRRmR tmain(RRiRbRRRRRm((Rt?s     {