mirror of https://github.com/python/cpython
Issue #20567: Delete class attribute gui widgets in idle tests.
Code patch by Serhiy Storchaka
This commit is contained in:
parent
b807577da2
commit
9db1ab8250
|
@ -41,9 +41,10 @@ idle class. For the benefit of buildbot machines that do not have a graphics
|
|||
screen, gui tests must be 'guarded' by "requires('gui')" in a setUp
|
||||
function or method. This will typically be setUpClass.
|
||||
|
||||
All gui objects must be destroyed by the end of the test, perhaps in a tearDown
|
||||
function. Creating the Tk root directly in a setUp allows a reference to be saved
|
||||
so it can be properly destroyed in the corresponding tearDown.
|
||||
To avoid interfering with other gui tests, all gui objects must be destroyed
|
||||
and deleted by the end of the test. If a widget, such as a Tk root, is created
|
||||
in a setUpX function, destroy it in the corresponding tearDownX. For module
|
||||
and class attributes, also delete the widget.
|
||||
---
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
|
@ -53,6 +54,7 @@ so it can be properly destroyed in the corresponding tearDown.
|
|||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
cls.root.destroy()
|
||||
del cls.root
|
||||
---
|
||||
|
||||
Support.requires('gui') returns true if it is either called in a main module
|
||||
|
|
|
@ -277,6 +277,9 @@ class FormatEventTest(unittest.TestCase):
|
|||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
cls.root.destroy()
|
||||
del cls.root
|
||||
del cls.text
|
||||
del cls.formatter
|
||||
|
||||
def test_short_line(self):
|
||||
self.text.insert('1.0', "Short line\n")
|
||||
|
|
|
@ -80,6 +80,7 @@ class FetchTest(unittest.TestCase):
|
|||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
cls.root.destroy()
|
||||
del cls.root
|
||||
|
||||
def fetch_test(self, reverse, line, prefix, index, *, bell=False):
|
||||
# Perform one fetch as invoked by Alt-N or Alt-P
|
||||
|
|
|
@ -64,6 +64,7 @@ class GetSelectionTest(unittest.TestCase):
|
|||
## @classmethod
|
||||
## def tearDownClass(cls):
|
||||
## cls.root.destroy()
|
||||
## del cls.root
|
||||
|
||||
def test_get_selection(self):
|
||||
# text = Text(master=self.root)
|
||||
|
@ -219,6 +220,7 @@ class SearchTest(unittest.TestCase):
|
|||
## @classmethod
|
||||
## def tearDownClass(cls):
|
||||
## cls.root.destroy()
|
||||
## del cls.root
|
||||
|
||||
def test_search(self):
|
||||
Equal = self.assertEqual
|
||||
|
@ -261,6 +263,7 @@ class ForwardBackwardTest(unittest.TestCase):
|
|||
## @classmethod
|
||||
## def tearDownClass(cls):
|
||||
## cls.root.destroy()
|
||||
## del cls.root
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
|
|
|
@ -221,6 +221,7 @@ class TkTextTest(TextTest, unittest.TestCase):
|
|||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
cls.root.destroy()
|
||||
del cls.root
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
|
@ -14,6 +14,7 @@ if use_resources and 'gui' in use_resources:
|
|||
try:
|
||||
root = tk.Tk()
|
||||
root.destroy()
|
||||
del root
|
||||
except tk.TclError:
|
||||
while 'gui' in use_resources:
|
||||
use_resources.remove('gui')
|
||||
|
|
Loading…
Reference in New Issue