bpo-26502: Implement FrameSummary.__len__() (GH-8632)

This commit is contained in:
Berker Peksag 2018-09-10 20:02:33 +03:00 committed by Petr Viktorin
parent 0e0bc4e221
commit 9797b7ae44
3 changed files with 10 additions and 0 deletions

View File

@ -868,6 +868,7 @@ class MiscTracebackCases(unittest.TestCase):
(__file__, lineno+2, 'test_extract_stack', 'result = extract()'),
(__file__, lineno+1, 'extract', 'return traceback.extract_stack()'),
])
self.assertEqual(len(result[0]), 4)
class TestFrame(unittest.TestCase):
@ -900,6 +901,10 @@ class TestFrame(unittest.TestCase):
f = traceback.FrameSummary("f", 1, "dummy", line="line")
self.assertEqual("line", f.line)
def test_len(self):
f = traceback.FrameSummary("f", 1, "dummy", line="line")
self.assertEqual(len(f), 4)
class TestStack(unittest.TestCase):

View File

@ -279,6 +279,9 @@ class FrameSummary:
return "<FrameSummary file {filename}, line {lineno} in {name}>".format(
filename=self.filename, lineno=self.lineno, name=self.name)
def __len__(self):
return 4
@property
def line(self):
if self._line is None:

View File

@ -0,0 +1,2 @@
Implement ``traceback.FrameSummary.__len__()`` method to preserve
compatibility with the old tuple API.