def test_manyFrames(self):
        """
        A C{_Traceback} object constructed with multiple frames should be able
        to be passed to L{traceback.extract_tb}, and we should get a list
        containing a tuple for each frame.
        """
        tb = failure._Traceback([
            ['caller1', 'filename.py', 7, {}, {}],
            ['caller2', 'filename.py', 8, {}, {}],
        ], [
            ['method1', 'filename.py', 123, {}, {}],
            ['method2', 'filename.py', 235, {}, {}],
        ])
        self.assertEqual(traceback.extract_tb(tb),
                         [_tb('filename.py', 123, 'method1', None),
                          _tb('filename.py', 235, 'method2', None)])

        # We should also be able to extract_stack on it
        self.assertEqual(traceback.extract_stack(tb.tb_frame),
                         [_tb('filename.py', 7, 'caller1', None),
                          _tb('filename.py', 8, 'caller2', None),
                          _tb('filename.py', 123, 'method1', None),
                          ])

        A C{_Traceback} object constructed with multiple frames should be able
        to be passed to L{traceback.extract_tb}, and we should get a list
        containing a tuple for each frame.
        
stackoverflow/venv/lib/python3.6/site-packages/twisted/test/test_failure.py