Skip to content

Commit bcd3a1a

Browse files
authored
bpo-33905: Add test for idlelib.stackview.StackBrowser. (GH-7852)
Increases coverage by 44%.
1 parent 419e88d commit bcd3a1a

File tree

3 files changed

+23
-11
lines changed

3 files changed

+23
-11
lines changed

Lib/idlelib/idle_test/test_stackviewer.py

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,46 @@
1-
"Test stackviewer, coverage 19%."
1+
"Test stackviewer, coverage 63%."
22

33
from idlelib import stackviewer
44
import unittest
55
from test.support import requires
66
from tkinter import Tk
77

8+
from idlelib.tree import TreeNode, ScrolledCanvas
9+
import sys
810

9-
class Test(unittest.TestCase):
11+
12+
class StackBrowserTest(unittest.TestCase):
1013

1114
@classmethod
1215
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+
1323
requires('gui')
1424
cls.root = Tk()
1525
cls.root.withdraw()
1626

1727
@classmethod
1828
def tearDownClass(cls):
29+
svs = stackviewer.sys
30+
del svs.last_traceback, svs.last_type, svs.last_value
31+
1932
cls.root.update_idletasks()
2033
## for id in cls.root.tk.call('after', 'info'):
2134
## cls.root.after_cancel(id) # Need for EditorWindow.
2235
cls.root.destroy()
2336
del cls.root
2437

2538
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)
3344

3445

3546
if __name__ == '__main__':

Lib/idlelib/stackviewer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from idlelib.tree import TreeNode, TreeItem, ScrolledCanvas
99

1010
def StackBrowser(root, flist=None, tb=None, top=None):
11+
global sc, item, node # For testing.
1112
if top is None:
1213
top = tk.Toplevel(root)
1314
sc = ScrolledCanvas(top, bg="white", highlightthickness=0)
@@ -134,7 +135,6 @@ def _stack_viewer(parent): # htest #
134135
intentional_name_error
135136
except NameError:
136137
exc_type, exc_value, exc_tb = sys.exc_info()
137-
138138
# inject stack trace to sys
139139
sys.last_type = exc_type
140140
sys.last_value = exc_value
@@ -149,7 +149,7 @@ def _stack_viewer(parent): # htest #
149149

150150
if __name__ == '__main__':
151151
from unittest import main
152-
main('idlelib.idle_test.test_stackviewer', verbosity=2)
152+
main('idlelib.idle_test.test_stackviewer', verbosity=2, exit=False)
153153

154154
from idlelib.idle_test.htest import run
155155
run(_stack_viewer)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Add test for idlelib.stackview.StackBrowser.

0 commit comments

Comments
 (0)