Kaydet (Commit) 5a493e9d authored tarafından Terry Jan Reedy's avatar Terry Jan Reedy

Merge issue #27196 from 3.5: Stop IDLE test 'application destroyed' warnings.

...@@ -71,9 +71,15 @@ deleted BEFORE root is destroyed. See https://bugs.python.org/issue20567. ...@@ -71,9 +71,15 @@ deleted BEFORE root is destroyed. See https://bugs.python.org/issue20567.
@classmethod @classmethod
def tearDownClass(cls): def tearDownClass(cls):
del cls.text del cls.text
cls.root.update_idletasks()
cls.root.destroy() cls.root.destroy()
del cls.root del cls.root
The update_idletasks call is sometimes needed to prevent the following warning
either when running a test alone or as part of the test suite (#27196).
can't invoke "event" command: application has been destroyed
...
"ttk::ThemeChanged"
Requires('gui') causes the test(s) it guards to be skipped if any of Requires('gui') causes the test(s) it guards to be skipped if any of
these conditions are met: these conditions are met:
......
'''Unittests for idlelib/config.py '''Test idlelib.configdialog.
Coverage: 46% just by creating dialog. The other half is change code. Coverage: 46% just by creating dialog. The other half is change code.
''' '''
import unittest import unittest
from test.support import requires from test.support import requires
...@@ -20,11 +19,12 @@ class ConfigDialogTest(unittest.TestCase): ...@@ -20,11 +19,12 @@ class ConfigDialogTest(unittest.TestCase):
@classmethod @classmethod
def tearDownClass(cls): def tearDownClass(cls):
cls.root.update_idletasks()
cls.root.destroy() cls.root.destroy()
del cls.root del cls.root
def test_dialog(self): def test_dialog(self):
d=ConfigDialog(self.root, 'Test', _utest=True) d = ConfigDialog(self.root, 'Test', _utest=True)
d.remove_var_callbacks() d.remove_var_callbacks()
d.destroy() d.destroy()
......
"""Test idlelib.parenmatch.""" '''Test idlelib.parenmatch.
# This must currently be a gui test because ParenMatch methods use
# several text methods not defined on idlelib.idle_test.mock_tk.Text. This must currently be a gui test because ParenMatch methods use
several text methods not defined on idlelib.idle_test.mock_tk.Text.
'''
from test.support import requires from test.support import requires
requires('gui') requires('gui')
...@@ -29,6 +31,7 @@ class ParenMatchTest(unittest.TestCase): ...@@ -29,6 +31,7 @@ class ParenMatchTest(unittest.TestCase):
@classmethod @classmethod
def tearDownClass(cls): def tearDownClass(cls):
del cls.text, cls.editwin del cls.text, cls.editwin
cls.root.update_idletasks()
cls.root.destroy() cls.root.destroy()
del cls.root del cls.root
......
"""Unittest for idlelib.redirector '''Test idlelib.redirector.
100% coverage 100% coverage
""" '''
from test.support import requires from test.support import requires
import unittest import unittest
from idlelib.idle_test.mock_idle import Func from idlelib.idle_test.mock_idle import Func
...@@ -48,8 +48,8 @@ class WidgetRedirectorTest(unittest.TestCase): ...@@ -48,8 +48,8 @@ class WidgetRedirectorTest(unittest.TestCase):
@classmethod @classmethod
def tearDownClass(cls): def tearDownClass(cls):
cls.text.destroy()
del cls.text del cls.text
cls.root.update_idletasks()
cls.root.destroy() cls.root.destroy()
del cls.root del cls.root
......
'''Test the functions and main class method of textview.py. '''Test idlelib.textview.
Since all methods and functions create (or destroy) a TextViewer, which Since all methods and functions create (or destroy) a TextViewer, which
is a widget containing multiple widgets, all tests must be gui tests. is a widget containing multiple widgets, all tests must be gui tests.
...@@ -24,6 +24,7 @@ def setUpModule(): ...@@ -24,6 +24,7 @@ def setUpModule():
def tearDownModule(): def tearDownModule():
global root, TV global root, TV
del TV del TV
root.update_idletasks()
root.destroy() # pyflakes falsely sees root as undefined root.destroy() # pyflakes falsely sees root as undefined
del root del root
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment