mirror of
https://github.com/python/cpython.git
synced 2025-09-01 22:47:59 +00:00
gh-123942: add missing test for docstring-handling code in ast_opt.c (#123943)
This commit is contained in:
parent
c8d1dbef5b
commit
6e23c89fcd
1 changed files with 26 additions and 0 deletions
|
@ -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…
Add table
Add a link
Reference in a new issue