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',
|
'RETURN_CONST',
|
||||||
list(dis.get_instructions(unused_code_at_end))[-1].opname)
|
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
|
@support.cpython_only
|
||||||
def test_docstring_omitted(self):
|
def test_docstring_omitted(self):
|
||||||
# See gh-115347
|
# See gh-115347
|
||||||
|
Loading…
x
Reference in New Issue
Block a user