mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	[3.9] bpo-42630: Improve error reporting in Tkinter for absent default root (GH-23781) (GH-23853)
* 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.
(cherry picked from commit 3d569fd6dc)
			
			
This commit is contained in:
		
							parent
							
								
									d458d8dab0
								
							
						
					
					
						commit
						87e7a14ee3
					
				
					 19 changed files with 316 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 @@ def test_invalid_value_domain(self): | |||
|             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
	
	 Serhiy Storchaka
						Serhiy Storchaka