def test_as(self):
     src = """
     def test():
         with foo as bar:
             x + y
     """
     expected = """
     def test():
         mgr__U0 = foo
         exit__U0 = type(mgr__U0).__exit__
         value__U0 = type(mgr__U0).__enter__(mgr__U0)
         exc__U0 = True
         try:
             try:
                 bar = value__U0
                 x + y
             except:
                 exc__U0 = False
                 if not exit__U0(mgr__U0, *sys.exc_info()):
                     raise
         finally:
             if exc__U0:
                 exit__U0(mgr__U0, None, None, None)
     """
     utils.compare(src, expected, dewith.DeWith)
 def test_tryfinally(self):
     src = """
     def test():
         try:
             return "hi"
         finally:
             return "hello"
         print "world"
     """
     expected = """
     def test():
         returnvalue__U0 = None
         interrupted__U0 = "0_none"
         try:
             returnvalue__U0 = "hi"
             interrupted__U0 = "3_return"
         finally:
             interrupted__U1 = interrupted__U0
             returnvalue__U0 = "hello"
             interrupted__U0 = "3_return"
             interrupted__U0 = __pydron_max__(interrupted__U0, interrupted__U1)
         if interrupted__U0 == "0_none":
             print "world"
         return returnvalue__U0
     """
     utils.compare(src, expected, DeInterrupt)
 def test_for_break_continue(self):
     src = """
     def test():
         for a in b:
             if a:
                 break
             if b:
                 continue
             print "hi"
     """
     expected = """
     def test():
         interrupted__U0 = "0_none"
         for a in b:
             interrupted__U0 = "0_none"
             if a:
                 interrupted__U0 = "2_break"
             if interrupted__U0 == "0_none":
                 interrupted__U0 = "0_none"
                 if b:
                     interrupted__U0 = "1_continue"
                 if interrupted__U0 == "0_none":
                     print "hi"
             if interrupted__U0 == "1_continue":
                 interrupted__U0 = "0_none"
             if ((interrupted__U0 == '2_break') or (interrupted__U0 == '3_return')):
                 break
         if interrupted__U0 == "2_break":
             interrupted__U0 = "0_none"
         return None
     """
     utils.compare(src, expected, DeInterrupt)
 def test_return_skip_nested(self):
     src = """
     def test():
         if a:
             if b:
                 return "Hello"
             print "a"
         print "b"
     """
     expected = """
     def test():
         returnvalue__U0 = None
         interrupted__U0 = "0_none"
         if a:
             interrupted__U0 = "0_none"
             if b:
                 returnvalue__U0 = 'Hello'
                 interrupted__U0 = '3_return'
             if interrupted__U0 == "0_none":
                 print "a"
         if interrupted__U0 == "0_none":
             print "b"
         return returnvalue__U0
     """
     utils.compare(src, expected, DeInterrupt)
 def test_compare_oneop(self):
     src = """
     test = a == b
     """
     expected = """
     test = a == b
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_augassign_simple(self):
     src = """
     x += "s"
     """
     expected = """
     x += "s"
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_delete_single(self):
     src = """
     del x[0]
     """
     expected = """
     del x[0]
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_single_assignment(self):
     src = """
     x = 1
     """
     expected = """
     x = 1
     """
     utils.compare(src, expected, demultitarget.DeMultiTarget)
 def test_locals_globals(self):
     src = """
     exec "code" in context, context2
     """
     expected = """
     __pydron_exec__("code", context2, context)
     """
     utils.compare(src, expected, deexec.DeExec)
 def test_call_no_args(self):
     src = """
     f()
     """
     expected = """
     f()
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_attr(self):
     src = """
     x = a.y
     """
     expected = """
     x = a.y
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_exec(self):
     src = """
     exec "code"
     """
     expected = """
     __pydron_exec__("code", locals(), globals())
     """
     utils.compare(src, expected, deexec.DeExec)
 def test_binop_single(self):
     src = """
     x = 1 + 2
     """
     expected = """
     x = 1 + 2
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_unaryop(self):
     src = """
     x = -(1+2)
     """
     expected = """
     binop__U0 = 1 + 2
     x = - (binop__U0)
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_dict(self):
     src = """
     x = {a+b: c}
     """
     expected = """
     binop__U0 = a+b
     x = {binop__U0: c}
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_tuple_nested(self):
     src = """
     (a,(b,c),d) = x
     """
     expected = """
     a,tuple__U0,d = x
     b,c = tuple__U0
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_attr_lhr(self):
     src = """
     (a+b).y = x
     """
     expected = """
     binop__U0 = a + b
     binop__U0.y = x
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_subscript(self):
     src = """
     x = a[a+b]
     """
     expected = """
     binop__U0 = a + b
     x = a[binop__U0]
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_repr(self):
     src = """
     `a+b`
     """
     expected = """
     binop__U0 = a + b
     `binop__U0`
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_call_func(self):
     src = """
     (a+b)()
     """
     expected = """
     binop__U0 = a + b
     binop__U0()
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_augassign(self):
     src = """
     x += "s" + "t"
     """
     expected = """
     binop__U0 = "s" + "t"
     x += binop__U0
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_raise_onearg(self):
     src = """
     raise a+b
     """
     expected = """
     binop__U0 = a + b
     raise binop__U0
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_delete(self):
     src = """
     del x[1 + 2]
     """
     expected = """
     binop__U0 = 1 + 2
     del x[binop__U0]
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_tuple(self):
     src = """
     x = (1,2+3,4)
     """
     expected = """
     binop__U0 = 2 + 3
     x = (1, binop__U0, 4)
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_multi_assignment_str(self):
     src = """
     x = y = "a"
     """
     expected = """
     x = "a"
     y = "a"
     """
     utils.compare(src, expected, demultitarget.DeMultiTarget)
 def test_binop(self):
     src = """
     x = 1 + 2 * 3
     """
     expected = """
     binop__U0 = 2 * 3
     x = 1 + binop__U0
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_multi_assignment_num(self):
     src = """
     x = y = 1
     """
     expected = """
     x = 1
     y = 1
     """
     utils.compare(src, expected, demultitarget.DeMultiTarget)
Exemple #28
0
 def test_list(self):
     src = """
     def test():
         return [x for x in lst]
     """
     expected = """
     def test():
         return [x for x in lst]
     """
     utils.compare(src, expected, decomp.DeComp)
 def test_subscript_lhs(self):
     src = """
     (a+b)[c+d] = x
     """
     expected = """
     binop__U0 = a + b
     binop__U1 = c + d
     binop__U0[binop__U1] = x
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_functiondef_primitive_default(self):
     src = """
     def f(x=1):
         pass
     """
     expected = """
     def f(x=1):
         pass
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_stream_multiple(self):
     src = """
     def test():
         print >> stream, "Hello", "World"
     """
     expected = """
     def test():
         __pydron_print__(stream, ("Hello", "World"), True)
     """
     utils.compare(src, expected, deprint.DePrint)
Exemple #32
0
 def test_noargs(self):
     src = """
     def test():
         pass
     """
     expected = """
     def test():
         pass
     """
     utils.compare(src, expected, dedefault.DeDefault)
 def test_single_obj(self):
     src = """
     def test():
         print "Hello"
     """
     expected = """
     def test():
         __pydron_print__(None, ("Hello",), True)
     """
     utils.compare(src, expected, deprint.DePrint)
Exemple #34
0
 def test_dict(self):
     src = """
     def test():
         return {k:v for k,v in lst}
     """
     expected = """
     def test():
         return dict([(k,v) for k,v in lst])
     """
     utils.compare(src, expected, decomp.DeComp)
 def test_nonewline(self):
     src = """
     def test():
         print "Hello", 
     """
     expected = """
     def test():
         __pydron_print__(None, ("Hello",), False)
     """
     utils.compare(src, expected, deprint.DePrint)
Exemple #36
0
 def test_slice_left(self):
     src = """
     def test():
         obj[:1]
     """
     expected = """
     def test():
         obj[slice(None,1,None)]
     """
     utils.compare(src, expected, deslice.DeSlice)
 def test_multi_assignment_complex(self):
     src = """
     x = y = 1 + 2
     """
     expected = """
     value__U0 = 1 + 2
     x = value__U0
     y = value__U0
     """
     utils.compare(src, expected, demultitarget.DeMultiTarget)
Exemple #38
0
 def test_slice(self):
     src = """
     def test():
         obj[1:2]
     """
     expected = """
     def test():
         obj[slice(1,2,None)]
     """
     utils.compare(src, expected, deslice.DeSlice)
Exemple #39
0
 def test_slice_step(self):
     src = """
     def test():
         obj[1:2:3]
     """
     expected = """
     def test():
         obj[slice(1,2,3)]
     """
     utils.compare(src, expected, deslice.DeSlice)
Exemple #40
0
 def test_set_nested_list(self):
     src = """
     def test():
         return {x for x in {y for y in lst}}
     """
     expected = """
     def test():
         return set([x for x in set([y for y in lst])])
     """
     utils.compare(src, expected, decomp.DeComp)
Exemple #41
0
 def test_set(self):
     src = """
     def test():
         return {x for x in lst}
     """
     expected = """
     def test():
         return set([x for x in lst])
     """
     utils.compare(src, expected, decomp.DeComp)
Exemple #42
0
 def test_set_nested_elt(self):
     src = """
     def test():
         return {{y for y in x} for x in lst}
     """
     expected = """
     def test():
         return set([set([y for y in x]) for x in lst])
     """
     utils.compare(src, expected, decomp.DeComp)
 def test_call_kwargs(self):
     src = """
     f(*(a+b),**(c+d))
     """
     expected = """
     binop__U0 = a + b
     binop__U1 = c + d
     f(*binop__U0, **binop__U1)
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_call_star(self):
     src = """
     f(a+b,*(c+d))
     """
     expected = """
     binop__U0 = a + b
     binop__U1 = c + d
     f(binop__U0, *binop__U1)
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_call_keywords(self):
     src = """
     f(x=a+b,y=c+d)
     """
     expected = """
     binop__U0 = a + b
     binop__U1 = c + d
     f(x=binop__U0, y=binop__U1)
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_raise_twoargs(self):
     src = """
     raise a+b, c+d
     """
     expected = """
     binop__U0 = a + b
     binop__U1 = c + d
     raise binop__U0, binop__U1
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
Exemple #47
0
 def test_simple(self):
     src = """
     class Test():
         x = 1
     """
     expected = """
     class Test():
         x = 1
         __pydron_members__ = locals()
     """
     utils.compare(src, expected, demembers.DeMembers)
 def test_classdef(self):
     src = """
     class f(a + b):
             pass
     """
     expected = """
     binop__U0 = a + b
     class f(binop__U0):
         pass
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_if(self):
     src = """
     if a + b:
         pass
     """
     expected = """
     binop__U0 = a + b
     if binop__U0:
         pass
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_return(self):
     src = """
     def f():
         return "s" + "t"
     """
     expected = """
     def f():
         binop__U0 = "s" + "t"
         return binop__U0
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_yield(self):
     src = """
     def f():
         yield a+b
     """
     expected = """
     def f():
         binop__U0 = a + b
         yield binop__U0
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_raise_threeargs(self):
     src = """
     raise a+b, c+d, e+f
     """
     expected = """
     binop__U0 = a + b
     binop__U1 = c + d
     binop__U2 = e + f
     raise binop__U0, binop__U1, binop__U2
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_for_target(self):
     src = """
     for x.abc in l:
         a + b
     """
     expected = """
     for target__U0 in l:
         x.abc = target__U0
         a + b
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_inside_if(self):
     src = """
     if test:
         x = a * b + c
     """
     expected = """
     if test:
         binop__U0 = a * b
         x = binop__U0 + c
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_tuple_nested2(self):
     src = """
     (a,(b,c[1+2]),d) = x
     """
     expected = """
     a,tuple__U0,d = x
     b,tuple__U1 = tuple__U0
     binop__U0 = 1 + 2
     c[binop__U0] = tuple__U1
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_for_iterator(self):
     src = """
     for x in a + b:
         pass
     """
     expected = """
     binop__U0 = a + b
     for x in binop__U0:
         pass
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_add_return(self):
     src = """
     def test():
         pass
     """
     expected = """
     def test():
         pass
         return None
     """
     utils.compare(src, expected, DeInterrupt)
 def test_functiondef_default(self):
     src = """
     def f(x=1+2):
         pass
     """
     expected = """
     binop__U0 = 1 + 2
     def f(x=binop__U0):
         pass
     """
     utils.compare(src, expected, decomplexexpr.DeComplexExpr)
 def test_func_one(self):
     src = """
     @mydecorator
     def test():
         pass
     """
     expected = """
     def test__U0():
         pass
     test = mydecorator(test__U0)
     """
     utils.compare(src, expected, dedecorator.DeDecorator)
 def test_func_arguments(self):
     src = """
     @mydecorator(1,2,3)
     def test():
         pass
     """
     expected = """
     def test__U0():
         pass
     test = mydecorator(1,2,3)(test__U0)
     """
     utils.compare(src, expected, dedecorator.DeDecorator)