ó {G_Tc@s¤dZddlZddlmZmZddlmZmZerhddlZddl Z d„Z ndej fd„ƒYZ d„Z ed kr e ƒndS( s/ Test cases for codeop.py Nick Mathewson iÿÿÿÿN(t run_unittestt is_jython(tcompile_commandtPyCF_DONT_IMPLY_DEDENTcCs:x3|jƒD]%\}}t|ƒr t||R Ntevalitatvalue( RRt assertTruetsyststdoutt cStringIOtStringIOtcompileR t assertEqualR R( tselftstrtsymboltcodeRtrt saved_stdouttctxtexpected((s,/usr/local/lib/python2.7/test/test_codeop.pyt assertValids$       cCs |jt|d|ƒdƒdS(s5succeed iff str is the start of a valid piece of codeRN(RRtNone(RRR((s,/usr/local/lib/python2.7/test/test_codeop.pytassertIncomplete-sicCsdy!t|d|ƒ|jdƒWn<tk rA|j|ƒntk r_|j| ƒnXdS(s8succeed iff str is the start of an invalid piece of codeRs$No exception raised for invalid codeN(Rtfailt SyntaxErrorRt OverflowError(RRRt is_syntax((s,/usr/local/lib/python2.7/test/test_codeop.pyt assertInvalid1s  cCs|j}ts\|jtdƒtdddtƒƒ|jtdƒtdddtƒƒn|dƒ|dƒ|dƒ|dƒ|dƒ|d ƒ|d ƒ|d ƒ|d ƒ|d ƒ|dƒ|dƒ|dƒ|dƒ|dƒ|dƒ|dƒ|dƒ|dƒ|dƒ|dƒ|dƒ|ddƒ|ddƒ|ddƒ|ddƒ|ddƒ|d dƒ|d!dƒ|d ƒ|d"ƒ|dƒ|d#ƒ|ddƒ|d dƒ|d!dƒ|d$ƒ|d%ƒ|d&ƒdS('NttpasssR s sa = 1s a = 1sa = 1 sa = 1 s a = 1 sdef x(): pass s if 1: pass s if 1: pass s if 1: pass sdef x(): pass sdef x(): pass sdef x(): pass spass s3**3 sif 9==3: pass else: pass s(if 1: pass if 1: pass else: pass s #a #b a = 3 s #a a=3 sa=3 s a = 9+ \ 3s3**3R s(lambda z: z**3)s9+ \ 3s9+ \ 3 s a**3s a**3s #a #b a**3s if 1: a=1 s #a a=3 s1def f(): try: pass finally: [x for x in (1,2)] sdef f(): pass #foo s@a.b.c def f(): pass (RRRRRR(Rtav((s,/usr/local/lib/python2.7/test/test_codeop.pyt test_valid;s^                                           cCs|j}|dƒ|dƒ|dƒ|dƒ|dƒ|dƒ|dƒ|dƒ|dƒ|d ƒ|d ƒ|d ƒ|d ƒ|d ƒ|dƒ|dƒ|dƒ|dƒ|dƒ|dƒ|dƒ|dƒ|dƒ|dƒ|dƒ|ddƒ|ddƒ|ddƒ|ddƒ|ddƒ|ddƒ|d dƒ|d!ƒ|d"ƒ|d#ƒ|d$ƒ|d%ƒ|d&ƒ|d'ƒ|d(ƒ|d)ƒ|d*ƒ|d+ƒ|d,ƒ|d-ƒ|d.ƒ|d/ƒ|d0ƒ|d1ƒ|d2ƒ|d3ƒ|d4ƒ|d5ƒ|d6ƒ|d7ƒ|d8ƒ|d9ƒ|d:ƒ|d;ƒ|d<ƒ|d=ƒ|d>ƒ|d?ƒ|d@ƒ|dAƒ|dBƒ|dCƒ|dDƒ|dEƒ|dFƒ|dGƒ|dHƒ|dIƒ|dJƒ|dƒ|dKƒ|dLƒ|dMƒ|dƒ|dNƒ|dOƒ|dPƒ|dQƒ|dRƒ|dSƒ|dTƒ|dUƒ|dVƒ|dWƒ|dXƒ|dYƒ|dZƒ|d[ƒ|d\ƒ|d]ƒ|d^ƒ|d_ƒ|d`ƒ|daƒ|dbƒ|dcƒ|ddƒdS(eNs(a **s(a,b,s(a,b,(sa = (sa = {sb + {sif 9==3: pass else:sif 9==3: pass else: sif 9==3: pass else: passsif 1:sif 1: s if 1: pass if 1: pass else:s!if 1: pass if 1: pass else: s'if 1: pass if 1: pass else: passsdef x():s def x(): s def x(): sdef x(): passsdef x(): pass sdef x(): pass s def x(): passsa = 9+ \sa = 'a\s a = '''xyR&R s t(s( s(9+s9+ \s lambda z: \s!if True: if True: if True: s@a(s@a(bs@a(b,s@a(b,cs@a(b,c,sfrom a import (sfrom a import (bsfrom a import (b,sfrom a import (b,csfrom a import (b,c,t[s[as[a,s[a,bs[a,b,t{s{as{a:s{a:bs{a:b,s{a:b,cs{a:b,c:s{a:b,c:ds {a:b,c:d,sa(sa(bsa(b,sa(b,csa(b,c,sa[sa[bsa[b,sa[b:sa[b:csa[b:c:sa[b:c:dsdef a(sdef a(bsdef a(b,s def a(b,cs def a(b,c,s(as(a,s(a,bsif a: pass elif b:sif a: pass elif b: pass else:swhile a:swhile a: pass else:s for a in b:sfor a in b: pass else:stry:stry: pass except:stry: pass finally:s!try: pass except: pass finally:swith a:s with a as b:sclass a:sclass a(s class a(bs class a(b,s class a():s[x fors [x for x ins [x for x in (s(x fors (x for x ins (x for x in ((R (Rtai((s,/usr/local/lib/python2.7/test/test_codeop.pyttest_incomplete}sÎ                                                                                                      cCs3|j}|dƒ|dƒ|dƒ|dƒ|dƒ|dƒ|dƒ|dƒ|d ƒ|d ƒ|d ƒ|d d ƒ|dd ƒ|dd ƒ|dd ƒ|dd ƒ|dd ƒ|dd ƒ|dd ƒ|dƒ|dƒ|dƒ|dƒ|dƒ|dƒ|dƒ|dƒdS(Nsa bsa @sa b @sa ** @sa = sa = 9 +sdef x(): pass s if 1: pass passs a = 9+ \ sa = 'a\ sa = 'a\ sa = 1R sa = (t]s())s[}s9+s lambda z:s return 2.3sif (a == 1 and b = 2): passsdel 1sdel ()sdel (1,)sdel [1]sdel '1's"[i for i in range(10)] = (1, 2, 3)(R%(RR-((s,/usr/local/lib/python2.7/test/test_codeop.pyt test_invalidýs8                           cCsZ|jtddƒjtdddƒjƒ|jtddƒjtdddƒjƒdS(Nsa = 1 tabcR tdef(RRt co_filenameRtassertNotEqual(R((s,/usr/local/lib/python2.7/test/test_codeop.pyt test_filename$s( t__name__t __module__RR R%R)R.R0R5(((s,/usr/local/lib/python2.7/test/test_codeop.pyR s   B € 'cCsttƒdS(N(RR (((s,/usr/local/lib/python2.7/test/test_codeop.pyt test_main+st__main__(t__doc__tunittestttest.test_supportRRtcodeopRRRRR tTestCaseR R8R6(((s,/usr/local/lib/python2.7/test/test_codeop.pyts    ÿ