From 3fd72d99ab23adab548c41e6f6dc1dc33805b8a2 Mon Sep 17 00:00:00 2001 From: "Miss Islington (bot)" <31488909+miss-islington@users.noreply.github.com> Date: Mon, 19 Feb 2024 18:17:53 +0100 Subject: [3.12] Fix test_compile with -O mode (GH-115346) (GH-115668) (cherry picked from commit 7b25a82e83ad8fe15e4302bb7655309573affa83) Co-authored-by: Serhiy Storchaka --- Lib/test/test_compile.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_compile.py b/Lib/test/test_compile.py index ed23d31..815800f 100644 --- a/Lib/test/test_compile.py +++ b/Lib/test/test_compile.py @@ -722,7 +722,7 @@ class TestSpecifics(unittest.TestCase): return "unused" self.assertEqual(f.__code__.co_consts, - ("docstring", "used")) + (f.__doc__, "used")) @support.cpython_only def test_remove_unused_consts_no_docstring(self): @@ -767,7 +767,7 @@ class TestSpecifics(unittest.TestCase): def f1(): "docstring" return 42 - self.assertEqual(f1.__code__.co_consts, ("docstring", 42)) + self.assertEqual(f1.__code__.co_consts, (f1.__doc__, 42)) # This is a regression test for a CPython specific peephole optimizer # implementation bug present in a few releases. It's assertion verifies @@ -996,6 +996,8 @@ class TestSpecifics(unittest.TestCase): for func in (no_code1, no_code2): with self.subTest(func=func): + if func is no_code1 and no_code1.__doc__ is None: + continue code = func.__code__ [(start, end, line)] = code.co_lines() self.assertEqual(start, 0) @@ -1394,6 +1396,7 @@ class TestSourcePositions(unittest.TestCase): self.assertOpcodeSourcePositionIs(compiled_code, 'POP_JUMP_IF_TRUE', line=4, end_line=4, column=8, end_column=13, occurrence=2) + @unittest.skipIf(sys.flags.optimize, "Assertions are disabled in optimized mode") def test_multiline_assert(self): snippet = textwrap.dedent("""\ assert (a > 0 and -- cgit v0.12