summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTerry Jan Reedy <tjreedy@udel.edu>2016-08-16 04:10:14 (GMT)
committerTerry Jan Reedy <tjreedy@udel.edu>2016-08-16 04:10:14 (GMT)
commitf35bb9e1e93cf7d8af377b2b28e6ecea7b1a2606 (patch)
treeccbb84a98a8e23bd46c97748b0c7d0cb219b60e3
parentee454a0dfca95f679ef2ba5a1d35bebf9e486106 (diff)
downloadcpython-f35bb9e1e93cf7d8af377b2b28e6ecea7b1a2606.zip
cpython-f35bb9e1e93cf7d8af377b2b28e6ecea7b1a2606.tar.gz
cpython-f35bb9e1e93cf7d8af377b2b28e6ecea7b1a2606.tar.bz2
Issue #27611, #24137: Only change tkinter when easily restored.
-rwxr-xr-xLib/idlelib/pyshell.py6
-rw-r--r--Lib/test/test_idle.py18
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