summaryrefslogtreecommitdiffstats
path: root/Lib/idlelib
diff options
context:
space:
mode:
authorTerry Jan Reedy <tjreedy@udel.edu>2018-06-22 02:19:56 (GMT)
committerGitHub <noreply@github.com>2018-06-22 02:19:56 (GMT)
commitbcd3a1a18d841338f57c39f6a7de8cf14d0c3e03 (patch)
treeda436501bb737d5ffd1db96f2fdf6e0904115dcb /Lib/idlelib
parent419e88d18ccc83e182afca124d42f46794022aab (diff)
downloadcpython-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.py29
-rw-r--r--Lib/idlelib/stackviewer.py4
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)