GeezerVison is showing github.com — bpo-33905: Add test for idlelib.stackview.StackBrowser. (GH-7852) · python/cpython@bcd3a1a
File treeExpand file treeCollapse file tree Open diff view settings Expand file treeCollapse file tree Open diff view settings Collapse file Copy file name to clipboardExpand all lines: Lib/idlelib/idle_test/test_stackviewer.py +20-9Lines changed: 20 additions & 9 deletions | Original file line number | Diff line number | Diff line change |
|---|
| 1 | | -"Test stackviewer, coverage 19%." | | 1 | +"Test stackviewer, coverage 63%." | 2 | 2 |
| 3 | 3 | from idlelib import stackviewer | 4 | 4 | import unittest | 5 | 5 | from test.support import requires | 6 | 6 | from tkinter import Tk | 7 | 7 |
| | 8 | +from idlelib.tree import TreeNode, ScrolledCanvas | | 9 | +import sys | 8 | 10 |
| 9 | | -class Test(unittest.TestCase): | | 11 | + | | 12 | +class StackBrowserTest(unittest.TestCase): | 10 | 13 |
| 11 | 14 | @classmethod | 12 | 15 | def setUpClass(cls): | | 16 | + svs = stackviewer.sys | | 17 | + try: | | 18 | + abc | | 19 | + except NameError: | | 20 | + svs.last_type, svs.last_value, svs.last_traceback = ( | | 21 | + sys.exc_info()) | | 22 | + | 13 | 23 | requires('gui') | 14 | 24 | cls.root = Tk() | 15 | 25 | cls.root.withdraw() | 16 | 26 |
| 17 | 27 | @classmethod | 18 | 28 | def tearDownClass(cls): | | 29 | + svs = stackviewer.sys | | 30 | + del svs.last_traceback, svs.last_type, svs.last_value | | 31 | + | 19 | 32 | cls.root.update_idletasks() | 20 | 33 | ## for id in cls.root.tk.call('after', 'info'): | 21 | 34 | ## cls.root.after_cancel(id) # Need for EditorWindow. | 22 | 35 | cls.root.destroy() | 23 | 36 | del cls.root | 24 | 37 |
| 25 | 38 | def test_init(self): | 26 | | - try: | 27 | | - zzz | 28 | | - except NameError as e: | 29 | | - ex = e | 30 | | -# Test runners suppress setting of sys.last_xyx, which stackviewer needs. | 31 | | -# Revise stackviewer so following works. | 32 | | -# stackviewer.StackBrowser(self.root, ex=exc) | | 39 | + sb = stackviewer.StackBrowser(self.root) | | 40 | + isi = self.assertIsInstance | | 41 | + isi(stackviewer.sc, ScrolledCanvas) | | 42 | + isi(stackviewer.item, stackviewer.StackTreeItem) | | 43 | + isi(stackviewer.node, TreeNode) | 33 | 44 |
| 34 | 45 |
| 35 | 46 | if __name__ == '__main__': | |
Collapse file Copy file name to clipboardExpand all lines: Lib/idlelib/stackviewer.py +2-2Lines changed: 2 additions & 2 deletions | Original file line number | Diff line number | Diff line change |
|---|
| 8 | 8 | from idlelib.tree import TreeNode, TreeItem, ScrolledCanvas | 9 | 9 |
| 10 | 10 | def StackBrowser(root, flist=None, tb=None, top=None): | | 11 | + global sc, item, node # For testing. | 11 | 12 | if top is None: | 12 | 13 | top = tk.Toplevel(root) | 13 | 14 | sc = ScrolledCanvas(top, bg="white", highlightthickness=0) | @@ -134,7 +135,6 @@ def _stack_viewer(parent): # htest # | 134 | 135 | intentional_name_error | 135 | 136 | except NameError: | 136 | 137 | exc_type, exc_value, exc_tb = sys.exc_info() | 137 | | - | 138 | 138 | # inject stack trace to sys | 139 | 139 | sys.last_type = exc_type | 140 | 140 | sys.last_value = exc_value | @@ -149,7 +149,7 @@ def _stack_viewer(parent): # htest # | 149 | 149 |
| 150 | 150 | if __name__ == '__main__': | 151 | 151 | from unittest import main | 152 | | - main('idlelib.idle_test.test_stackviewer', verbosity=2) | | 152 | + main('idlelib.idle_test.test_stackviewer', verbosity=2, exit=False) | 153 | 153 |
| 154 | 154 | from idlelib.idle_test.htest import run | 155 | 155 | run(_stack_viewer) |
Collapse file Copy file name to clipboard +1Lines changed: 1 addition & 0 deletions - Display the source diff
- Display the rich diff
| Original file line number | Diff line number | Diff line change |
|---|
| | 1 | +Add test for idlelib.stackview.StackBrowser. |
|