]> granicus.if.org Git - python/commitdiff
bpo-33905: Add test for idlelib.stackview.StackBrowser. (GH-7852)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Fri, 22 Jun 2018 02:48:45 +0000 (19:48 -0700)
committerGitHub <noreply@github.com>
Fri, 22 Jun 2018 02:48:45 +0000 (19:48 -0700)
Increases coverage by 44%.
(cherry picked from commit bcd3a1a18d841338f57c39f6a7de8cf14d0c3e03)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
Lib/idlelib/idle_test/test_stackviewer.py
Lib/idlelib/stackviewer.py
Misc/NEWS.d/next/IDLE/2018-06-21-20-35-33.bpo-33905.W2mhiY.rst [new file with mode: 0644]

index 3b8486a564e1d362d1e9a04a914b71aafad6eabd..98f53f9537bb25727b8d61da5343d0ecd1d7f65d 100644 (file)
@@ -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__':
index 71cfb78fb94c3f522ed9ce7fcb7d52fa65718a9d..94ffb4eff4dd26e8e20298100bd886884c534b91 100644 (file)
@@ -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)
diff --git a/Misc/NEWS.d/next/IDLE/2018-06-21-20-35-33.bpo-33905.W2mhiY.rst b/Misc/NEWS.d/next/IDLE/2018-06-21-20-35-33.bpo-33905.W2mhiY.rst
new file mode 100644 (file)
index 0000000..c671e47
--- /dev/null
@@ -0,0 +1 @@
+Add test for idlelib.stackview.StackBrowser.