Skip to content

Commit

Permalink
[3.13] pythongh-121008: Fix idlelib.run tests (pythonGH-121046) (pyth…
Browse files Browse the repository at this point in the history
…on#121049)

pythongh-121008: Fix idlelib.run tests (pythonGH-121046)

When testing IDLE, don't create a Tk to avoid side effects such as
installing a PyOS_InputHook hook.
(cherry picked from commit 44eafd6)

Co-authored-by: Victor Stinner <vstinner@python.org>
  • Loading branch information
miss-islington and vstinner committed Jun 26, 2024
1 parent 7db14f1 commit bdcc738
Showing 1 changed file with 13 additions and 6 deletions.
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

0 comments on commit bdcc738

Please sign in to comment.