diff options
Diffstat (limited to 'Lib/test/test_inspect.py')
-rw-r--r-- | Lib/test/test_inspect.py | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index 9e3c770..115e97b 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -7,6 +7,7 @@ import inspect import io import linecache import os +import dis from os.path import normcase import _pickle import pickle @@ -361,14 +362,23 @@ class TestInterpreterStack(IsTestBase): def test_stack(self): self.assertTrue(len(mod.st) >= 5) - self.assertEqual(revise(*mod.st[0][1:]), + frame1, frame2, frame3, frame4, *_ = mod.st + frameinfo = revise(*frame1[1:]) + self.assertEqual(frameinfo, (modfile, 16, 'eggs', [' st = inspect.stack()\n'], 0)) - self.assertEqual(revise(*mod.st[1][1:]), + self.assertEqual(frame1.positions, dis.Positions(16, 16, 9, 24)) + frameinfo = revise(*frame2[1:]) + self.assertEqual(frameinfo, (modfile, 9, 'spam', [' eggs(b + d, c + f)\n'], 0)) - self.assertEqual(revise(*mod.st[2][1:]), + self.assertEqual(frame2.positions, dis.Positions(9, 9, 4, 22)) + frameinfo = revise(*frame3[1:]) + self.assertEqual(frameinfo, (modfile, 43, 'argue', [' spam(a, b, c)\n'], 0)) - self.assertEqual(revise(*mod.st[3][1:]), + self.assertEqual(frame3.positions, dis.Positions(43, 43, 12, 25)) + frameinfo = revise(*frame4[1:]) + self.assertEqual(frameinfo, (modfile, 39, 'abuse', [' self.argue(a, b, c)\n'], 0)) + self.assertEqual(frame4.positions, dis.Positions(39, 39, 8, 27)) # Test named tuple fields record = mod.st[0] self.assertIs(record.frame, mod.fr) @@ -380,12 +390,16 @@ class TestInterpreterStack(IsTestBase): def test_trace(self): self.assertEqual(len(git.tr), 3) - self.assertEqual(revise(*git.tr[0][1:]), + frame1, frame2, frame3, = git.tr + self.assertEqual(revise(*frame1[1:]), (modfile, 43, 'argue', [' spam(a, b, c)\n'], 0)) - self.assertEqual(revise(*git.tr[1][1:]), + self.assertEqual(frame1.positions, dis.Positions(43, 43, 12, 25)) + self.assertEqual(revise(*frame2[1:]), (modfile, 9, 'spam', [' eggs(b + d, c + f)\n'], 0)) - self.assertEqual(revise(*git.tr[2][1:]), + self.assertEqual(frame2.positions, dis.Positions(9, 9, 4, 22)) + self.assertEqual(revise(*frame3[1:]), (modfile, 18, 'eggs', [' q = y / 0\n'], 0)) + self.assertEqual(frame3.positions, dis.Positions(18, 18, 8, 13)) def test_frame(self): args, varargs, varkw, locals = inspect.getargvalues(mod.fr) |