diff options
author | Berker Peksag <berker.peksag@gmail.com> | 2017-01-02 03:57:43 (GMT) |
---|---|---|
committer | Berker Peksag <berker.peksag@gmail.com> | 2017-01-02 03:57:43 (GMT) |
commit | ff0e3b7a54673791bb724be9679c85a4feb7468c (patch) | |
tree | 49262a5fc0179eeae9a8abd85e24ccf02a382912 /Lib | |
parent | 4950ae14916e340e5274ce0b8277aec9006bd035 (diff) | |
download | cpython-ff0e3b7a54673791bb724be9679c85a4feb7468c.zip cpython-ff0e3b7a54673791bb724be9679c85a4feb7468c.tar.gz cpython-ff0e3b7a54673791bb724be9679c85a4feb7468c.tar.bz2 |
Issue #15812: inspect.getframeinfo() now correctly shows the first line of a context
Patch by Sam Breese.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/inspect.py | 2 | ||||
-rw-r--r-- | Lib/test/test_inspect.py | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/Lib/inspect.py b/Lib/inspect.py index e6dae1e..6b9e0b0 100644 --- a/Lib/inspect.py +++ b/Lib/inspect.py @@ -1416,7 +1416,7 @@ def getframeinfo(frame, context=1): except OSError: lines = index = None else: - start = max(start, 1) + start = max(start, 0) start = max(0, min(start, len(lines) - context)) lines = lines[start:start+context] index = lineno - 1 - start diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index 671e05a..d33de9e 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -391,6 +391,11 @@ class TestRetrievingSourceCode(GetSourceBase): # Check filename override self.assertEqual(inspect.getmodule(None, modfile), mod) + def test_getframeinfo_get_first_line(self): + frame_info = inspect.getframeinfo(self.fodderModule.fr, 50) + self.assertEqual(frame_info.code_context[0], "# line 1\n") + self.assertEqual(frame_info.code_context[1], "'A module docstring.'\n") + def test_getsource(self): self.assertSourceEqual(git.abuse, 29, 39) self.assertSourceEqual(mod.StupidGit, 21, 51) |