Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
gh-121008: Fix idlelib.run tests
When testing IDLE, don't create a Tk to avoid side effects such as
installing a PyOS_InputHook hook.
  • Loading branch information
vstinner committed Jun 26, 2024
commit a9f3f4bfb53683e61baeceb479e642c2f0348713
19 changes: 13 additions & 6 deletions Lib/idlelib/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down