m $Ec@sSdkZdkZdkZdklZdklZdklZdkl Z e djoei Z n*ei ieZ e pei Z ndfdYZdZd efd YZd eifd YZd efdYZdefdYZdeefdYZdZdZe djo endS(N(s PythonScript(snewSecurityManager(snoSecurityManager(sverifyt__main__tWarningInterceptorcBs&tZdZdZdZdZRS(NcCsQ|idj odSndk}dkl}|i|_||_|_dS(N(sStringIO(tselft _old_stderrtNonetsystStringIOtstderrt_our_stderr_stream(RRR((tL/data/zmath/zope/lib/python/Products/PythonScripts/tests/testPythonScript.pyt_trap_warning_output!s    cCs1|idjodSndk}|i|_dS(N(RRRRR(RR((R t_free_warning_output,s (t__name__t __module__RRRR R (((R Rs cCs/tiitdd|}t|diS(Nttscriptss%s.pstr(tostpathtjointheretnametopentread(RR((R treadf6stVerifiedPythonScriptcBstZdZRS(NcCst|ti||S(N(tverifytcodet PythonScriptt_newfunR(RR((R R<s (R R R(((R R:stPythonScriptTestBasecBs2tZdZdZddZddZRS(NcCstdddS(N(tnewSecurityManagerR(R((R tsetUpBscCs tdS(N(tnoSecurityManager(R((R ttearDownEscCsYtd}|i|ph|i||i|iot|idn|S(Ntpsi( RR"tZBindings_edittbindtwritettxtt _makeFunctionterrorst SyntaxError(RR&R$R"((R t_newPSHs    cCs_t|}|i|ph|it||i|iot |idn|S(Ni( RtfnameR"R#R$R%RR'R(R)(RR+R$R"((R t_filePSQs   (R R RR!RR*R,(((R RAs   tTestPythonScriptNoAqcBstZdZdZdZdZdZdZdZdZ d Z d Z d Z d Z d ZdZdZdZdZdZdZdZdZdZdZRS(NcCs)|id}|i|djdS(Nt(RR*temptyt failUnlessR(RR/((R t testEmpty\scCs&|id}|i|ddS(Nsif 1: return 2i(RR*trest assertEqual(RR2((R t testIndented`scCs&|id}|i|ddS(Nsreturn 1i(RR*R2R3(RR2((R t testReturnescCs)|id}|i|djdS(Ntreturn(RR*R2R0R(RR2((R ttestReturnNoneiscCs)|idd}|i|ddS(Ns##parameters=x return xR&(RR*R2R3(RR2((R t testParam1mscCsE|i}|iddd\}}||d||ddS(Ns##parameters=x,y return x,ytonettwo(RR3teqR*R9R:(RR;R:R9((R t testParam2qs  cCsddk}|id }di|}|id||f}||}|i |t |dS(Nit,s##parameters=%s return %s( tstringtletterstparamsRtsparamsRR*R"R2R3ttuple(RR"RAR>R2R@((R t testParam26ws    cCs&|id}|i|ddS(Nsreturn 1 * 5 + 4 / 2 - 6i(RR*R2R3(RR2((R ttestArithmeticscCsH|id}|i|d|id}|i|ddS(Ns,return reduce(lambda x, y: x + y, [1,3,5,7])is/return reduce(lambda x, y: x + y, [1,3,5,7], 1)i(RR*R2R3(RR2((R t testReducescCsO|i}|id\}}}||d||d||ddS(Ns+import string; return string.split("a b c")tatbtc(RR3R;R*RFRGRH(RRFRGR;RH((R t testImports    cCs&|id}|i|ddS(Nt while_loopi(RR,R2R3(RR2((R t testWhileLoopscCs&|id}|i|ddS(Ntfor_loopi (RR,R2R3(RR2((R t testForLoopscCsK|i}|id\}}||dg||hdd<dS(Ntmutate_literalsiRG(RR3R;R,tltd(RR;RORP((R ttestMutateLiteralss cCsZ|i}|id\}}||hdd<dd<dd<||ddS( Nttuple_unpack_assignmentRFiRGiRHii(RR3R;R,RPtx(RRSR;RP((R ttestTupleUnpackAssignments (cCs&|id}|i|ddS(Nsreturn not not "this"i(RR*R2R3(RR2((R ttestDoubleNegationscCs?|i}|id\}}||d||ddS(Nt try_excepti(RR3R;R,RFRG(RRFRGR;((R t testTryExcepts  cCs#|id}|i|dS(Nt big_boolean(RR,R2R0(RR2((R ttestBigBooleansc)Cs|id}|i|ddddddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'g'dS((Nt fibonacciiiiiii ii"i7iYiiiyibii=i iUimi*i/Eioi i%i1iBisii( i݊i=!i5iWǐiiypi)pTi(RR,R2R3(RR2((R t testFibonacciscCs&|id}|i|ddS(Nt simple_printsa 1 [] (RR,R2R3(RR2((R ttestSimplePrintscCs&|id}|i|ddS(Nt complex_printsdouble double x: 1 y: 0 1 2 (RR,R2R3(RR2((R ttestComplexPrintscCsV|iddhdd<}|ihdd<d|i<}|i|ddS(Ntns_bindR$tname_nst_tyesitno(RR,tft__render_with_namespace__tfailtboundR3(RRhRe((R t testNSBinds$cCs#|id}|i|dS(Nt boolean_map(RR,R2R0(RR2((R ttestBooleanMapscCs5|id}|i|it|idS(NR^(RR,ReR3tget_sizetlenR(RRe((R t testGetSizes(R R R1R4R5R7R8R<RCRDRERIRKRMRQRTRURWRYR[R]R_RiRkRn(((R R-Zs.                     tTestPythonScriptErrorscBs2tZdddZdZdZdZRS(NcCs|o| o|p|pt|djot|}n|tjo|it|i |n |i |}|i||dS(N( RtbodytAssertionErrorRRterrorR)Rt assertRaisesR*R"(RRrRRpR"((R tassertPSRaisess$  cCs|itdddS(NRtsubversive_except(RRtR)(R((R ttestSubversiveExceptscCs*|itdd|itdddS(NRpsfrom string import *sfrom datetime import datetime(RRtt ImportError(R((R ttestBadImportsscCsrd d g}dddg}xP|D]H\}}x9|D]1}|i|d||}|it |q5Wq"WdS( Ns import stringR>s def f(): passRes%s.splat = 'spam's+setattr(%s, '_getattr_', lambda x, y: True)s del %s.splats (s import stringsstring(s def f(): passRe( tcasestassignstdefnRtasnRR*ReRst TypeError(RRReR{RyR|Rz((R ttestAttributeAssignments  (R R RRtRvRxR~(((R Ros  tTestPythonScriptGlobalscBsGtZdZdZddddZdZdZdZRS(NcCsti|dS(N(RRR(R((R RscCs|iti|dS(N(RR RR!(R((R R!s cCsb|djo f}n|djo h}nhdd<}|i||}|i|||S(Ntname_containert container( targsRtkwstbindingsRR,tscriptRet_exect bound_names(RRRRRReR((R Rs    cCs5hdd<}|id|}|i|ddS(NRitglobal_is_declarationi(RRRtresultsR3(RRR((R ttestGlobalIsDeclaration scCs&|id}|i|ddS(Nsclass.__name__s'foo'>s'string'(s'foo'>s'string'(RR,ReR3(RRe((R t test__name__scCs=|i|id}|i|dg|idS(Ntfilepathi(RR R,ReR3R (RRe((R t test_filepaths ( R R RR!RRRRR(((R Rs     cCsRti}|itit|itit|itit|S(N(tunittestt TestSuitetsuitetaddTestt makeSuiteR-RoR(R((R t test_suites  cCstiitdS(N(RtTextTestRunnertrunR(((R tmain"s(RRtwarningst#Products.PythonScripts.PythonScriptRt AccessControl.SecurityManagementRR tRestrictedPython.tests.verifyRR tgetcwdRRtdirnamet__file__RRRtTestCaseRR-RoRRR(RoRRRRR RRRRR-RRRRRR((R t? s(      w&#