bpo-43521: Allow ast.unparse with empty sets and NaN (GH-24897)
Automerge-Triggered-By: GH:pablogsal
diff --git a/Lib/test/test_unparse.py b/Lib/test/test_unparse.py
index c7c8613..ce03272 100644
--- a/Lib/test/test_unparse.py
+++ b/Lib/test/test_unparse.py
@@ -199,6 +199,12 @@ def test_huge_float(self):
self.check_ast_roundtrip("1e1000j")
self.check_ast_roundtrip("-1e1000j")
+ def test_nan(self):
+ self.assertASTEqual(
+ ast.parse(ast.unparse(ast.Constant(value=float('nan')))),
+ ast.parse('1e1000 - 1e1000')
+ )
+
def test_min_int(self):
self.check_ast_roundtrip(str(-(2 ** 31)))
self.check_ast_roundtrip(str(-(2 ** 63)))
@@ -252,6 +258,12 @@ def test_annotations(self):
def test_set_literal(self):
self.check_ast_roundtrip("{'a', 'b', 'c'}")
+ def test_empty_set(self):
+ self.assertASTEqual(
+ ast.parse(ast.unparse(ast.Set(elts=[]))),
+ ast.parse('{*()}')
+ )
+
def test_set_comprehension(self):
self.check_ast_roundtrip("{x for x in range(5)}")
@@ -326,9 +338,6 @@ def test_invalid_fstring_conversion(self):
def test_invalid_fstring_backslash(self):
self.check_invalid(ast.FormattedValue(value=ast.Constant(value="\\\\")))
- def test_invalid_set(self):
- self.check_invalid(ast.Set(elts=[]))
-
def test_invalid_yield_from(self):
self.check_invalid(ast.YieldFrom(value=None))