mς ‹γΈEc@sdkZdkZdkZdklZdklZdkZdkZ dk l Z dk l Z lZlZdZdZdZdZd Zed Zd Zd efd „ƒYZdeifd„ƒYZdefd„ƒYZdeifd„ƒYZd„ZdZdZdS(N(sPersistentDict(sUPTODATE(stests(sManagedRegistrysPersistentModuleImportersPersistentPackages/import string x = 1 def f(y): return x + y s-from foo import x def f(y): return x + y s6x = 1 def inc(): global x x += 1 return x s'x = 1, 2, 3 def f(): return len(x) sidef f(x): def g(y): def z(z): return x + y + z return x + y return g s g = f(3) sFdef f(x): def g(y): return x + y return g inc = f(1) tTestPersistentModuleImportercBs#tZd„Zhhgd„ZRS(NcCs||_|iiƒdS(N(tregistrytselft _registryt _p_activate(RR((t9/data/zmath/zope/lib/python/zodbcode/tests/test_module.pyt__init__Ks cCsO|i|i||i|ƒ|ƒ}|dj o|Sn|i ||||ƒS(N( Rt_importRtnamet _get_parenttglobalstfromlisttmodtNonet _saved_importtlocals(RRR RR R ((Rt __import__Os   (t__name__t __module__RR(((RRIs tTestBasecBs,tZd„Zd„Zd„Zd„ZRS(NcCs©tiiiƒ|_|iiƒiƒ|_tƒ|_ t |i ƒ|_ |i i ƒ|i |idt _p_deactivateR1tatfR<(RR>((Rt testModule†s"    cCs¬|iiddƒtiƒdk}|i|idƒdƒ|i}|ii ddƒtiƒ|i ƒ|i|idƒdƒ|i|dƒdƒ|i ƒdS(NR>sdef f(x): return xisdef f(x): return x + 1i( RRR?RRR>R1RDtcopyt updateModuleRBR<(RRFR>((RttestUpdateFunctions     cCsΌ|iidtƒtiƒdk}|iƒ}|i }|i ƒ}|i ƒ}|i|d|ƒ|i|d|ƒ|iidtƒtiƒ|itt|dƒ|iƒdS(NR>itn(RRR?tsrcRRR>tFootinsttxtv0tmtv1RItv2R1RGtsrc2t assertRaisestAttributeErrortgetattrR<(RRNRPRQRLR>((RttestUpdateClasss       cCs|iidtƒ|iidtƒ|iiddƒ|iiddƒdk}dk}dk}dk}|i |i djƒt i ƒ|i |i ƒ|i |i ƒ|i |i ƒ|i |i ƒ|i|idƒdƒ|i|iidƒdƒ|i|idƒdƒ|i|idƒdƒ|i |i|iijƒ|i |i|ijƒd |_|i|idƒdƒt i ƒ|i|idƒdƒ|iƒ|i|idƒd ƒ|i|iidƒd ƒ|i|idƒd ƒ|iƒdS( Ntfootquuxtbars import footbazsfrom foo import *iii*i.(RRR?tfoo_srctquux_srcRWRYRZRXRAt_p_oidR RRR1RDRMRBR<(RRYRXRZRW((Rt testModules¬s4$    cCsΏ|iidtƒdk}d}|i_|i|ii|ƒt i ƒ|i|ii|ƒ|ii ƒ|i|ii|ƒ|i`|i t t|idƒ|ii|iƒdS(NRWtattr(RRR?R[RWtARDR_R1RRRBRSRTRUt func_codeR<(RR`RW((RttestFunctionAttrsΟs     cCsX|iidtƒdk}|iƒtiƒ|iƒ|i|i ƒ|i ƒdS(Nteffect( RRR?tside_effect_srcRctincRRRAt _p_changedR<(RRc((RttestFunctionSideEffectsέs    cCs||iidtƒtiƒdk}|i|iƒt |i ƒƒ|i ƒ|i|iƒt |i ƒƒ|i ƒdS(Nttest( RRR?t builtin_srcRRRhR1RDtlenRMRBR<(RRh((Rt testBuiltinsζs   cCsk|it|iidtƒ|iidtƒtiƒdk }|i dƒ}|i |dƒdƒdS(Ntnestediii( RRSt TypeErrorRR?tnested_err_srct nested_srcRRRlRDtgR1(RRpRl((Rt testNestedοs   cCsM|iiddƒtiƒdk}|i|idƒdƒ|iƒdS(NRhs$f = lambda x, y = lambda: 1: x + y()ii( RRR?RRRhR1RDR<(RRh((Rt testLambdaψs    cCs£|iidtƒtiƒdk}|iƒ}|i ƒ||i dii(RRR?RR'R@RRR>RBR1RCRDR*(RR>((RttestModuleReloads"       cCs’|iidtƒtiƒdk}|iƒ}|i ƒt ƒ|i d<}||d