mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
gh-113729: Fix IDLE's Help -> "IDLE Help" menu bug in 3.12.1 and 3.11.7 (#113731)
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
This commit is contained in:
parent
d0f0308a37
commit
66f3964815
5 changed files with 26 additions and 20 deletions
|
@ -4,6 +4,8 @@ Released on 2024-10-xx
|
|||
=========================
|
||||
|
||||
|
||||
gh-113729: Fix the "Help -> IDLE Doc" menu bug in 3.11.7 and 3.12.1.
|
||||
|
||||
gh-57795: Enter selected text into the Find box when opening
|
||||
a Replace dialog. Patch by Roger Serwy and Zackery Spytz.
|
||||
|
||||
|
|
|
@ -241,12 +241,13 @@ class HelpWindow(Toplevel):
|
|||
Toplevel.__init__(self, parent)
|
||||
self.wm_title(title)
|
||||
self.protocol("WM_DELETE_WINDOW", self.destroy)
|
||||
HelpFrame(self, filename).grid(column=0, row=0, sticky='nsew')
|
||||
self.frame = HelpFrame(self, filename)
|
||||
self.frame.grid(column=0, row=0, sticky='nsew')
|
||||
self.grid_columnconfigure(0, weight=1)
|
||||
self.grid_rowconfigure(0, weight=1)
|
||||
|
||||
|
||||
def copy_strip():
|
||||
def copy_strip(): # pragma: no cover
|
||||
"""Copy idle.html to idlelib/help.html, stripping trailing whitespace.
|
||||
|
||||
Files with trailing whitespace cannot be pushed to the git cpython
|
||||
|
@ -279,13 +280,13 @@ def copy_strip():
|
|||
print(f'{src} copied to {dst}')
|
||||
|
||||
|
||||
def _helpwindow(parent):
|
||||
def show_idlehelp(parent):
|
||||
"Create HelpWindow; called from Idle Help event handler."
|
||||
filename = join(abspath(dirname(__file__)), 'help.html')
|
||||
if not isfile(filename):
|
||||
if not isfile(filename): # pragma: no cover
|
||||
# Try copy_strip, present message.
|
||||
return
|
||||
HelpWindow(parent, filename, 'IDLE Help (%s)' % python_version())
|
||||
return HelpWindow(parent, filename, 'IDLE Doc (%s)' % python_version())
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
@ -293,4 +294,4 @@ if __name__ == '__main__':
|
|||
main('idlelib.idle_test.test_help', verbosity=2, exit=False)
|
||||
|
||||
from idlelib.idle_test.htest import run
|
||||
run(_helpwindow)
|
||||
run(show_idlehelp)
|
||||
|
|
|
@ -190,13 +190,6 @@ HelpSource_spec = {
|
|||
"<Escape>, [Cancel], or [X] prints None to shell"
|
||||
}
|
||||
|
||||
_helpwindow_spec = {
|
||||
'file': 'help',
|
||||
'kwds': {},
|
||||
'msg': "If the help text displays, this works.\n"
|
||||
"Text is selectable. Window is scrollable."
|
||||
}
|
||||
|
||||
_io_binding_spec = {
|
||||
'file': 'iomenu',
|
||||
'kwds': {},
|
||||
|
@ -299,6 +292,13 @@ _searchbase_spec = {
|
|||
"Its only action is to close."
|
||||
}
|
||||
|
||||
show_idlehelp_spec = {
|
||||
'file': 'help',
|
||||
'kwds': {},
|
||||
'msg': "If the help text displays, this works.\n"
|
||||
"Text is selectable. Window is scrollable."
|
||||
}
|
||||
|
||||
_sidebar_number_scrolling_spec = {
|
||||
'file': 'sidebar',
|
||||
'kwds': {},
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
"Test help, coverage 87%."
|
||||
"Test help, coverage 94%."
|
||||
|
||||
from idlelib import help
|
||||
import unittest
|
||||
|
@ -8,25 +8,27 @@ from os.path import abspath, dirname, join
|
|||
from tkinter import Tk
|
||||
|
||||
|
||||
class HelpFrameTest(unittest.TestCase):
|
||||
class IdleDocTest(unittest.TestCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
"By itself, this tests that file parsed without exception."
|
||||
cls.root = root = Tk()
|
||||
root.withdraw()
|
||||
helpfile = join(dirname(dirname(abspath(__file__))), 'help.html')
|
||||
cls.frame = help.HelpFrame(root, helpfile)
|
||||
cls.window = help.show_idlehelp(root)
|
||||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
del cls.frame
|
||||
del cls.window
|
||||
cls.root.update_idletasks()
|
||||
cls.root.destroy()
|
||||
del cls.root
|
||||
|
||||
def test_line1(self):
|
||||
text = self.frame.text
|
||||
def test_1window(self):
|
||||
self.assertIn('IDLE Doc', self.window.wm_title())
|
||||
|
||||
def test_4text(self):
|
||||
text = self.window.frame.text
|
||||
self.assertEqual(text.get('1.0', '1.end'), ' IDLE ')
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue