diff options
author | Terry Jan Reedy <tjreedy@udel.edu> | 2014-05-27 06:47:38 (GMT) |
---|---|---|
committer | Terry Jan Reedy <tjreedy@udel.edu> | 2014-05-27 06:47:38 (GMT) |
commit | 985ef280545912b1a76d1980c27a33e0ee7eaf0a (patch) | |
tree | eeaaaa1d96110340130d89095781a23d51042868 /Lib/idlelib/StackViewer.py | |
parent | 7e19b60daeb18c3295dd19ce53bb55328bc5cb3c (diff) | |
download | cpython-985ef280545912b1a76d1980c27a33e0ee7eaf0a.zip cpython-985ef280545912b1a76d1980c27a33e0ee7eaf0a.tar.gz cpython-985ef280545912b1a76d1980c27a33e0ee7eaf0a.tar.bz2 |
Issue #21477: Idle htest: modify run; add more tests.
Patch by Saimadhav Heblikar. 2.7 backport of 90829, d7eea8f608c2.
Diffstat (limited to 'Lib/idlelib/StackViewer.py')
-rw-r--r-- | Lib/idlelib/StackViewer.py | 41 |
1 files changed, 28 insertions, 13 deletions
diff --git a/Lib/idlelib/StackViewer.py b/Lib/idlelib/StackViewer.py index 732773f..74c9136 100644 --- a/Lib/idlelib/StackViewer.py +++ b/Lib/idlelib/StackViewer.py @@ -1,9 +1,12 @@ import os import sys import linecache +import re +import Tkinter as tk from idlelib.TreeWidget import TreeNode, TreeItem, ScrolledCanvas from idlelib.ObjectBrowser import ObjectTreeItem, make_objecttreeitem +from idlelib.PyShell import PyShellFileList def StackBrowser(root, flist=None, tb=None, top=None): if top is None: @@ -121,17 +124,29 @@ class VariablesTreeItem(ObjectTreeItem): sublist.append(item) return sublist - -def _test(): - try: - import testcode - reload(testcode) +def _stack_viewer(parent): + root = tk.Tk() + root.title("Test StackViewer") + width, height, x, y = list(map(int, re.split('[x+]', parent.geometry()))) + root.geometry("+%d+%d"%(x, y + 150)) + flist = PyShellFileList(root) + try: # to obtain a traceback object + a except: - sys.last_type, sys.last_value, sys.last_traceback = sys.exc_info() - from Tkinter import Tk - root = Tk() - StackBrowser(None, top=root) - root.mainloop() - -if __name__ == "__main__": - _test() + exc_type, exc_value, exc_tb = sys.exc_info() + + # inject stack trace to sys + sys.last_type = exc_type + sys.last_value = exc_value + sys.last_traceback = exc_tb + + StackBrowser(root, flist=flist, top=root, tb=exc_tb) + + # restore sys to original state + del sys.last_type + del sys.last_value + del sys.last_traceback + +if __name__ == '__main__': + from idlelib.idle_test.htest import run + run(_stack_viewer) |