[3.13] gh-121671: Increase test coverage of `ast.get_docstring` (GH-121674) (GH-121691)
(cherry picked from commit 0a26aa5007cb32610366c31fbac846b5fe2f4f90)
Co-authored-by: Tomas R <tomas.roun8@gmail.com>
diff --git a/Lib/test/test_ast.py b/Lib/test/test_ast.py
index 744cd23..4362ea6 100644
--- a/Lib/test/test_ast.py
+++ b/Lib/test/test_ast.py
@@ -1626,6 +1626,12 @@ def test_get_docstring(self):
node = ast.parse('async def foo():\n """spam\n ham"""')
self.assertEqual(ast.get_docstring(node.body[0]), 'spam\nham')
+ node = ast.parse('async def foo():\n """spam\n ham"""')
+ self.assertEqual(ast.get_docstring(node.body[0], clean=False), 'spam\n ham')
+
+ node = ast.parse('x')
+ self.assertRaises(TypeError, ast.get_docstring, node.body[0])
+
def test_get_docstring_none(self):
self.assertIsNone(ast.get_docstring(ast.parse('')))
node = ast.parse('x = "not docstring"')
@@ -1650,6 +1656,9 @@ def test_get_docstring_none(self):
node = ast.parse('async def foo():\n x = "not docstring"')
self.assertIsNone(ast.get_docstring(node.body[0]))
+ node = ast.parse('async def foo():\n 42')
+ self.assertIsNone(ast.get_docstring(node.body[0]))
+
def test_multi_line_docstring_col_offset_and_lineno_issue16806(self):
node = ast.parse(
'"""line one\nline two"""\n\n'