def testTupleStore(self): expected_string = '(a, b) = ["c", "d"]' expected_node = GetNodeFromInput(expected_string).targets[0] test_node = create_node.Tuple(create_node.Name('a'), create_node.Name('b'), ctx_type=create_node.CtxEnum.STORE) self.assertNodesEqual(expected_node, test_node)
def testBasicIfExp(self): expected_string = """a if True else b""" expected_node = GetNodeFromInput(expected_string).value test_node = create_node.IfExp(create_node.Name('True'), create_node.Name('a'), create_node.Name('b')) self.assertNodesEqual(expected_node, test_node)
def testBasicCompare(self): expected_string = 'a < b' expected_node = GetNodeFromInput(expected_string).value test_node = create_node.Compare(create_node.Name('a'), create_node.Lt(), create_node.Name('b')) self.assertNodesEqual(expected_node, test_node)
def testBoolOpWithOrAnd(self): expected_string = 'a or b and c' expected_node = GetNodeFromInput(expected_string).value test_node = create_node.BoolOp(create_node.Name('a'), 'or', create_node.Name('b'), 'and', create_node.Name('c')) self.assertNodesEqual(expected_node, test_node)
def testDeleteInvalid(self): expected_string = 'del (a, b)' expected_node = GetNodeFromInput(expected_string).targets[0] test_node = create_node.Tuple(create_node.Name('a'), create_node.Name('b'), ctx_type=create_node.CtxEnum.DEL) self.assertNodesEqual(expected_node, test_node)
def testCallWithKwargsNode(self): expected_string = 'a(**{b:c})' expected_node = GetNodeFromInput(expected_string).value test_node = create_node.Call('a', kwargs=create_node.Dict( keys=(create_node.Name('b'), ), values=(create_node.Name('c'), ))) self.assertNodesEqual(expected_node, test_node)
def testTupleOverridesInnerCtx(self): expected_string = 'a = (b, c)' expected_node = GetNodeFromInput(expected_string).value test_node = create_node.Tuple( create_node.Name('b', ctx_type=create_node.CtxEnum.DEL), create_node.Name('c', ctx_type=create_node.CtxEnum.STORE), ctx_type=create_node.CtxEnum.LOAD) self.assertNodesEqual(expected_node, test_node)
def testWithAsTuple(self): expected_string = 'with a as (b, c):\n pass\n' expected_node = GetNodeFromInput(expected_string) test_node = create_node.With(create_node.Name('a'), as_part=create_node.Tuple( create_node.Name('b'), create_node.Name('c'))) self.assertNodesEqual(expected_node, test_node)
def testNameKwargs(self): expected_string = """def testFunc(a=b, c=d): pass""" expected_node = GetNodeFromInput(expected_string).args test_node = create_node.arguments( keys=['a', 'c'], values=[create_node.Name('b'), create_node.Name('d')]) self.assertNodesEqual(expected_node, test_node)
def testFunctionDefWithNameKwargs(self): expected_string = """def testFunc(a=b, c=d): pass""" expected_node = GetNodeFromInput(expected_string) test_node = create_node.FunctionDef( 'testFunc', keys=['a', 'c'], values=[create_node.Name('b'), create_node.Name('d')]) self.assertNodesEqual(expected_node, test_node)
def testBasicIfElif(self): expected_string = """if True: pass elif False: pass """ expected_node = GetNodeFromInput(expected_string) test_node = create_node.If( create_node.Name('True'), orelse=[create_node.If(create_node.Name('False'))]) self.assertNodesEqual(expected_node, test_node)
def testCallWithStarargsNode(self): expected_string = 'a(*[b])' expected_node = GetNodeFromInput(expected_string).value test_node = create_node.Call('a', starargs=create_node.List( create_node.Name('b'))) self.assertNodesEqual(expected_node, test_node)
def testAssignWithNode(self): expected_string = 'a = "b"' expected_node = GetNodeFromInput(expected_string) test_node = create_node.Assign( create_node.Name('a', ctx_type=create_node.CtxEnum.STORE), create_node.Str('b')) self.assertNodesEqual(expected_node, test_node)
def testFunctionDefWithBody(self): expected_string = """def testFunc(): a""" expected_node = GetNodeFromInput(expected_string) test_node = create_node.FunctionDef( 'testFunc', body=[create_node.Expr(create_node.Name('a'))]) self.assertNodesEqual(expected_node, test_node)
def testIfAndOthersInElse(self): expected_string = """if True: pass else: if False: pass True """ expected_node = GetNodeFromInput(expected_string) test_node = create_node.If( create_node.Name('True'), orelse=[ create_node.If(create_node.Name('False')), create_node.Expr(create_node.Name('True')) ]) self.assertNodesEqual(expected_node, test_node)
def testBody(self): expected_string = 'class TestClass(Base1, Base2):\n a' expected_node = GetNodeFromInput(expected_string) test_node = create_node.ClassDef( 'TestClass', bases=['Base1', 'Base2'], body=[create_node.Expr(create_node.Name('a'))]) self.assertNodesEqual(expected_node, test_node)
def testDecoratorList(self): expected_string = '@dec\n@dec2()\nclass TestClass():\n pass\n' expected_node = GetNodeFromInput(expected_string) test_node = create_node.ClassDef( 'TestClass', decorator_list=[create_node.Name('dec'), create_node.Call('dec2')]) self.assertNodesEqual(expected_node, test_node)
def testDecoratorList(self): expected_string = """@decorator @other_decorator(arg) def testFunc(**kwargs): pass""" expected_node = GetNodeFromInput(expected_string) test_node = create_node.FunctionDef('testFunc', kwarg_name='kwargs', decorator_list=[ create_node.Name('decorator'), create_node.Call( 'other_decorator', args=['arg']) ]) self.assertNodesEqual(expected_node, test_node)
def testBasicAssert(self): expected_string = 'assert a' expected_node = GetNodeFromInput(expected_string) test_node = create_node.Assert(create_node.Name('a')) self.assertNodesEqual(expected_node, test_node)
def testUnaryOpWithInvert(self): expected_string = '~b' expected_node = GetNodeFromInput(expected_string).value test_node = create_node.UnaryOp('~', create_node.Name('b')) self.assertNodesEqual(expected_node, test_node)
def testBasicWithAs(self): expected_string = 'with a as b:\n pass\n' expected_node = GetNodeFromInput(expected_string) test_node = create_node.With(create_node.Name('a'), as_part=create_node.Name('b')) self.assertNodesEqual(expected_node, test_node)
def testBinOpWithBitAnd(self): expected_string = 'a & b' expected_node = GetNodeFromInput(expected_string).value test_node = create_node.BinOp(create_node.Name('a'), '&', create_node.Name('b')) self.assertNodesEqual(expected_node, test_node)
def testBinOpWithFloorDiv(self): expected_string = 'a // b' expected_node = GetNodeFromInput(expected_string).value test_node = create_node.BinOp(create_node.Name('a'), '//', create_node.Name('b')) self.assertNodesEqual(expected_node, test_node)
def testDictWithNonStringKeys(self): expected_string = '{a: 1}' expected_node = GetNodeFromInput(expected_string).value test_node = create_node.Dict([create_node.Name('a')], [create_node.Num(1)]) self.assertNodesEqual(expected_node, test_node)
def testNotIn(self): expected_string = 'a not in b' expected_node = GetNodeFromInput(expected_string).value test_node = create_node.Compare(create_node.Name('a'), 'not in', create_node.Name('b')) self.assertNodesEqual(expected_node, test_node)
def testNameWithDel(self): expected_string = 'del a' expected_node = GetNodeFromInput(expected_string).targets[0] test_node = create_node.Name('a', ctx_type=create_node.CtxEnum.DEL) self.assertNodesEqual(expected_node, test_node)
def testNameWithStore(self): expected_string = 'a = b' expected_node = GetNodeFromInput(expected_string).targets[0] test_node = create_node.Name('a', ctx_type=create_node.CtxEnum.STORE) self.assertNodesEqual(expected_node, test_node)
def testNameWithLoad(self): expected_string = 'b = a' expected_node = GetNodeFromInput(expected_string).value test_node = create_node.Name('a', ctx_type=create_node.CtxEnum.LOAD) self.assertNodesEqual(expected_node, test_node)
def testAssertWithMessage(self): expected_string = 'assert a, "a failure"' expected_node = GetNodeFromInput(expected_string) test_node = create_node.Assert(create_node.Name('a'), create_node.Str('a failure')) self.assertNodesEqual(expected_node, test_node)
def testBasicIf(self): expected_string = """if True:\n pass""" expected_node = GetNodeFromInput(expected_string) test_node = create_node.If(create_node.Name('True')) self.assertNodesEqual(expected_node, test_node)