mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
bpo-37038: Make idlelib.run runnable; add test clause (GH-13560)
This commit is contained in:
parent
1bbf7b661f
commit
81bb97df61
3 changed files with 25 additions and 8 deletions
|
@ -3,6 +3,8 @@ Released on 2019-10-20?
|
||||||
======================================
|
======================================
|
||||||
|
|
||||||
|
|
||||||
|
bpo-37038: Make idlelib.run runnable; add test clause.
|
||||||
|
|
||||||
bpo-36958: Print any argument other than None or int passed to
|
bpo-36958: Print any argument other than None or int passed to
|
||||||
SystemExit or sys.exit().
|
SystemExit or sys.exit().
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
""" idlelib.run
|
||||||
|
|
||||||
|
Simplified, pyshell.ModifiedInterpreter spawns a subprocess with
|
||||||
|
f'''{sys.executable} -c "__import__('idlelib.run').run.main()"'''
|
||||||
|
'.run' is needed because __import__ returns idlelib, not idlelib.run.
|
||||||
|
"""
|
||||||
import io
|
import io
|
||||||
import linecache
|
import linecache
|
||||||
import queue
|
import queue
|
||||||
|
@ -8,8 +14,6 @@ import _thread as thread
|
||||||
import threading
|
import threading
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
import tkinter # Tcl, deletions, messagebox if startup fails
|
|
||||||
|
|
||||||
from idlelib import autocomplete # AutoComplete, fetch_encodings
|
from idlelib import autocomplete # AutoComplete, fetch_encodings
|
||||||
from idlelib import calltip # Calltip
|
from idlelib import calltip # Calltip
|
||||||
from idlelib import debugger_r # start_debugger
|
from idlelib import debugger_r # start_debugger
|
||||||
|
@ -19,11 +23,16 @@ from idlelib import rpc # multiple objects
|
||||||
from idlelib import stackviewer # StackTreeItem
|
from idlelib import stackviewer # StackTreeItem
|
||||||
import __main__
|
import __main__
|
||||||
|
|
||||||
|
import tkinter # Use tcl and, if startup fails, messagebox.
|
||||||
|
if not hasattr(sys.modules['idlelib.run'], 'firstrun'):
|
||||||
|
# Undo modifications of tkinter by idlelib imports; see bpo-25507.
|
||||||
for mod in ('simpledialog', 'messagebox', 'font',
|
for mod in ('simpledialog', 'messagebox', 'font',
|
||||||
'dialog', 'filedialog', 'commondialog',
|
'dialog', 'filedialog', 'commondialog',
|
||||||
'ttk'):
|
'ttk'):
|
||||||
delattr(tkinter, mod)
|
delattr(tkinter, mod)
|
||||||
del sys.modules['tkinter.' + mod]
|
del sys.modules['tkinter.' + mod]
|
||||||
|
# Avoid AttributeError if run again; see bpo-37038.
|
||||||
|
sys.modules['idlelib.run'].firstrun = False
|
||||||
|
|
||||||
LOCALHOST = '127.0.0.1'
|
LOCALHOST = '127.0.0.1'
|
||||||
|
|
||||||
|
@ -523,4 +532,9 @@ class Executive(object):
|
||||||
item = stackviewer.StackTreeItem(flist, tb)
|
item = stackviewer.StackTreeItem(flist, tb)
|
||||||
return debugobj_r.remote_object_tree_item(item)
|
return debugobj_r.remote_object_tree_item(item)
|
||||||
|
|
||||||
capture_warnings(False) # Make sure turned off; see issue 18081
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
from unittest import main
|
||||||
|
main('idlelib.idle_test.test_run', verbosity=2)
|
||||||
|
|
||||||
|
capture_warnings(False) # Make sure turned off; see bpo-18081.
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Make idlelib.run runnable; add test clause.
|
Loading…
Add table
Add a link
Reference in a new issue