mirror of
https://github.com/python/cpython.git
synced 2024-11-28 04:15:11 +08:00
bpo-33905: Add test for idlelib.stackview.StackBrowser. (GH-7852)
Increases coverage by 44%.
This commit is contained in:
parent
419e88d18c
commit
bcd3a1a18d
@ -1,21 +1,34 @@
|
||||
"Test stackviewer, coverage 19%."
|
||||
"Test stackviewer, coverage 63%."
|
||||
|
||||
from idlelib import stackviewer
|
||||
import unittest
|
||||
from test.support import requires
|
||||
from tkinter import Tk
|
||||
|
||||
from idlelib.tree import TreeNode, ScrolledCanvas
|
||||
import sys
|
||||
|
||||
class Test(unittest.TestCase):
|
||||
|
||||
class StackBrowserTest(unittest.TestCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
svs = stackviewer.sys
|
||||
try:
|
||||
abc
|
||||
except NameError:
|
||||
svs.last_type, svs.last_value, svs.last_traceback = (
|
||||
sys.exc_info())
|
||||
|
||||
requires('gui')
|
||||
cls.root = Tk()
|
||||
cls.root.withdraw()
|
||||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
svs = stackviewer.sys
|
||||
del svs.last_traceback, svs.last_type, svs.last_value
|
||||
|
||||
cls.root.update_idletasks()
|
||||
## for id in cls.root.tk.call('after', 'info'):
|
||||
## cls.root.after_cancel(id) # Need for EditorWindow.
|
||||
@ -23,13 +36,11 @@ class Test(unittest.TestCase):
|
||||
del cls.root
|
||||
|
||||
def test_init(self):
|
||||
try:
|
||||
zzz
|
||||
except NameError as e:
|
||||
ex = e
|
||||
# Test runners suppress setting of sys.last_xyx, which stackviewer needs.
|
||||
# Revise stackviewer so following works.
|
||||
# stackviewer.StackBrowser(self.root, ex=exc)
|
||||
sb = stackviewer.StackBrowser(self.root)
|
||||
isi = self.assertIsInstance
|
||||
isi(stackviewer.sc, ScrolledCanvas)
|
||||
isi(stackviewer.item, stackviewer.StackTreeItem)
|
||||
isi(stackviewer.node, TreeNode)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
@ -8,6 +8,7 @@ from idlelib.debugobj import ObjectTreeItem, make_objecttreeitem
|
||||
from idlelib.tree import TreeNode, TreeItem, ScrolledCanvas
|
||||
|
||||
def StackBrowser(root, flist=None, tb=None, top=None):
|
||||
global sc, item, node # For testing.
|
||||
if top is None:
|
||||
top = tk.Toplevel(root)
|
||||
sc = ScrolledCanvas(top, bg="white", highlightthickness=0)
|
||||
@ -134,7 +135,6 @@ def _stack_viewer(parent): # htest #
|
||||
intentional_name_error
|
||||
except NameError:
|
||||
exc_type, exc_value, exc_tb = sys.exc_info()
|
||||
|
||||
# inject stack trace to sys
|
||||
sys.last_type = exc_type
|
||||
sys.last_value = exc_value
|
||||
@ -149,7 +149,7 @@ def _stack_viewer(parent): # htest #
|
||||
|
||||
if __name__ == '__main__':
|
||||
from unittest import main
|
||||
main('idlelib.idle_test.test_stackviewer', verbosity=2)
|
||||
main('idlelib.idle_test.test_stackviewer', verbosity=2, exit=False)
|
||||
|
||||
from idlelib.idle_test.htest import run
|
||||
run(_stack_viewer)
|
||||
|
@ -0,0 +1 @@
|
||||
Add test for idlelib.stackview.StackBrowser.
|
Loading…
Reference in New Issue
Block a user