mirror of
https://github.com/python/cpython.git
synced 2025-08-30 13:38:43 +00:00
bpo-42630: Improve error reporting in Tkinter for absent default root (GH-23781)
* Tkinter functions and constructors which need a default root window raise now RuntimeError with descriptive message instead of obscure AttributeError or NameError if it is not created yet or cannot be created automatically. * Add tests for all functions which use default root window. * Fix import in the pynche script.
This commit is contained in:
parent
1e27b57dbc
commit
3d569fd6dc
19 changed files with 315 additions and 87 deletions
|
@ -1,8 +1,10 @@
|
|||
import unittest
|
||||
import gc
|
||||
import tkinter
|
||||
from tkinter import (Variable, StringVar, IntVar, DoubleVar, BooleanVar, Tcl,
|
||||
TclError)
|
||||
from test.support import ALWAYS_EQ
|
||||
from tkinter.test.support import AbstractDefaultRootTest
|
||||
|
||||
|
||||
class Var(Variable):
|
||||
|
@ -308,8 +310,21 @@ class TestBooleanVar(TestBase):
|
|||
v.get()
|
||||
|
||||
|
||||
class DefaultRootTest(AbstractDefaultRootTest, unittest.TestCase):
|
||||
|
||||
def test_variable(self):
|
||||
self.assertRaises(RuntimeError, Variable)
|
||||
root = tkinter.Tk()
|
||||
v = Variable()
|
||||
v.set("value")
|
||||
self.assertEqual(v.get(), "value")
|
||||
root.destroy()
|
||||
tkinter.NoDefaultRoot()
|
||||
self.assertRaises(RuntimeError, Variable)
|
||||
|
||||
|
||||
tests_gui = (TestVariable, TestStringVar, TestIntVar,
|
||||
TestDoubleVar, TestBooleanVar)
|
||||
TestDoubleVar, TestBooleanVar, DefaultRootTest)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue