mς %U²Ic@sͺdkZdklZd„Zdefd„ƒYZdefd„ƒYZddd„Z d„Z d „Z d ei fd „ƒYZ d „Zed jo eƒndS(N(s test_supportc s‡d†}|S(Ncs|iiˆƒ|S(N(tfunct__dict__tupdatetkwds(R(R(t1/data/zmath/lib/python2.4/test/test_decorators.pytdecorates(R(RR((RRt funcattrss tMiscDecoratorscBstZed„ƒZRS(Ncs‡d†}|S(Ncsˆ|id<|S(Ntauthor(tnameRR(R(R (RR s (R(R R((R RR s (t__name__t __module__t staticmethodR(((RR st DbcheckErrorcBstZd„ZRS(NcCs$ti|d||||fƒdS(Ns+dbcheck %r failed (func=%s args=%s kwds=%s)(t Exceptiont__init__tselftexprstrRtargsR(RRRRR((RRs(R R R(((RR scs‡‡‡d†}|S(s+Decorator to implement debugging assertionscs5tˆdˆidƒ‰‡‡‡‡‡d†}|S(Ns dbcheck-%stevalcs9tˆˆˆƒptˆˆ||ƒ‚nˆ||ŽS(N( RtexprtglobalstlocalsR RRRR(RR(RRRRR(Rtchecks(tcompileRRt func_nameRR(RRR(RRR(RRRRsN(R(RRRR((RRRRtdbcheckscs‡d†}|S(s&Decorator to count calls to a functioncs2ˆi‰dˆˆ<‡‡‡d†}ˆ|_|S(Nicsˆˆcd7<ˆ||ŽS(Ni(tcountsRRRR(RR(RRR(Rtcall-s(RRRR(RRR(R(RRRR*s    N(R(RR((RRt countcalls(s cs%h‰‡‡d†}ˆi|_|S(Ncs\y ˆ|SWnItj o!ˆ|Œ}|ˆ|<|Sntj oˆ|ŒSnXdS(N(tsavedRtKeyErrorRtrest TypeError(RR (RR(RR8s   (RRRR(RRR((RRRtmemoize6s tTestDecoratorscBsbtZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z RS( NcCsIdtfd„ƒY}|i|iƒdƒ|i|ƒiƒdƒdS(NtCcBstZed„ƒZRS(NcCsdS(Ni*((((RtfooKs(R R R R%(((RR$Jsi*(tobjectR$Rt assertEqualR%(RR$((Rt test_singleIscCs&td„ƒ}|it|dƒdS(NcCs|S(N(tx(R)((Rt notamethodQsi(R R*Rt assertRaisesR!(RR*((Rttest_staticmethod_functionPscCsKtƒ}|idƒd„ƒ}|i|ƒdƒ|i|idƒdS(NtCleesecCsdS(Ni*((((RR%Xsi*(Rt decoratorsRR%RR'(RR%R.((Rt test_dottedVs cCsόd„}d}tdddd ƒ}|||Žd „ƒ}|i|ƒd ƒ|i|i||fƒ|d d ddddƒd„ƒ}|i|ƒdƒ|i|idtddddƒfƒ|dd ƒd„ƒ}|i|idhfƒdS(Ncs‡‡d†}|S(Ncst|dˆˆfƒ|S(Ntdbval(tsetattrRRR(R(RR(RRbs(R(RRR((RRRtnoteargsastNowtistthettimetoneittwoicCsdS(Ni*((((Rtf1isi*tterrytgilliamterictidletjohntcleesecCsdS(NiT((((Rtf2nsiTcCsdS(N((((Rtf3ts(R3R4R5R6(R:R;(ii( R2RtdictRR9RR'R0R@RA(RR9R@R2RRRA((Rt test_argforms]s $(cCsHtdƒd„ƒ}|i|ddƒdƒ|it|ddƒdS(Nsargs[1] is not NonecCs||S(N(tatb(RDRE((Rtfysiii(RRFRR'R+R tNone(RRF((Rt test_dbcheckxscCs5h}tt|ƒd„ƒƒ}|i|idƒ|i|tddƒƒ|i|dƒdƒ|i|ddƒ|i|dƒdƒ|i|ddƒ|i|dƒdƒ|i|ddƒ|i|d gƒd d gƒ|i|ddƒ|i|d gƒd d gƒ|i|ddƒdS( NcCs|dS(Ni(R)(R)((Rtdouble‚sRIiiiiiii (RR"RRIRR'RRB(RRIR((Rt test_memoizescCsυxJdddgD]9}t|ddƒd|}|itt|ddƒqW|ittdddƒd „}td dd |ƒ}xjd t fd t fd t fd t fgD]>\}}d|}t|ddƒ}|i|t||ƒq―WdS(Ns1+2sx[3]s(1, 2)ttestexprtexecs@%s def f(): passttests@f1 @f2 def f(): passcCs t‚dS(N(tNotImplementedError(R((Rtunimp«stnullvalROtundefs nullval.attrs$@%s def f(): pass assert f() is None(RRtcodestrRR+t SyntaxErrorRORBRGtcontextt NameErrorR!tAttributeErrorRNtexctcodeR(RRWRRRRXRTRO((Rt test_errorsšs    +  cCsudtfd„ƒY}|i|ƒiƒdƒ|i|iidƒ|i|iidƒ|i|iidƒdS(NR$cBs5tZeddddƒeddƒd„ƒƒZRS(Ntabcitxyzthahatboohi*cCsdS(Ni*((R((RR%Ήs(R R RR%(((RR$Έsi*iR\(R&R$RR'R%RZR[R](RR$((Rt test_double·s cCsDd„}|dƒ|dƒd„ƒƒ}|i|ƒddƒdS(Ncs‡d†}|S(s„Decorator factory that returns a decorator that replaces the passed-in function with one that returns the value of 'num'cs ‡d†S(NcsˆS(N(tnum((R_(RtΘs((R(R_(RtdecoΗsN(Ra(R_Ra((R_RtcallnumΔs iicCsdS(Ni*((((RR%Κss,Application order of decorators is incorrect(RbR%RR'(RR%Rb((Rt test_orderΑs !c sSg‰‡d†‰dtf‡‡d†ƒY}t|dddgƒ\}}}ddd d d d d dddddg }g‰|i|i ƒ|i|i ƒ|i|i ƒd„ƒƒƒ}|i |ƒdƒ|i ˆ|ƒg‰d„}|i|i ƒ|i|i ƒ|i|i ƒ|ƒƒƒ}|i |ƒdƒ|i ˆ|ƒdS(Ncs$ˆidˆƒ‡‡d†}|S(Ntmakedeccsˆidˆƒ|S(Ntcalldec(tactionstappendttagR(R(RhRf(RRβs(RfRgRhR(RhR(Rf(RhRtmake_decoratorΰstNameLookupTracercs tZd„Z‡‡d†ZRS(NcCs ||_dS(N(tindexR(RRk((RRθscsx|djodˆ}}n=|djodt|iƒ}}ntptd|‚ˆi d||ifƒ|S(NRitevalnametargtevalargssUnknown attrname %ss%s%d( tfnameRitopnameR tstrRRktFalsetAssertionErrorRfRg(RRoR Rp(RfRi(Rt __getattr__λs  (R R RRt((RfRi(RRjηs iiit evalname1t evalargs1tmakedec1t evalname2t evalargs2tmakedec2t evalname3t evalargs3tmakedec3tcalldec3tcalldec2tcalldec1cCsdS(Ni*((((RR%ύsi*cCsdS(Ni*((((Rtbars(RfRiR&Rjtmaptc1tc2tc3texpected_actionsRmR%RR'R( RRjRfR†RR…R„RƒR%Ri((RfRiRttest_eval_orderΠs !*? <( R R R(R,R/RCRHRJRYR^RcR‡(((RR#Gs        cCstitƒdS(N(t test_supportt run_unittestR#(((Rt test_main st__main__(tunittestRMRˆRR&RRR RGRRR"tTestCaseR#RŠR ( RˆR#RRŒRRRŠRR R"((Rt?s      Ζ