Kaydet (Commit) 01debacc authored tarafından Berker Peksag's avatar Berker Peksag

Issue #15812: Merge from 3.5

...@@ -1416,7 +1416,7 @@ def getframeinfo(frame, context=1): ...@@ -1416,7 +1416,7 @@ def getframeinfo(frame, context=1):
except OSError: except OSError:
lines = index = None lines = index = None
else: else:
start = max(start, 1) start = max(start, 0)
start = max(0, min(start, len(lines) - context)) start = max(0, min(start, len(lines) - context))
lines = lines[start:start+context] lines = lines[start:start+context]
index = lineno - 1 - start index = lineno - 1 - start
......
...@@ -402,6 +402,11 @@ class TestRetrievingSourceCode(GetSourceBase): ...@@ -402,6 +402,11 @@ class TestRetrievingSourceCode(GetSourceBase):
# Check filename override # Check filename override
self.assertEqual(inspect.getmodule(None, modfile), mod) 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): def test_getsource(self):
self.assertSourceEqual(git.abuse, 29, 39) self.assertSourceEqual(git.abuse, 29, 39)
self.assertSourceEqual(mod.StupidGit, 21, 51) self.assertSourceEqual(mod.StupidGit, 21, 51)
......
...@@ -40,6 +40,9 @@ Core and Builtins ...@@ -40,6 +40,9 @@ Core and Builtins
Library Library
------- -------
- Issue #15812: inspect.getframeinfo() now correctly shows the first line of
a context. Patch by Sam Breese.
- Issue #29094: Offsets in a ZIP file created with extern file object and modes - Issue #29094: Offsets in a ZIP file created with extern file object and modes
"w" and "x" now are relative to the start of the file. "w" and "x" now are relative to the start of the file.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment