@@ -122,10 +122,10 @@ class ASTTestCase(unittest.TestCase):
122122 def assertASTEqual (self , ast1 , ast2 ):
123123 self .assertEqual (ast .dump (ast1 ), ast .dump (ast2 ))
124124
125- def check_ast_roundtrip (self , code1 ):
126- ast1 = ast .parse (code1 )
125+ def check_ast_roundtrip (self , code1 , ** kwargs ):
126+ ast1 = ast .parse (code1 , ** kwargs )
127127 code2 = ast .unparse (ast1 )
128- ast2 = ast .parse (code2 )
128+ ast2 = ast .parse (code2 , ** kwargs )
129129 self .assertASTEqual (ast1 , ast2 )
130130
131131 def check_invalid (self , node , raises = ValueError ):
@@ -330,6 +330,14 @@ def test_constant_tuples(self):
330330 ast .Constant (value = (1 , 2 , 3 ), kind = None ), "(1, 2, 3)"
331331 )
332332
333+ def test_function_type (self ):
334+ for function_type in (
335+ "() -> int" ,
336+ "(int, int) -> int" ,
337+ "(Callable[complex], More[Complex(call.to_typevar())]) -> None"
338+ ):
339+ self .check_ast_roundtrip (function_type , mode = "func_type" )
340+
333341
334342class CosmeticTestCase (ASTTestCase ):
335343 """Test if there are cosmetic issues caused by unnecesary additions"""
0 commit comments