gh-121008: Fix idlelib.run tests (#121046)

When testing IDLE, don't create a Tk to avoid side effects such as
installing a PyOS_InputHook hook.
This commit is contained in:
Victor Stinner 2024-06-26 15:41:16 +02:00 committed by GitHub
parent c87876763e
commit 44eafd6688
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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