3 ,ςΏW/γ@sΰdZddlZGdd„dejƒZGdd„dejƒZGdd„dejƒZGd d „d ejƒZGd d „d ejƒZGd d„dejƒZGdd„dejƒZ Gdd„dejƒZ Gdd„dejƒZ e ƒZ Gdd„de ƒZGdd„de ƒZdd„ZdS)zTests for z.c.hooks ιNc@s$eZdZdd„Zdd„Zdd„ZdS)ΪTest_read_propertycCsddlm}|S)Nr)Ϊ read_property)Ϊzope.component.hooksr)Ϊselfr©rϊ /usr/lib/python3.6/test_hooks.pyΪ_getTargetClasss z"Test_read_property._getTargetClasscsRG‡fdd„dtƒ}|ƒ}ˆj|jdƒd|_ˆj|jdƒ|`ˆj|jdƒdS)NcseZdZ”jƒdd„ƒZdS)z1Test_read_property.test_via_instance..FoocSsdS)NΪBARr)rrrrΪbarsz5Test_read_property.test_via_instance..Foo.barN)Ϊ__name__Ϊ __module__Ϊ __qualname__rr r)rrrΪFoosrr ZBAZ)ΪobjectΪ assertEqualr )rrZfoor)rrΪtest_via_instancesz$Test_read_property.test_via_instancecsFG‡fdd„dtƒ}|j}ˆjt|ˆjƒƒƒˆj|jtƒƒdƒdS)NcseZdZ”jƒdd„ƒZdS)z.Test_read_property.test_via_class..FoocSsdS)Nr r)rrrrr 'sz2Test_read_property.test_via_class..Foo.barN)r r r rr r)rrrr&srr )rr Ϊ assertTrueΪ isinstancerrΪfunc)rrr r)rrΪtest_via_class%sz!Test_read_property.test_via_classN)r r r rrrrrrrrs rc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) Ϊ SiteInfoTestscCsddlm}|S)Nr)ΪSiteInfo)rr)rrrrrr1s zSiteInfoTests._getTargetClasscCs |jƒƒS)N)r)rrrrΪ_makeOne5szSiteInfoTests._makeOnecCs<ddlm}|ƒ}|jƒ}|j|jdƒ|j|j|kƒdS)Nr)ΪgetGlobalSiteManager)Ϊzope.component.globalregistryrrrΪsiterΪsm)rrΪgsmΪsirrrΪ test_initial8s  zSiteInfoTests.test_initialcs†tƒ‰G‡fdd„dtƒ‰G‡fdd„dtƒ}|jƒ}|ƒ|_|jd|jkƒ|j|jˆkƒ|jd|jkƒ|`|jd|jkƒdS)NcseZdZ”ZdS)z2SiteInfoTests.test_adapter_hook.._RegistryN)r r r Ϊ adapter_hookr)Ϊ_hookrrΪ _RegistryAsr"cseZdZ”ƒZdS)z5SiteInfoTests.test_adapter_hook.._SiteManagerN)r r r Zadaptersr)r"rrΪ _SiteManagerCsr#r )rrrΪ assertFalseΪ__dict__rr )rr#rr)r"r!rΪtest_adapter_hook?szSiteInfoTests.test_adapter_hookN)r r r rrrr&rrrrr/src@s$eZdZdd„Zdd„Zdd„ZdS)Ϊ Test_setSitecCsddlm}||ƒS)Nr)ΪsetSite)rr()rrr(rrrΪ_callFUTPs zTest_setSite._callFUTc Csžddlm}ddlm}|ƒ}tƒ}tƒ}tƒ}tƒ}||_||_||_t ||d|j dƒWdQRX|j |j|kƒ|j |jdkƒ|j d|j kƒdS)Nr)Ϊhooks)r)Ϊsiteinfor )Ϊzope.componentr*rrrΪ_DummySiteInforrZ adapterhookΪ_Monkeyr)rr$r%)rr*rrΪ_SM2Ϊ_SITEZ_HOOKr+rrrΪ test_w_NoneTs  zTest_setSite.test_w_Nonec sˆddlm}tƒ‰G‡fdd„dtƒ}tƒ}|ƒ}t||d|j|ƒWdQRX|j|jˆkƒ|j|j|kƒ|j d|j kƒdS)Nr)r*cseZdZ‡fdd„ZdS)z'Test_setSite.test_w_site.._SitecsˆS)Nr)r)r/rrΪgetSiteManagerisz6Test_setSite.test_w_site.._Site.getSiteManagerN)r r r r2r)r/rrΪ_Sitehsr3)r+r ) r,r*rr-r.r)rrrr$r%)rr*r3r+Ϊ_siter)r/rΪ test_w_sitees zTest_setSite.test_w_siteN)r r r r)r1r5rrrrr'Nsr'c@s$eZdZdd„Zdd„Zdd„ZdS)Ϊ Test_getSitecCsddlm}|ƒS)Nr)ΪgetSite)rr7)rr7rrrr)vs zTest_getSite._callFUTc CsRddlm}ddlm}|ƒ}tƒ}t||d|j|jƒdkƒWdQRXdS)Nr)r*)r)r+)r,r*rrr-r.rr))rr*rrr+rrrr1zs   zTest_getSite.test_w_Nonec Csjddlm}ddlm}|ƒ}tƒ}tƒ}tƒ}||_||_t||d|j |j ƒ|kƒWdQRXdS)Nr)r*)r)r+) r,r*rrrr-rrr.rr))rr*rrr/r0r+rrrr5‚s  zTest_getSite.test_w_siteN)r r r r)r1r5rrrrr6tsr6c@seZdZdd„Zdd„ZdS)Ϊ Test_sitecCsddlm}||ƒS)Nr)r)rr)rZnew_siterrrrr)‘s zTest_site._callFUTcsΦddlm}ddlm}|ƒ}tƒ‰G‡fdd„dtƒ}|ƒ}tƒ}|j|jdkƒ|j|jt kƒt ||d\|j |ƒ&|j|j|kƒ|j|jˆkƒWdQRX|j|jdkƒ|j|j|kƒWdQRXdS)Nr)r*)rcseZdZ‡fdd„ZdS)z Test_site.test_it.._SitecsˆS)Nr)r)r/rrr2›sz/Test_site.test_it.._Site.getSiteManagerN)r r r r2r)r/rrr3šsr3)r+) r,r*rrrr-rrrΪ_SMr.r))rr*rrr3r4r+r)r/rΪtest_it•s   zTest_site.test_itN)r r r r)r:rrrrr8sr8c@s.eZdZd dd„Zdd„Zdd„Zdd „ZdS) ΪTest_getSiteManagerNcCsddlm}||ƒS)Nr)r2)rr2)rΪcontextr2rrrr)«s zTest_getSiteManager._callFUTc Cs^ddlm}ddlm}|ƒ}tƒ}tƒ}||_t||d|j|j ƒ|kƒWdQRXdS)Nr)r*)r)r+) r,r*rrrr-rr.rr))rr*rrr/r+rrrΪ test_default―s  z Test_getSiteManager.test_defaultc Csbddlm}ddlm}|ƒ}tƒ}tƒ}||_t||d|j|j tƒƒ|kƒWdQRXdS)Nr)r*)r)r+) r,r*rrrr-rr.rr))rr*rrr/r+rrrΪ+test_w_explicit_context_no_IComponentLookupΉs  z?Test_getSiteManager.test_w_explicit_context_no_IComponentLookupc CsΆddlm}ddlm}ddlm}ddlm}Gdd„dtƒ}|ƒ}|j ||f|dƒtƒ}t ƒ}||_ tƒ} t ||d |j | ƒ} WdQRX|jt| |ƒƒ|j| j| kƒdS) Nr)Ϊ Interface)r*)r)ΪIComponentLookupc@seZdZdd„ZdS)zOTest_getSiteManager.test_w_explicit_context_w_IComponentLookup.._LookupcSs ||_dS)N)r<)rr<rrrΪ__init__ΙszXTest_getSiteManager.test_w_explicit_context_w_IComponentLookup.._Lookup.__init__N)r r r rArrrrΪ_LookupΘsrBΪ)r+)Ϊzope.interfacer?r,r*rrΪzope.component.interfacesr@rZregisterAdapterr-rr.r)rrr<) rr?r*rr@rBrr/r+r<rrrrΪ*test_w_explicit_context_w_IComponentLookupΓs    z>Test_getSiteManager.test_w_explicit_context_w_IComponentLookup)N)r r r r)r=r>rFrrrrr;©s   r;c@s&eZdZd dd„Zdd„Zdd„ZdS) ΪTest_adapter_hookrCNcCsddlm}|||||ƒS)Nr)r )rr )rΪ interfacerΪnameΪdefaultr rrrr)Ωs zTest_adapter_hook._callFUTc sΊddlm}ddlm}ddlm}Gdd„d|ƒ}|ƒ}tƒ‰tƒ}tƒ}g‰‡‡fdd„}tƒ} || _t || d |j ||d |ƒ} WdQRX|j | ˆkƒ|j ˆ||d |fgƒdS) Nr)r?)r*)rc@s eZdZdS)z,Test_adapter_hook.test_success..IFooN)r r r rrrrΪIFooαsrKcsˆj||||fƒˆS)N)Ϊappend)rHrrIrJ)Ϊ_ADAPTERΪ_calledrrΪ _adapter_hookθsz5Test_adapter_hook.test_success.._adapter_hook)r+r ) rDr?r,r*rrrr-r r.r)rr) rr?r*rrKrΪ_DEFAULTΪ_CONTEXTrOr+Ϊadapterr)rMrNrΪ test_successέs    zTest_adapter_hook.test_successc sΐddlm}ddlm}ddlm}ddlm‰Gdd„d|ƒ}|ƒ}tƒ}tƒ}g‰‡‡fdd „}t ƒ} || _ t || d |j ||d |ƒ} WdQRX|j | |kƒ|jˆ||d |fgƒdS) Nr)r?)r*)r)ΪComponentLookupErrorc@s eZdZdS)z0Test_adapter_hook.test_hook_raises..IFooN)r r r rrrrrKχsrKcsˆj||||fƒˆdƒ‚dS)NZtesting)rL)rHrrIrJ)rTrNrrrOύsz9Test_adapter_hook.test_hook_raises.._adapter_hook)r+r )rDr?r,r*rrrErTrr-r r.r)rr) rr?r*rrKrrPrQrOr+rRr)rTrNrΪtest_hook_raisesςs     z"Test_adapter_hook.test_hook_raises)rCN)r r r r)rSrUrrrrrGΧs rGc@seZdZdd„Zdd„ZdS)Ϊ Test_setHookscCsddlm}|ƒS)Nr)ΪsetHooks)rrW)rrWrrrr) s zTest_setHooks._callFUTc Cszddl}ddlm}Gdd„dtƒ}|ƒ}|ƒ}t|jj||d|jƒWdQRX|j|j |j ƒ|j|j |j ƒdS)Nr)r*c@seZdZdd„Zdd„ZdS)z$Test_setHooks.test_it.._HookcSs d|_dS)N)Ϊ_hooked)rrrrrAsz-Test_setHooks.test_it.._Hook.__init__cSs ||_dS)N)rX)rΪvaluerrrΪsethooksz,Test_setHooks.test_it.._Hook.sethookN)r r r rArZrrrrΪ_Hooksr[)r r2) Ϊzope.component._apir,r*rr.Ϊ componentΪ_apir)rrXr r2)rΪzoper*r[r r2rrrr:s  zTest_setHooks.test_itN)r r r r)r:rrrrrVsrVc@seZdZdd„Zdd„ZdS)ΪTest_resetHookscCsddlm}|ƒS)Nr)Ϊ resetHooks)rra)rrarrrr)"s zTest_resetHooks._callFUTc Cs’ddl}ddlm}Gdd„dtƒ}|ƒ}|ƒ}t|jj||d,t|jdƒ|j d|jj kƒ|j ƒWdQRX|j |j ƒ|j |j ƒ|j d|jj kƒdS)Nr)r*c@seZdZdd„Zdd„ZdS)z&Test_resetHooks.test_it.._HookcSs d|_dS)NF)Ϊ_reset)rrrrrA*sz/Test_resetHooks.test_it.._Hook.__init__cSs d|_dS)NT)rb)rrrrΪreset,sz,Test_resetHooks.test_it.._Hook.resetN)r r r rArcrrrrr[)sr[)r r2r )r\r,r*rr.r]r^Ϊgetattrr+rr%r)rbr$)rr_r*r[r r2rrrr:&s     zTest_resetHooks.test_itN)r r r r)r:rrrrr` sr`c@seZdZeZdZdS)r-N)r r r r9rrrrrrr-Asr-c@s$eZdZdd„Zdd„Zdd„ZdS)r.c sDˆ|_t‡fdd„|Dƒƒ|_x |jƒD]\}}tˆ||ƒq(WdS)Ncsg|]}|tˆ|ƒf‘qSr)rd)Ϊ.0Ϊkey)Ϊmodulerrϊ Isz$_Monkey.__init__..)rgΪdictΪ to_restoreΪitemsΪsetattr)rrgΪkwrfrYr)rgrrAGsz_Monkey.__init__cCs|S)Nr)rrrrΪ __enter__Msz_Monkey.__enter__cCs*x$|jjƒD]\}}t|j||ƒq WdS)N)rjrkrlrg)rΪexc_typeZexc_valZexc_tbrfrYrrrΪ__exit__Psz_Monkey.__exit__N)r r r rArnrprrrrr.Esr.c CsRtjtjtƒtjtƒtjtƒtjtƒtjtƒtjtƒtjt ƒtjt ƒtjt ƒf ƒS)N) ΪunittestZ TestSuiteZ makeSuiterrr'r6r8r;rGrVr`rrrrΪ test_suiteUsrr)Ϊ__doc__rqZTestCaserrr'r6r8r;rGrVr`rr9r-r.rrrrrrΪs&.1