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

Issue #27611, #24137: Only change tkinter when easily restored.

üst ee454a0d
...@@ -30,6 +30,7 @@ import linecache ...@@ -30,6 +30,7 @@ import linecache
from code import InteractiveInterpreter from code import InteractiveInterpreter
from platform import python_version, system from platform import python_version, system
from idlelib import testing
from idlelib.editor import EditorWindow, fixwordbreaks from idlelib.editor import EditorWindow, fixwordbreaks
from idlelib.filelist import FileList from idlelib.filelist import FileList
from idlelib.colorizer import ColorDelegator from idlelib.colorizer import ColorDelegator
...@@ -1448,8 +1449,9 @@ def main(): ...@@ -1448,8 +1449,9 @@ def main():
enable_edit = enable_edit or edit_start enable_edit = enable_edit or edit_start
enable_shell = enable_shell or not enable_edit enable_shell = enable_shell or not enable_edit
# Setup root. # Setup root. Don't break user code run in IDLE process.
if use_subprocess: # Don't break user code run in IDLE process # Don't change environment when testing.
if use_subprocess and not testing:
NoDefaultRoot() NoDefaultRoot()
root = Tk(className="Idle") root = Tk(className="Idle")
root.withdraw() root.withdraw()
......
import unittest import unittest
from test.support import import_module from test.support import import_module
# Skip test if _thread or _tkinter wasn't built, or idlelib is missing, # Skip test if _thread or _tkinter wasn't built, if idlelib is missing,
# or if tcl/tk version before 8.5, which is needed for ttk widgets. # or if tcl/tk is not the 8.5+ needed for ttk widgets.
import_module('threading') # imported by PyShell, imports _thread import_module('threading') # imported by PyShell, imports _thread
tk = import_module('tkinter') # imports _tkinter tk = import_module('tkinter') # imports _tkinter
if tk.TkVersion < 8.5: if tk.TkVersion < 8.5:
raise unittest.SkipTest("IDLE requires tk 8.5 or later.") raise unittest.SkipTest("IDLE requires tk 8.5 or later.")
tk.NoDefaultRoot()
idlelib = import_module('idlelib') idlelib = import_module('idlelib')
idlelib.testing = True # Avoid locale-changed test error
# Without test_main present, test.libregrtest.runtest.runtest_inner # Before test imports, tell IDLE to avoid changing the environment.
# calls (line 173) unittest.TestLoader().loadTestsFromModule(module) idlelib.testing = True
# which calls load_tests() if it finds it. (Unittest.main does the same.)
# unittest.main and test.libregrtest.runtest.runtest_inner
# call load_tests, when present, to discover tests to run.
from idlelib.idle_test import load_tests from idlelib.idle_test import load_tests
if __name__ == '__main__': if __name__ == '__main__':
unittest.main(verbosity=2, exit=False) tk.NoDefaultRoot()
unittest.main(exit=False)
tk._support_default_root = 1 tk._support_default_root = 1
tk._default_root = None tk._default_root = None
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