def test_from_class_with_body_in_method_to_method_with_body(self) -> None: """Tests if this can make the roundtrip from a full function to a full function""" annotate_ancestry(class_with_method_and_body_types_ast) function_def = reindent_docstring( next( filter( rpartial(isinstance, FunctionDef), class_with_method_and_body_types_ast.body, ))) ir = parse.function( find_in_ast( "C.function_name".split("."), class_with_method_and_body_types_ast, ), ) gen_ast = emit.function( ir, emit_default_doc=False, function_name="function_name", function_type="self", indent_level=1, emit_separating_tab=True, emit_as_kwonlyargs=False, ) # emit.file(gen_ast, os.path.join(os.path.dirname(__file__), # "delme{extsep}py".format(extsep=extsep), mode="wt") run_ast_test( self, gen_ast=gen_ast, gold=function_def, )
def test_to_function_emit_as_kwonlyargs(self) -> None: """ Tests whether `function` produces method with keyword only arguments """ function_def = reindent_docstring( deepcopy( next( filter( rpartial(isinstance, FunctionDef), ast.parse( class_with_method_types_str.replace( "self", "self, *")).body[0].body, )))) function_name = function_def.name function_type = get_function_type(function_def) gen_ast = emit.function( parse.docstring(docstring_str), function_name=function_name, function_type=function_type, emit_default_doc=False, type_annotations=True, emit_separating_tab=True, indent_level=1, emit_as_kwonlyargs=True, ) run_ast_test( self, gen_ast=gen_ast, gold=function_def, )
def test_to_function_with_docstring_types(self) -> None: """ Tests that `function` can generate a function_def with types in docstring """ # Sanity check run_ast_test( self, class_with_method_ast, gold=ast.parse(class_with_method_str).body[0], ) function_def = reindent_docstring( deepcopy( next( filter(rpartial(isinstance, FunctionDef), class_with_method_ast.body)))) ir = parse.function(function_def) gen_ast = reindent_docstring( emit.function( ir, function_name=function_def.name, function_type=get_function_type(function_def), emit_default_doc=False, type_annotations=False, indent_level=1, emit_separating_tab=True, emit_as_kwonlyargs=False, word_wrap=False, )) run_ast_test(self, gen_ast=gen_ast, gold=function_def)
def test_to_function_with_type_annotations(self) -> None: """ Tests that `function` can generate a function_def with inline types """ function_def = deepcopy( next( filter(rpartial(isinstance, FunctionDef), class_with_method_types_ast.body))) function_name = function_def.name function_type = get_function_type(function_def) reindent_docstring(function_def) gen_ast = emit.function( parse.function( function_def, function_name=function_name, function_type=function_type, ), function_name=function_name, function_type=function_type, emit_default_doc=False, type_annotations=True, emit_separating_tab=True, indent_level=1, emit_as_kwonlyargs=False, ) # emit.file(gen_ast, os.path.join(os.path.dirname(__file__), 'delme.py'), mode='wt') run_ast_test( self, gen_ast=gen_ast, gold=function_def, )
def test_to_function(self) -> None: """ Tests whether `function` produces method from `class_with_method_types_ast` given `docstring_str` """ function_def = reindent_docstring( deepcopy( next( filter( rpartial(isinstance, FunctionDef), class_with_method_types_ast.body, )))) function_name = function_def.name function_type = get_function_type(function_def) gen_ast = emit.function( parse.docstring(docstring_str), function_name=function_name, function_type=function_type, emit_default_doc=False, type_annotations=True, emit_separating_tab=True, indent_level=1, emit_as_kwonlyargs=False, ) run_ast_test( self, gen_ast=gen_ast, gold=function_def, )