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
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()
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