mò .á¸Ec@sŸdkZdklZdklZdklZdklZdkl Z l Z l Z dk l Z dklZdklZd klZd klZd klZdkZd klZd klZedƒZde fd„ƒYZde fd„ƒYZde fd„ƒYZ!defd„ƒYZ"dk#l$Z$dk%l&Z&defd„ƒYZ'deei(fd„ƒYZ)d„Z*e+djoei,ƒndS(N(sEmergencyUserCannotOwn(snewSecurityManager(snoSecurityManager(sUser(semergency_usersnobodyssystem(sImplicit(sgetConfiguration(s getLogger(s ObjectManager(s SimpleItem(sPlacelessSetup(szcml(ssetDeprecatedManageAddDeletesOFS.subscriberstFauxRootcBs tZdZd„Zd„ZRS(Nt/cCs|S(N(tself(R((t:/data/zmath/zope/lib/python/OFS/tests/testObjectManager.pytgetPhysicalRootscCsfS(N((R((RtgetPhysicalPaths(t__name__t __module__tidRR(((RRs tFauxUsercBstZd„Zd„ZRS(NcCs||_||_dS(N(RRt_idtlogint_login(RRR ((Rt__init__ s cCs|iS(N(RR (R((RtgetId%s(RRR R(((RR s t DeleteFailedcBstZRS(N(RR(((RR)stItemForDeletioncBs/tZed„Zd„Zd„Zd„ZRS(NcCsd|_t|_||_dS(Ntstuff(RRtFalsetbefore_delete_calledtfail_on_delete(RR((RR .s  cCs!t|_|io t‚ndS(N(tTrueRRRR(Rtitemt container((Rtmanage_beforeDelete3s  cCsdS(N((RRR((Rtmanage_afterAdd8scCsdS(N((RR((Rtmanage_afterClone;s(RRRR RRR(((RR,s   (s implements(sIItemtObjectManagerWithIItemcBstZdZeeƒRS(s$The event subscribers work on IItem.(RRt__doc__t implementstIItem(((RR@s tObjectManagerTestscBs tZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z d „Z d „Z d „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(NcCsitt|ƒiƒtƒi|_tidt i ƒtidt i ƒtidt i ƒt t ƒdS(Ns meta.zcmls event.zcmlsdeprecated.zcml( tsuperRRtsetUptgetConfigurationt debug_modetsaved_cfg_debug_modetzcmlt load_configtProductstFivetsetDeprecatedManageAddDeleteR(R((RR!Fs cCs-tƒ|itƒ_tt|ƒiƒdS(N(tnoSecurityManagerRR$R"R#R RttearDown(R((RR+NscCs|tƒ_dS(N(tmodeR"R#(RR,((Rt setDebugModeSscCstS(N(R(R((Rt_getTargetClassVscOs|iƒ||ŽitƒƒS(N(RR.targstkwt__of__R(RR/R0((Rt_makeOneYscCs8dkl}dkl}dkl}|||ƒdS(N(sIObjectManager(s ObjectManager(s verifyClass(tOFS.interfacestIObjectManagertOFS.ObjectManagert ObjectManagertzope.interface.verifyt verifyClass(RR4R8R6((Rttest_z3interfaces]s   cCsL|iƒ}tddƒtdƒ}|id|ƒ|i|i dƒdS(Ntno_user( RR2tomtnewSecurityManagertNonet SimpleItemtsit _setObjectt assertEqualt__ac_local_roles__(RR;R?((Rt%test_setObject_set_owner_with_no_userds    cCsU|iƒ}tdtƒtdƒ}|i|i dƒ|i t |i d|ƒdS(Nt should_fail( RR2R;R<R=temergency_userR>R?RARBt assertRaisestEmergencyUserCannotOwnR@(RR;R?((Rt,test_setObject_set_owner_with_emergency_userps     cCs_|iƒ}tdtƒtdƒ}|i|i dƒ|i d|ƒ|i|i dƒdS(Ntsystem( RR2R;R<R=RIR>R?RARBR@(RR?R;((Rt)test_setObject_set_owner_with_system_user|s    cCs_|iƒ}tdtƒtdƒ}|i|i dƒ|i d|ƒ|i|i dƒdS(Ntanon( RR2R;R<R=tnobodyR>R?RARBR@(RR;R?((Rt,test_setObject_set_owner_with_anonymous_userŠs    cCsŒ|iƒ}tddffƒitƒƒ}td|ƒt dƒ}|i |i dƒ|i d|ƒ|i |i hddg<ƒdS(Ntusert123t user_creationtOwner(RR2R;tUserR1RRNR<R=R>R?RARBR@(RR;R?RN((Rt"test_setObject_set_owner_with_user˜s !  cCs†|iƒ}tddƒitƒƒ}td|ƒt dƒ}|i |i dƒ|i d|ƒ|i |i hddg<ƒdS(Ntuser_idt user_logint faux_creationRQ(RR2R;R R1RRNR<R=R>R?RARBR@(RR;R?RN((Rt'test_setObject_set_owner_with_faux_user¨s   cCse|iƒ}tddƒtdƒ}|i|idƒ|i d|ddƒ|i|idƒdS(Ntshould_be_okayt set_owneri( RR2R;R<R=R>R?RARBR@(RR;R?((Rt(test_setObject_no_set_owner_with_no_user¸s    cCse|iƒ}tdtƒtdƒ}|i|i dƒ|i d|ddƒ|i|i dƒdS(NRXRYi( RR2R;R<R=RER>R?RARBR@(RR;R?((Rt/test_setObject_no_set_owner_with_emergency_userÆs    cCse|iƒ}tdtƒtdƒ}|i|i dƒ|i d|ddƒ|i|i dƒdS(NRXRYi( RR2R;R<R=RIR>R?RARBR@(RR?R;((Rt,test_setObject_no_set_owner_with_system_userÔs    cCse|iƒ}tdtƒtdƒ}|i|i dƒ|i d|ddƒ|i|i dƒdS(NRXRYi( RR2R;R<R=RLR>R?RARBR@(RR;R?((Rt/test_setObject_no_set_owner_with_anonymous_userâs    cCs†|iƒ}tddffƒitƒƒ}td|ƒt dƒ}|i |i dƒ|i d|ddƒ|i |i dƒdS(NRNRORXRYi(RR2R;RRR1RRNR<R=R>R?RARBR@(RR;R?RN((Rt%test_setObject_no_set_owner_with_userðs !  cCs€|iƒ}tddƒitƒƒ}td|ƒt dƒ}|i |i dƒ|i d|ddƒ|i |i dƒdS(NRTRURXRYi(RR2R;R R1RRNR<R=R>R?RARBR@(RR;R?RN((Rt*test_setObject_no_set_owner_with_faux_users   cCsh|iƒ}tƒ}|i|iƒ|ƒ|i|it ƒ|i |iƒƒ|i|it ƒdS(N( RR2R;RtobR@RRARRt _delObjectR(RR;R`((Rttest_delObject_before_deletes   cCs||itƒtdtƒ|iƒ}tdt ƒ}|i |i ƒ|ƒz dt _|i|i ƒƒWddt _XdS(NRii(RR-RR<R=RIR2R;RRR`R@RtloggertdisabledRa(RR;R`((Rt test_delObject_exception_managers    cCso|itƒ|iƒ}tdtƒ}|i|i ƒ|ƒz dt _ |i |i ƒƒWddt _ XdS(NRii( RR-RR2R;RRR`R@RRcRdRa(RR;R`((Rttest_delObject_exception's   cCs||itƒtdtƒ|iƒ}tdtƒ}|i |i ƒ|ƒz dt _ |i|i ƒƒWddt _ XdS(NRii(RR-RR<R=RIR2R;RR`R@RRcRdRa(RR;R`((Rt&test_delObject_exception_debug_manager4s    cCsx|itƒ|iƒ}tdtƒ}|i|iƒ|ƒz)dt _ |i t |i |iƒƒWddt _ XdS(NRii(RR-RR2R;RR`R@RRcRdRFRRa(RR;R`((Rttest_delObject_exception_debugBs    cCs”|itƒ|iƒ}|iƒ}tdtƒ}|id|dt ƒ|i|i ƒ|ƒz#dt _ |i t|idƒWddt _ XdS(NRtom2RYii(RR-RR2tom1RiRR`R@RRRcRdRFRRa(RR`RiRj((Rt#test_delObject_exception_debug_deepPs    cCs|iƒ}|i|idƒƒ|i|idƒƒ|i|idƒƒ|i|idƒƒ|i|idƒƒ|i|idƒƒt|_|i|idƒƒ|i|idƒƒtdƒ}|i d|ƒ|i |idƒƒ|i dƒ|i|idƒƒdS( Nt _propertiest_getObR1t.s..taq_basetzap__tfoo( RR2R;tfailIft hasObjectRRpR>R?R@tassert_Ra(RR?R;((Rttest_hasObject`s    cCs¸|iƒ}tdƒ}|id|ƒtdƒ}|id|ƒtdƒ}|id|ƒtdƒ}|id|ƒtd ƒ}|id |ƒtd ƒ}|id |ƒdS( Nt1sAB-dash_under0123t2sho.bak~t3s dot.comma,dollar$(hi)hash# spacet4sb@rt5s..hahat6s.bashrc(RR2R;R>R?R@(RR?R;((Rttest_setObject_checkId_okqs       cCsŠdkl}|iƒ}tdƒ}|id|ƒtdƒ}|i||id|ƒ|i||id|ƒ|i||id|ƒ|i||id|ƒ|i||id|ƒ|i||id |ƒ|i||id |ƒ|i||id |ƒ|i||id |ƒ|i||id |ƒ|i||id|ƒ|i||id|ƒ|i||id|ƒdS(N(s BadRequestt111Rwi{sabsa\bsa:bsa;bRns..t_footaq_metbah__tREQUESTR( t zExceptionst BadRequestRR2R;R>R?R@RF(RR?R;Rƒ((Rttest_setObject_checkId_bad€s$    cCsi|iƒ}|it|iƒtƒƒx:|iƒD],}|i|idƒp |idƒƒq5WdS(Ns.zexps.xml( RR2R;t failUnlesst isinstancet list_importstlisttfilenametendswith(RR;R‰((Rttest_list_imports”s   cCs^|iƒ}hdd<}|it|i|ƒtdƒ}|i d|ƒ|i|ƒdS(NRttest( RR2R;trequestRFtKeyErrort manage_hasIdR>R?R@(RR;RR?((Rt test_hasIdžs   (RRR!R+R-R.R2R9RCRHRJRMRSRWRZR[R\R]R^R_RbReRfRgRhRkRuR|R„R‹R(((RRDs:                        cCs&tiƒ}|ititƒƒ|S(N(tunittestt TestSuitetsuitetaddTestt makeSuiteR(R“((Rt test_suite¨s t__main__(-R‘tAccessControl.OwnedRGt AccessControl.SecurityManagementR<R*tAccessControl.UserRRtAccessControl.SpecialUsersRERLRIt AcquisitiontImplicitt App.configR"tloggingt getLoggerR5R6tOFS.SimpleItemR>tzope.app.testing.placelesssetuptPlacelessSetupt Products.FiveR'R%tProducts.Five.eventconfigureR)RcRR t ExceptionRRtzope.interfaceRR3RRtTestCaseRR–Rtmain(RR R*R‘RR<RIRRRcRR"R6RLR£R>R'RGRRR)RR R–R%RRER((Rt?s6                   ÿe