From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Wed, 26 Jun 2024 14:08:31 +0000 (+0200) Subject: [3.13] gh-121008: Fix idlelib.run tests (GH-121046) (#121049) X-Git-Tag: v3.13.0b3~10 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bdcc738fec377a9936d21899b08129374fe3cc7b;p=thirdparty%2FPython%2Fcpython.git [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 --- diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py index 53e80a9b4280..8974b52674fb 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