mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
bpo-27115: Use Query subclass for IDLE editor Goto (GH-18871)
Replace tkinter tkSimpleDialog.askinteger with a standard IDLE query dialog. The new box checks for positivity before returning.
This commit is contained in:
parent
e7cab7f780
commit
363fab83b8
5 changed files with 74 additions and 12 deletions
|
@ -138,6 +138,33 @@ class ModuleNameTest(unittest.TestCase):
|
|||
self.assertEqual(dialog.entry_error['text'], '')
|
||||
|
||||
|
||||
class GotoTest(unittest.TestCase):
|
||||
"Test Goto subclass of Query."
|
||||
|
||||
class Dummy_ModuleName:
|
||||
entry_ok = query.Goto.entry_ok # Function being tested.
|
||||
def __init__(self, dummy_entry):
|
||||
self.entry = Var(value=dummy_entry)
|
||||
self.entry_error = {'text': ''}
|
||||
def showerror(self, message):
|
||||
self.entry_error['text'] = message
|
||||
|
||||
def test_bogus_goto(self):
|
||||
dialog = self.Dummy_ModuleName('a')
|
||||
self.assertEqual(dialog.entry_ok(), None)
|
||||
self.assertIn('not a base 10 integer', dialog.entry_error['text'])
|
||||
|
||||
def test_bad_goto(self):
|
||||
dialog = self.Dummy_ModuleName('0')
|
||||
self.assertEqual(dialog.entry_ok(), None)
|
||||
self.assertIn('not a positive integer', dialog.entry_error['text'])
|
||||
|
||||
def test_good_goto(self):
|
||||
dialog = self.Dummy_ModuleName('1')
|
||||
self.assertEqual(dialog.entry_ok(), 1)
|
||||
self.assertEqual(dialog.entry_error['text'], '')
|
||||
|
||||
|
||||
# 3 HelpSource test classes each test one method.
|
||||
|
||||
class HelpsourceBrowsefileTest(unittest.TestCase):
|
||||
|
@ -363,6 +390,22 @@ class ModulenameGuiTest(unittest.TestCase):
|
|||
root.destroy()
|
||||
|
||||
|
||||
class GotoGuiTest(unittest.TestCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
requires('gui')
|
||||
|
||||
def test_click_module_name(self):
|
||||
root = Tk()
|
||||
root.withdraw()
|
||||
dialog = query.Goto(root, 'T', 't', _utest=True)
|
||||
dialog.entry.insert(0, '22')
|
||||
dialog.button_ok.invoke()
|
||||
self.assertEqual(dialog.result, 22)
|
||||
root.destroy()
|
||||
|
||||
|
||||
class HelpsourceGuiTest(unittest.TestCase):
|
||||
|
||||
@classmethod
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue