diff options
Diffstat (limited to 'Lib/test/test_tools/test_unparse.py')
-rw-r--r-- | Lib/test/test_tools/test_unparse.py | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/Lib/test/test_tools/test_unparse.py b/Lib/test/test_tools/test_unparse.py index 734bbc215a..65dee1b5ae 100644 --- a/Lib/test/test_tools/test_unparse.py +++ b/Lib/test/test_tools/test_unparse.py @@ -134,6 +134,11 @@ class ASTTestCase(unittest.TestCase): class UnparseTestCase(ASTTestCase): # Tests for specific bugs found in earlier versions of unparse + def test_fstrings(self): + # See issue 25180 + self.check_roundtrip(r"""f'{f"{0}"*3}'""") + self.check_roundtrip(r"""f'{f"{y}"*3}'""") + def test_del_statement(self): self.check_roundtrip("del x, y, z") @@ -279,8 +284,18 @@ class DirectoryTestCase(ASTTestCase): for filename in names: if test.support.verbose: print('Testing %s' % filename) - source = read_pyfile(filename) - self.check_roundtrip(source) + + # Some f-strings are not correctly round-tripped by + # Tools/parser/unparse.py. See issue 28002 for details. + # We need to skip files that contain such f-strings. + if os.path.basename(filename) in ('test_fstring.py', ): + if test.support.verbose: + print(f'Skipping {filename}: see issue 28002') + continue + + with self.subTest(filename=filename): + source = read_pyfile(filename) + self.check_roundtrip(source) if __name__ == '__main__': |