Skip to content

Commit 9797b7a

Browse files
berkerpeksagencukou
authored andcommitted
bpo-26502: Implement FrameSummary.__len__() (GH-8632)
1 parent 0e0bc4e commit 9797b7a

File tree

3 files changed

+10
-0
lines changed

3 files changed

+10
-0
lines changed

Lib/test/test_traceback.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -868,6 +868,7 @@ def extract():
868868
(__file__, lineno+2, 'test_extract_stack', 'result = extract()'),
869869
(__file__, lineno+1, 'extract', 'return traceback.extract_stack()'),
870870
])
871+
self.assertEqual(len(result[0]), 4)
871872

872873

873874
class TestFrame(unittest.TestCase):
@@ -900,6 +901,10 @@ def test_explicit_line(self):
900901
f = traceback.FrameSummary("f", 1, "dummy", line="line")
901902
self.assertEqual("line", f.line)
902903

904+
def test_len(self):
905+
f = traceback.FrameSummary("f", 1, "dummy", line="line")
906+
self.assertEqual(len(f), 4)
907+
903908

904909
class TestStack(unittest.TestCase):
905910

Lib/traceback.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,9 @@ def __repr__(self):
279279
return "<FrameSummary file {filename}, line {lineno} in {name}>".format(
280280
filename=self.filename, lineno=self.lineno, name=self.name)
281281

282+
def __len__(self):
283+
return 4
284+
282285
@property
283286
def line(self):
284287
if self._line is None:
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Implement ``traceback.FrameSummary.__len__()`` method to preserve
2+
compatibility with the old tuple API.

0 commit comments

Comments
 (0)