mirror of
https://github.com/python/cpython.git
synced 2025-11-01 18:51:43 +00:00
Issue #21217: inspect.getsourcelines() now tries to compute the start and
end lines from the code object, fixing an issue when a lambda function is used as decorator argument. Patch by Thomas Ballinger.
This commit is contained in:
parent
97100c0e3d
commit
a8723a02ea
5 changed files with 49 additions and 17 deletions
|
|
@ -392,6 +392,9 @@ class TestRetrievingSourceCode(GetSourceBase):
|
|||
finally:
|
||||
linecache.getlines = getlines
|
||||
|
||||
def test_getsource_on_code_object(self):
|
||||
self.assertSourceEqual(mod.eggs.__code__, 12, 18)
|
||||
|
||||
class TestDecorators(GetSourceBase):
|
||||
fodderModule = mod2
|
||||
|
||||
|
|
@ -402,7 +405,10 @@ class TestDecorators(GetSourceBase):
|
|||
self.assertSourceEqual(mod2.gone, 9, 10)
|
||||
|
||||
def test_getsource_unwrap(self):
|
||||
self.assertSourceEqual(mod2.real, 122, 124)
|
||||
self.assertSourceEqual(mod2.real, 130, 132)
|
||||
|
||||
def test_decorator_with_lambda(self):
|
||||
self.assertSourceEqual(mod2.func114, 113, 115)
|
||||
|
||||
class TestOneliners(GetSourceBase):
|
||||
fodderModule = mod2
|
||||
|
|
@ -497,6 +503,9 @@ class TestBuggyCases(GetSourceBase):
|
|||
self.assertRaises(IOError, inspect.findsource, co)
|
||||
self.assertRaises(IOError, inspect.getsource, co)
|
||||
|
||||
def test_getsource_on_method(self):
|
||||
self.assertSourceEqual(mod2.ClassWithMethod.method, 118, 119)
|
||||
|
||||
class TestNoEOL(GetSourceBase):
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.tempdir = TESTFN + '_dir'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue