gh-123942: add missing test for docstring-handling code in ast_opt.c (#123943)

This commit is contained in:
Irit Katriel 2024-09-11 15:39:53 +01:00 committed by GitHub
parent c8d1dbef5b
commit 6e23c89fcd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 26 additions and 0 deletions

View File

@ -870,6 +870,32 @@ class TestSpecifics(unittest.TestCase):
'RETURN_CONST',
list(dis.get_instructions(unused_code_at_end))[-1].opname)
@support.cpython_only
def test_docstring(self):
src = textwrap.dedent("""
def with_docstring():
"docstring"
def with_fstring():
f"not docstring"
def with_const_expression():
"also" + " not docstring"
""")
for opt in [0, 1, 2]:
with self.subTest(opt=opt):
code = compile(src, "<test>", "exec", optimize=opt)
ns = {}
exec(code, ns)
if opt < 2:
self.assertEqual(ns['with_docstring'].__doc__, "docstring")
else:
self.assertIsNone(ns['with_docstring'].__doc__)
self.assertIsNone(ns['with_fstring'].__doc__)
self.assertIsNone(ns['with_const_expression'].__doc__)
@support.cpython_only
def test_docstring_omitted(self):
# See gh-115347