bpo-38870: Use subTest in test_unparse for better error reporting (GH-20141)

This commit is contained in:
Pablo Galindo 2020-05-17 03:53:57 +01:00 committed by GitHub
parent af8e5f84d9
commit 6341fc7257
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -120,13 +120,15 @@ class ASTTestCase(unittest.TestCase):
self.assertEqual(ast.dump(ast1), ast.dump(ast2))
def check_ast_roundtrip(self, code1, **kwargs):
ast1 = ast.parse(code1, **kwargs)
code2 = ast.unparse(ast1)
ast2 = ast.parse(code2, **kwargs)
self.assertASTEqual(ast1, ast2)
with self.subTest(code1=code1, ast_parse_kwargs=kwargs):
ast1 = ast.parse(code1, **kwargs)
code2 = ast.unparse(ast1)
ast2 = ast.parse(code2, **kwargs)
self.assertASTEqual(ast1, ast2)
def check_invalid(self, node, raises=ValueError):
self.assertRaises(raises, ast.unparse, node)
with self.subTest(node=node):
self.assertRaises(raises, ast.unparse, node)
def get_source(self, code1, code2=None):
code2 = code2 or code1
@ -135,11 +137,13 @@ class ASTTestCase(unittest.TestCase):
def check_src_roundtrip(self, code1, code2=None):
code1, code2 = self.get_source(code1, code2)
self.assertEqual(code2, code1)
with self.subTest(code1=code1, code2=code2):
self.assertEqual(code2, code1)
def check_src_dont_roundtrip(self, code1, code2=None):
code1, code2 = self.get_source(code1, code2)
self.assertNotEqual(code2, code1)
with self.subTest(code1=code1, code2=code2):
self.assertNotEqual(code2, code1)
class UnparseTestCase(ASTTestCase):
# Tests for specific bugs found in earlier versions of unparse