mirror of
https://github.com/python/cpython.git
synced 2025-09-09 18:32:22 +00:00
Issue #21477: Idle htest: modify run; add more tests.
Patch by Saimadhav Heblikar. 2.7 version will follow.
This commit is contained in:
parent
e1d54e5f8e
commit
a2fc99ecea
9 changed files with 160 additions and 79 deletions
|
@ -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:
|
||||
|
@ -120,3 +123,30 @@ class VariablesTreeItem(ObjectTreeItem):
|
|||
item = make_objecttreeitem(key + " =", value, setfunction)
|
||||
sublist.append(item)
|
||||
return sublist
|
||||
|
||||
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:
|
||||
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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue