diff options
author | Terry Jan Reedy <tjreedy@udel.edu> | 2018-06-22 02:19:56 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-22 02:19:56 (GMT) |
commit | bcd3a1a18d841338f57c39f6a7de8cf14d0c3e03 (patch) | |
tree | da436501bb737d5ffd1db96f2fdf6e0904115dcb /Lib/idlelib | |
parent | 419e88d18ccc83e182afca124d42f46794022aab (diff) | |
download | cpython-bcd3a1a18d841338f57c39f6a7de8cf14d0c3e03.zip cpython-bcd3a1a18d841338f57c39f6a7de8cf14d0c3e03.tar.gz cpython-bcd3a1a18d841338f57c39f6a7de8cf14d0c3e03.tar.bz2 |
bpo-33905: Add test for idlelib.stackview.StackBrowser. (GH-7852)
Increases coverage by 44%.
Diffstat (limited to 'Lib/idlelib')
-rw-r--r-- | Lib/idlelib/idle_test/test_stackviewer.py | 29 | ||||
-rw-r--r-- | Lib/idlelib/stackviewer.py | 4 |
2 files changed, 22 insertions, 11 deletions
diff --git a/Lib/idlelib/idle_test/test_stackviewer.py b/Lib/idlelib/idle_test/test_stackviewer.py index 3b8486a..98f53f9 100644 --- a/Lib/idlelib/idle_test/test_stackviewer.py +++ b/Lib/idlelib/idle_test/test_stackviewer.py @@ -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__': diff --git a/Lib/idlelib/stackviewer.py b/Lib/idlelib/stackviewer.py index 71cfb78..94ffb4e 100644 --- a/Lib/idlelib/stackviewer.py +++ b/Lib/idlelib/stackviewer.py @@ -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) |