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