mirror of https://github.com/python/cpython
gh-123942: add missing test for docstring-handling code in ast_opt.c (#123943)
This commit is contained in:
parent
c8d1dbef5b
commit
6e23c89fcd
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue