summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2024-06-26 14:08:31 (GMT)
committerGitHub <noreply@github.com>2024-06-26 14:08:31 (GMT)
commitbdcc738fec377a9936d21899b08129374fe3cc7b (patch)
tree076084e29064a78fe6e44d103ef5d0e21af32ebe
parent7db14f1eba1ac6a42f0fb0d5fbaea07ed3d7d492 (diff)
downloadcpython-bdcc738fec377a9936d21899b08129374fe3cc7b.zip
cpython-bdcc738fec377a9936d21899b08129374fe3cc7b.tar.gz
cpython-bdcc738fec377a9936d21899b08129374fe3cc7b.tar.bz2
[3.13] gh-121008: Fix idlelib.run tests (GH-121046) (#121049)
gh-121008: Fix idlelib.run tests (GH-121046) When testing IDLE, don't create a Tk to avoid side effects such as installing a PyOS_InputHook hook. (cherry picked from commit 44eafd66882589d4f4eb569d70c49724da3e9291) Co-authored-by: Victor Stinner <vstinner@python.org>
-rw-r--r--Lib/idlelib/run.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py
index 53e80a9..8974b52 100644
--- a/Lib/idlelib/run.py
+++ b/Lib/idlelib/run.py
@@ -91,13 +91,20 @@ def capture_warnings(capture):
_warnings_showwarning = None
capture_warnings(True)
-tcl = tkinter.Tcl()
-def handle_tk_events(tcl=tcl):
- """Process any tk events that are ready to be dispatched if tkinter
- has been imported, a tcl interpreter has been created and tk has been
- loaded."""
- tcl.eval("update")
+if idlelib.testing:
+ # gh-121008: When testing IDLE, don't create a Tk object to avoid side
+ # effects such as installing a PyOS_InputHook hook.
+ def handle_tk_events():
+ pass
+else:
+ tcl = tkinter.Tcl()
+
+ def handle_tk_events(tcl=tcl):
+ """Process any tk events that are ready to be dispatched if tkinter
+ has been imported, a tcl interpreter has been created and tk has been
+ loaded."""
+ tcl.eval("update")
# Thread shared globals: Establish a queue between a subthread (which handles
# the socket) and the main thread (which runs user code), plus global