def test_bad_expr_type_error(self): class BadExprClass(object): def __init__(self): self.binded_var_name = 'xxx' input_ast = ast.Module(decl_list=[ ast.FuncDecl( name='start', signature=ast.FuncSignature(), body=[ ast.VarDecl( name='testVar', expr=BadExprClass(), datatype=datatype.SimpleDataType('Int'), ), ], ) ]) input_ast.ident_list = \ ident_table.ident_table(input_ast) generator_ = generator.Generator(input_ast) self.assertRaisesRegexp( Exception, 'Bad expr type:.*BadExprClass', generator_.generate, )
def test_generate_full(self): ''' Just generate something ''' input_ast = ast.Module() marked_out_ast = datatype.mark_out_datatypes(input_ast) generator_ = generator.Generator(marked_out_ast) real_output = generator_.generate_full() self.assertNotEqual('', real_output)
def check_translation(test_case, input_ast, expected_output): ''' Small helper func. ''' input_ast.ident_list = ident_table.ident_table(input_ast) input_ast = datatype.mark_out_datatypes(ast_=input_ast) generator_ = generator.Generator(input_ast) real_output = generator_.generate() misc.assert_equal(test_case, textwrap.dedent(expected_output), real_output)
def test_bad_decl_type_error(self): class BadDeclClass(object): def __init__(self): pass input_ast = ast.Module(decl_list=[ BadDeclClass(), ], ) input_ast.ident_list = \ ident_table.ident_table(input_ast) generator_ = generator.Generator(input_ast) self.assertRaisesRegexp( Exception, 'Bad type:.*BadDeclClass', generator_.generate, )
def test_bad_constant_type_error(self): class BadConstantClass(object): def __init__(self): pass input_ast = ast.Module(decl_list=[ ast.FuncDecl( name='start', signature=ast.FuncSignature(), ) ]) constants = input_ast.decl_list[0].constants # shortcut constants['badConst'] = BadConstantClass() input_ast.ident_list = {} generator_ = generator.Generator(input_ast) self.assertRaisesRegexp( Exception, 'Bad type:.*BadConstantClass', generator_.generate, )
def test_bad_stmt_type_error(self): class BadStmtClass(object): def __init__(self): pass input_ast = ast.Module(decl_list=[ ast.FuncDecl( name='start', signature=ast.FuncSignature(), body=[ BadStmtClass(), ], ) ]) input_ast.ident_list = \ ident_table.ident_table(input_ast) generator_ = generator.Generator(input_ast) self.assertRaisesRegexp( Exception, 'Bad stmt type:.*BadStmtClass', generator_.generate, )