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

diff --git a/Lib/test/test_traceback.py b/Lib/test/test_traceback.py
index 8a3aa8a..3af85b8 100644
--- a/Lib/test/test_traceback.py
+++ b/Lib/test/test_traceback.py
@@ -868,6 +868,7 @@
             (__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 @@
         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):
 
diff --git a/Lib/traceback.py b/Lib/traceback.py
index 4e7605d..ab35da9 100644
--- a/Lib/traceback.py
+++ b/Lib/traceback.py
@@ -279,6 +279,9 @@
         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: