diff options
| author | Ammar Askar <ammar@ammaraskar.com> | 2021-07-07 19:07:12 (GMT) |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-07 19:07:12 (GMT) |
| commit | 4823d9a51281ebbc8e8d82a0dd3edc7d13ea8ac7 (patch) | |
| tree | b7c97af7b1d15da75321e1434997163cd8c6b9d0 /Lib/test/test_code.py | |
| parent | 3d3027c5fcc683c14ee55ad231d79971ba12b24d (diff) | |
| download | cpython-4823d9a51281ebbc8e8d82a0dd3edc7d13ea8ac7.zip cpython-4823d9a51281ebbc8e8d82a0dd3edc7d13ea8ac7.tar.gz cpython-4823d9a51281ebbc8e8d82a0dd3edc7d13ea8ac7.tar.bz2 | |
bpo-43950: Add option to opt-out of PEP-657 (GH-27023)
Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
Co-authored-by: Batuhan Taskaya <batuhanosmantaskaya@gmail.com>
Co-authored-by: Ammar Askar <ammar@ammaraskar.com>
Diffstat (limited to 'Lib/test/test_code.py')
| -rw-r--r-- | Lib/test/test_code.py | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/Lib/test/test_code.py b/Lib/test/test_code.py index ccb8da6..988790b 100644 --- a/Lib/test/test_code.py +++ b/Lib/test/test_code.py @@ -137,7 +137,8 @@ try: except ImportError: ctypes = None from test.support import (run_doctest, run_unittest, cpython_only, - check_impl_detail) + check_impl_detail, requires_debug_ranges) +from test.support.script_helper import assert_python_ok def consts(t): @@ -325,6 +326,7 @@ class CodeTest(unittest.TestCase): new_code = code = func.__code__.replace(co_linetable=b'') self.assertEqual(list(new_code.co_lines()), []) + @requires_debug_ranges() def test_co_positions_artificial_instructions(self): import dis @@ -372,8 +374,32 @@ class CodeTest(unittest.TestCase): ] ) + def test_endline_and_columntable_none_when_no_debug_ranges(self): + # Make sure that if `-X no_debug_ranges` is used, the endlinetable and + # columntable are None. + code = textwrap.dedent(""" + def f(): + pass + + assert f.__code__.co_endlinetable is None + assert f.__code__.co_columntable is None + """) + assert_python_ok('-X', 'no_debug_ranges', '-c', code, __cleanenv=True) + + def test_endline_and_columntable_none_when_no_debug_ranges_env(self): + # Same as above but using the environment variable opt out. + code = textwrap.dedent(""" + def f(): + pass + + assert f.__code__.co_endlinetable is None + assert f.__code__.co_columntable is None + """) + assert_python_ok('-c', code, PYTHONNODEBUGRANGES='1', __cleanenv=True) + # co_positions behavior when info is missing. + @requires_debug_ranges() def test_co_positions_empty_linetable(self): def func(): x = 1 @@ -382,6 +408,7 @@ class CodeTest(unittest.TestCase): self.assertIsNone(line) self.assertEqual(end_line, new_code.co_firstlineno + 1) + @requires_debug_ranges() def test_co_positions_empty_endlinetable(self): def func(): x = 1 @@ -390,6 +417,7 @@ class CodeTest(unittest.TestCase): self.assertEqual(line, new_code.co_firstlineno + 1) self.assertIsNone(end_line) + @requires_debug_ranges() def test_co_positions_empty_columntable(self): def func(): x = 1 |
