mò 0á¸Ec@sdZdkZdkZedjo$eeiieiddƒƒndklZei dƒdk l Z dk l Z d k lZd klZd klZd klZd klZdklZdklZdeifd„ƒYZd„Zedjo eƒndS(såExample functional ZopeTestCase Demonstrates how to use the publish() API to execute GET, POST, PUT, etc. requests against the ZPublisher and how to examine the response. $Id: testFunctional.py 30628 2005-06-03 17:42:57Z shh $ Nt__main__is framework.py(s ZopeTestCaset PythonScripts(s user_name(s user_password(sgetSecurityManager(sview(smanage_properties(sadd_documents_images_and_files(schange_dtml_documents(sStringIO(s urlencodetTestFunctionalcBsªtZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z d „Z d „Z d „Zd„Zd„Zd„Zd„Zd„ZRS(NcCs d|iidƒ|_dttf|_|iidddƒ|iidddƒ|iii t d gƒ|ii d i d ƒ|ii id d ddƒd|iiƒ}|iidd|ƒd}|iidd|ƒd}|iidd|ƒdS(Nt/is%s:%st index_htmltfiletindext secret_htmltsecrettOwnerRtscripttparamssa=0tbodys return a+1s%tredirects8t set_cookiesAt change_title(tselftfoldert absolute_urlt folder_patht user_namet user_passwordt basic_authtaddDTMLDocumentRtmanage_permissiontviewtmanage_addProducttmanage_addPythonScriptR tZPythonScript_edittappR t addDTMLMethodRR(RR RR((tB/data/zmath/zope/lib/python/Testing/ZopeTestCase/testFunctional.pyt afterSetUp,scCsB|i|iƒ}|i|iƒdƒ|i|iƒdƒdS(NiÈR(RtpublishRtresponset assertEqualt getStatustgetBody(RR"((RttestPublishFolderGscCsF|i|idƒ}|i|iƒdƒ|i|iƒdƒdS(Ns /index_htmliÈR(RR!RR"R#R$R%(RR"((RttestPublishDocumentLscCsF|i|idƒ}|i|iƒdƒ|i|iƒdƒdS(Ns/scriptiÈt1(RR!RR"R#R$R%(RR"((RttestPublishScriptQscCsF|i|idƒ}|i|iƒdƒ|i|iƒdƒdS(Ns/script?a:int=2iÈt3(RR!RR"R#R$R%(RR"((RttestPublishScriptWithArgumentVscCs0|i|idƒ}|i|iƒdƒdS(Ns /script?a=2iô(RR!RR"R#R$(RR"((RttestServerError[scCs0|i|idƒ}|i|iƒdƒdS(Ns /secret_htmli‘(RR!RR"R#R$(RR"((RttestUnauthorized_scCsL|i|id|iƒ}|i|iƒdƒ|i|iƒdƒdS(Ns /secret_htmliÈR(RR!RRR"R#R$R%(RR"((Rt testBasicAuthcscCsR|i|idƒ}|i|iƒdƒ|i|idƒ|iiƒƒdS(Ns /redirecti.tLocation( RR!RR"R#R$t getHeaderRR(RR"((Rt testRedirecthscCst|i|idƒ}|i|iƒdƒ|i|idƒidƒdƒ|i|idƒidƒdƒdS(Ns /set_cookieiÈtfootvaluetBartpathR(RR!RR"R#R$t getCookietget(RR"((Rt testCookiems"cCsb|itgƒ|i|id|iƒ}|i|iƒdƒ|i|i i i ƒdƒdS(Ns"/index_html/change_title?title=FooiÈtFoo( RtsetPermissionstmanage_propertiesR!RRR"R#R$RRt title_or_id(RR"((RttestChangeTitless  cCs’|itgƒhdd<}tt|ƒƒ}|i|idddd|d|i ƒ}|i |i ƒdƒ|i |i iiƒdƒdS( NttitleR9s/index_html/change_titletrequest_methodtPOSTtstdintbasiciÈ(RR:R;tformtStringIOt urlencodet post_dataR!RRR"R#R$RRR<(RRCRFR"((RttestPOST~s cCsz|itgƒtdƒ}|i|idddd|d|iƒ}|i |i ƒdƒ|i |i i ƒdƒdS(NR2s /index_htmlR?tPUTRARBiÌ( RR:tchange_dtml_documentsRDtput_dataR!RRR"R#R$RR(RR"RJ((RttestPUTExistingŒs  c Cs¾|itgƒtdƒ}|i|iddhdd