diff options
author | Terry Jan Reedy <tjreedy@udel.edu> | 2016-08-16 04:10:14 (GMT) |
---|---|---|
committer | Terry Jan Reedy <tjreedy@udel.edu> | 2016-08-16 04:10:14 (GMT) |
commit | f35bb9e1e93cf7d8af377b2b28e6ecea7b1a2606 (patch) | |
tree | ccbb84a98a8e23bd46c97748b0c7d0cb219b60e3 | |
parent | ee454a0dfca95f679ef2ba5a1d35bebf9e486106 (diff) | |
download | cpython-f35bb9e1e93cf7d8af377b2b28e6ecea7b1a2606.zip cpython-f35bb9e1e93cf7d8af377b2b28e6ecea7b1a2606.tar.gz cpython-f35bb9e1e93cf7d8af377b2b28e6ecea7b1a2606.tar.bz2 |
Issue #27611, #24137: Only change tkinter when easily restored.
-rwxr-xr-x | Lib/idlelib/pyshell.py | 6 | ||||
-rw-r--r-- | Lib/test/test_idle.py | 18 |
2 files changed, 13 insertions, 11 deletions
diff --git a/Lib/idlelib/pyshell.py b/Lib/idlelib/pyshell.py index 28584ac..740c72e 100755 --- a/Lib/idlelib/pyshell.py +++ b/Lib/idlelib/pyshell.py @@ -30,6 +30,7 @@ import linecache from code import InteractiveInterpreter from platform import python_version, system +from idlelib import testing from idlelib.editor import EditorWindow, fixwordbreaks from idlelib.filelist import FileList from idlelib.colorizer import ColorDelegator @@ -1448,8 +1449,9 @@ def main(): enable_edit = enable_edit or edit_start enable_shell = enable_shell or not enable_edit - # Setup root. - if use_subprocess: # Don't break user code run in IDLE process + # Setup root. Don't break user code run in IDLE process. + # Don't change environment when testing. + if use_subprocess and not testing: NoDefaultRoot() root = Tk(className="Idle") root.withdraw() diff --git a/Lib/test/test_idle.py b/Lib/test/test_idle.py index b266fcf..da05da5 100644 --- a/Lib/test/test_idle.py +++ b/Lib/test/test_idle.py @@ -1,23 +1,23 @@ import unittest from test.support import import_module -# Skip test if _thread or _tkinter wasn't built, or idlelib is missing, -# or if tcl/tk version before 8.5, which is needed for ttk widgets. - +# Skip test if _thread or _tkinter wasn't built, if idlelib is missing, +# or if tcl/tk is not the 8.5+ needed for ttk widgets. import_module('threading') # imported by PyShell, imports _thread tk = import_module('tkinter') # imports _tkinter if tk.TkVersion < 8.5: raise unittest.SkipTest("IDLE requires tk 8.5 or later.") -tk.NoDefaultRoot() idlelib = import_module('idlelib') -idlelib.testing = True # Avoid locale-changed test error -# Without test_main present, test.libregrtest.runtest.runtest_inner -# calls (line 173) unittest.TestLoader().loadTestsFromModule(module) -# which calls load_tests() if it finds it. (Unittest.main does the same.) +# Before test imports, tell IDLE to avoid changing the environment. +idlelib.testing = True + +# 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 if __name__ == '__main__': - unittest.main(verbosity=2, exit=False) + tk.NoDefaultRoot() + unittest.main(exit=False) tk._support_default_root = 1 tk._default_root = None |