mò ã¸Ec@sodZdkZdkZedjo$eeiieiddƒƒndkZdkZdk l Z dk l Z dk lZdklZd klZlZd klZd klZd klZdkZd klZdklZdklZl Z l!Z!l"Z"dk#l$Z$de i fd„ƒYZ%de i fd„ƒYZ&d„Z'edjo e(ƒndS(sKTest local sites $Id: test_utility.py 71269 2006-11-22 13:37:06Z yuppie $ Nt__main__is framework.py(s ZopeTestCase(szapi(sgetNextUtility(ssetHooks(ssetUpstearDown(sgetSiteManager(sprovideUtility(sdirectlyProvides(szcml(sIRegisterUtilitySimply(smanage_addDummySites IDummyUtilitysISuperDummyUtilitys DummyUtility(senableLocalSiteHooktLocalUtilityServiceTestcBs˜tZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd „Z d „Z d „Z d „Z d „Z d„Zd„Zd„ZRS(NcCs¾tƒtidtiƒtidtiƒtidtiiƒtidtiiƒd}dk}|i }d„|_ ti |ƒt |i dƒt|i iƒ||_ tƒdS(Ns meta.zcmlspermissions.zcmlsconfigure.zcmls cOsdS(N(tNone(tatk((tD/data/zmath/zope/lib/python/Products/Five/site/tests/test_utility.pyt9stsite(tsetUptzcmlt load_configtProductstFivet componentRt zcml_texttwarningst showwarningt load_stringtmanage_addDummySitetselftfoldertenableLocalSiteHooktsetHooks(RRRR((Rt afterSetUp,s     cCs tƒdS(N(ttearDown(R((RtbeforeTearDownGscCs¼dkl}dkl}tdƒ}|i|t i ƒjƒ|i t ||ƒƒt|i iƒ}|i|t i ƒjƒ|i t ||ƒƒtƒ}|i t |i|ƒƒdS(N(sFiveSiteManager(sSimpleLocalUtilityRegistry(tProducts.Five.site.localsitetFiveSiteManagertProducts.Five.site.utilitytSimpleLocalUtilityRegistrytgetSiteManagerRtlocal_smRtfailIftzapitgetGlobalSiteManagert failUnlesst isinstanceRRtsmt utilities(RR%RRR((Rttest_getSiteManagerHookJs    cCsgtƒ}|i|itƒdjƒ|it|i tƒƒgƒ|it|i tƒƒgƒdS(N( RR%RR#t queryUtilityt IDummyUtilityRt assertEqualstlisttgetUtilitiesFortgetAllUtilitiesRegisteredFor(RR%((Rt"test_getUtilitiesNoUtilitiesFolderYs cCs•tƒi}tƒ}|it|dƒ|it i tddƒ|ƒ|it t i tƒƒd|fgƒ|it t i tƒƒ|gƒdS(Ntdummytname(RR&tutilst DummyUtilityR/tregisterUtilityR)RR*R!t getUtilityR+R,R-(RR/R1((Rt%test_registerUtilityOnUtilityRegistry`s  cCs¨tƒ}|iti|ƒƒtƒ}|it |dƒ|i t i t ddƒ|ƒ|i t t it ƒƒd|fgƒ|i t t it ƒƒ|gƒdS(NR/R0(RR%RR#tIRegisterUtilitySimplyt providedByR2R/R3R)R*R!R4R+R,R-(RR/R%((Rt!test_registerUtilityOnSiteManagerks  cCs’tƒ}tƒ}|i|tdƒ|iti tddƒ|ƒ|it ti tƒƒd|fgƒ|it ti tƒƒ|gƒdS(NR/R0( RR%R2R/R3R)RR*R!R4R+R,R-(RR/R%((Rt)test_registerUtilityWithZopeComponentAPI1ws  cCs‰tƒ}tƒ}|i|tƒ|iti tƒ|ƒ|it ti tƒƒd|fgƒ|it ti tƒƒ|gƒdS(Nt( RR%R2R/R3R)RR*R!R4R+R,R-(RR/R%((RR9„s  cCs›tƒ}tƒ}|id|dtddƒ|iti tddƒ|ƒ|it ti tƒƒd|fgƒ|it ti tƒƒ|gƒdS(NR tprovidedR0R/( RR%R2R/R3R)RR*R!R4R+R,R-(RR/R%((Rt)test_registerUtilityWithZopeComponentAPI3‘s   c Cs§tƒ}tƒ}|id|dtdddddtƒ|it i tddƒ|ƒ|it t i tƒƒd|fgƒ|it t i tƒƒ|gƒdS(NR R;R0R/tinfou The Dummytevent(RR%R2R/R3R)tTrueRR*R!R4R+R,R-(RR/R%((Rt)test_registerUtilityWithZopeComponentAPI4žs  cCs tƒ}|iti|ƒƒtƒ}tƒ}t |t ƒ|i t |dƒ|i t |dƒ|i tit dƒ|ƒ|i tit dƒ|ƒdS(NR/(RR%RR#R6R7R2R/t superdummytdirectlyProvidestISuperDummyUtilityR3R)R*R!R4(RR/RAR%((Rt7test_registerTwoUtilitiesWithSameNameDifferentInterface«s    cCsÅtƒ}|iti|ƒƒtƒ}tƒ}t |t ƒt |i t ƒƒ}|i|gƒ|it |ƒt |i t ƒƒ}|i|ddi|jƒt |i t ƒƒ}|i|ddi|jƒtit d|iiƒ}|i|i|jƒtit d|iiƒ}|i|i|jƒ|it |ƒt |it ƒƒ}|i||jƒ|i||jƒt |it ƒƒ}|i||jƒ|i||jƒdS(Niitcontext(RR%RR#R6R7R2R/RARBRCR+R,R)tutstfailUnlessEqualR3taq_baseR!R4RRtutR-(RR/RFRAR%RI((Rt!test_derivedInterfaceRegistration¸s.    cCs tƒ}tƒ}|it|ƒt|ii dƒdk }|i }d„|_ t |ii i ƒ||_ |ititƒ|ƒtƒ}tƒ}|it|ƒ|ititƒ|ƒ|itititƒƒti||gƒƒ|ittitƒƒd|fgƒdS(NtsubsitecOsdS(N(R(RR((RRísR:(R2R/RR%R3R)RRRRRRRRKt assertEqualR!R4tsubdummytsetstSetR-R+R,(RR/RRRMR%((Rt+test_nestedSitesDontConflictButStillAcquireãs$        cCswtƒ}tƒ}tƒ}|it|ƒ|it |it|ƒ|it|dƒ|it |it|dƒdS(NR/( R2tdummy1tdummy2RR%R3R)Rt assertRaisest ValueError(RR%RRRQ((Rttest_registeringTwiceIsConflict s    cCsátƒ}tƒ}|it|ƒdkl}ti tƒ}||ddƒ}|i |dj ƒtitƒiƒ\}}||ddƒ}|i |dj ƒtitƒiƒ}||ddƒ}|i |dj ƒdS(N(s aq_acquiretZopeAttributionButton(R2R/RR%R3R)t Acquisitiont aq_acquireR!R4RtacquiredRR#R,tnextR0R-(RR/R0RXRYR%((Rt*test_utilitiesHaveProperAcquisitionContexts   cCs=tƒ}t|tƒtƒ}tƒ}|it|ƒ|i t i tƒ|ƒ|i t |i itƒ|ƒt|i idƒdk}|i}d„|_t|i iiƒ||_tƒ}tƒ}|it|ƒ|i t i tƒ|ƒ|i t |i iitƒ|ƒ|i t |i itƒ|ƒdS(NRKcOsdS(N(R(RR((RR<s(R2t global_dummytprovideUtilityR)t local_dummyRR%R3RR*R!R4tgetNextUtilityRRRRRRRKtsublocal_dummy(RRRR\R`R%R^((Rttest_getNextUtility+s,          (t__name__t __module__RRR'R.R5R8R9R<R@RDRJRPRUR[Ra(((RR*s      + ' tLocalUtilityMigrateTestcBstZd„Zd„ZRS(NcCs«tƒtidtiƒtidtiƒtidtiiƒtidtiiƒd}dk}|i }d„|_ ti |ƒt |i ƒ||_ tƒdS(Ns meta.zcmlspermissions.zcmlsconfigure.zcmlsy cOsdS(N(R(RR((RRZs(RR R R R R RRRRRRRRR(RRRR((RRMs      cCstƒ}|iti|ƒƒtƒ}tƒ}t |t ƒ|i t |dƒ|i t |dƒ|i tit dƒ|ƒ|i tit dƒ|ƒ|iidƒ}|iƒ|id|iiƒjƒ|i tit dƒ|ƒ|i tit dƒ|ƒdS(NR/smanage_site.htmlR&(RR%RR#R6R7R2R/RARBRCR3R)R*R!R4RtunrestrictedTraversetsiteviewtmigrateToFive15tassert_t objectIds(RR/RfRAR%((Rttest_migrationgs      (RbRcRRj(((RRdKs cCs<tiƒ}|ititƒƒ|ititƒƒ|S(N(tunittestt TestSuitetsuitetaddTestt makeSuiteRRd(Rm((Rt test_suites ()t__doc__tostsysRbtexecfiletpathtjoinRkRNtTestingt ZopeTestCasetzope.appR!tzope.app.componentR_tzope.app.component.hooksRtzope.app.testing.placelesssetupRRtzope.componentRR]tzope.interfaceRBt Products.FiveR R tProducts.Five.site.interfacesR6tProducts.Five.site.tests.dummyRR)RCR2RRRRdRpt framework(R2RkR)RRxRCRR]RRBRsR R_RRRdR6RpRRR RNR!Rr((Rt?s0 $             ÿ"6