mò .á¸Ec@sPdkZdeifd„ƒYZd„Zd„Zedjo eƒndS(Nt TestsOfBrokencBsMtZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z RS(s0Tests for the factory for "broken" classes. cCs]dkl}dkl}h|_|iƒz|ii|ƒ|iƒWd|iƒXdS(N(sbroken_klasses(sbroken_klasses_lock( tOFS.Uninstalledtbroken_klassestbroken_klasses_locktselftbroken_klasses_OLDtacquiretupdatetcleartrelease(RRR((t9/data/zmath/zope/lib/python/OFS/tests/test_Uninstalled.pytsetUps    cCsTdkl}dkl}|iƒz|iƒ|i|iƒWd|iƒXdS(N(sbroken_klasses(sbroken_klasses_lock( RRRRRRRRR (RRR((R ttearDown s    cCsdkl}dkl}||ddƒ}|it||ƒƒ|i|i dƒ|i|i dƒ|i|i dƒdS(N(sBroken(s BrokenClassssome.python.moduletMyClasstunknown(ssome.python.moduleR ( RtBrokent BrokenClassRtNonetklasst failUnlesst issubclasst assertEqualt__name__t __module__t product_name(RRRR((R t?test_Broken_non_product_no_oid_yields_class_derived_from_Broken*s  cCsdkl}dkl}||ddƒ}|it||ƒƒ|i|i dƒ|i|i dƒ|i|i dƒdS(N(sBroken(s BrokenClasssProducts.MyProduct.MyClassR t MyProduct(sProducts.MyProduct.MyClasssMyClass( RRRRRRRRRRRR(RRRR((R t;test_Broken_product_no_oid_yields_class_derived_from_Broken5s  cCs»dkl}dkl}dd}|||dƒ}|it||ƒƒ|i|i|jƒ|i |i |ƒ|i }|i |i dƒ|i |idƒ|i |idƒdS( N(sBroken(s BrokenClasssisProducts.MyProduct.MyClassR R(sProducts.MyProduct.MyClasssMyClass(RRRtOIDRtinstRt isinstancet_p_jarRt_p_oidt __class__RRRR(RRRRRR((R t@test_Broken_product_with_oid_yields_instance_derived_from_Broken@s    cCs‘dkl}dkl}dd}|||dƒ}y|iƒ}Wn7tj o+}|i dt |ƒjt |ƒƒnX|i dƒdS( N(sBroken(s BrokenClasssisProducts.MyProduct.MyClassR s('__getstate__' didn't raise SystemError!(sProducts.MyProduct.MyClasssMyClass( RRRRRRt __getstate__tdictt SystemErrorteRtstrtfail(RR&RRRR$R((R t9test_Broken_instance___getstate___raises_useful_exceptionPs   'c Csªdkl}dkl} dd}ddddd d g}d d d dddg}|||dƒ}x|D]}t ||ƒ}qmWx|D]}t ||ƒ} qWdS(N(sBroken(s BrokenClasssit _p_changedRt_p_mtimeR t _p_serialt_p_statet _p_deactivatet _p_activatet _p_invalidatet _p_getattrt _p_setattrt _p_delattrsProducts.MyProduct.MyClassR (sProducts.MyProduct.MyClasssMyClass( RRRRtPERSISTENCE_ATTRStPERSISTENCE_METHODSRRt attr_nametgetattrtattrt meth_nametmeth( RR4R8R5RR6R9RRR:R((R t9test_Broken_instance___getattr___allows_persistence_attrs_s   ( RRt__doc__R R RRR"R)R;(((R Rs   cCs&tiƒ}|ititƒƒ|S(N(tunittestt TestSuitetsuitetaddTestt makeSuiteR(R?((R t test_suitezs cCstiddƒdS(Nt defaultTestRB(R=tmain(((R RDst__main__(R=tTestCaseRRBRDR(RDR=RBR((R t?s i