Commit f74805b2 authored by Terry Jan Reedy's avatar Terry Jan Reedy

Issue #21477: Update htest docstring and remove extraneous differences between

2.7 and 3.4. Original patch by Saimadhav Heblikar.
parent e047f56b
'''Run human tests of Idle's window, dialog, and popup widgets. '''Run human tests of Idle's window, dialog, and popup widgets.
run(test): run *test*, a callable that causes a widget to be displayed. run(*tests)
runall(): run all tests defined in this file. Run each callable in tests after finding the matching test spec in this file.
If there are none, run an htest for each spec dict in this file after finding
the matching callable in the module named in the spec.
Let X be a global name bound to a widget callable. End the module with In a tested module, let X be a global name bound to a widget callable.
End the module with
if __name__ == '__main__': if __name__ == '__main__':
<unittest, if there is one> <unittest, if there is one>
...@@ -13,9 +16,9 @@ if __name__ == '__main__': ...@@ -13,9 +16,9 @@ if __name__ == '__main__':
The X object must have a .__name__ attribute and a 'parent' parameter. The X object must have a .__name__ attribute and a 'parent' parameter.
X will often be a widget class, but a callable instance with .__name__ X will often be a widget class, but a callable instance with .__name__
or a wrapper function also work. The name of wrapper functions, like or a wrapper function also work. The name of wrapper functions, like
'_editor_Window', should start with '_'. '_editor_window', should start with '_'.
This file must contain a matching instance of the folling template, This file must contain a matching instance of the following template,
with X.__name__ prepended, as in '_editor_window_spec ...'. with X.__name__ prepended, as in '_editor_window_spec ...'.
_spec = { _spec = {
...@@ -24,11 +27,17 @@ _spec = { ...@@ -24,11 +27,17 @@ _spec = {
'msg': "" 'msg': ""
} }
file (no .py): used in runall() to import the file and get X. file (no .py): used in run() to import the file and get X.
kwds: passed to X (**kwds), after 'parent' is added, to initialize X. kwds: passed to X (**kwds), after 'parent' is added, to initialize X.
title: an example; used for some widgets, delete if not. title: an example; used for some widgets, delete if not.
msg: displayed in a master window. Hints as to how the user might msg: displayed in a master window. Hints as to how the user might
test the widget. Close the window to skip or end the test. test the widget. Close the window to skip or end the test.
Modules not being tested at the moment:
PyShell.PyShellEditorWindow
Debugger.Debugger
AutoCompleteWindow.AutoCompleteWindow
OutputWindow.OutputWindow (indirectly being tested with grep test)
''' '''
from importlib import import_module from importlib import import_module
from idlelib.macosxSupport import _initializeTkVariantTests from idlelib.macosxSupport import _initializeTkVariantTests
...@@ -94,7 +103,7 @@ _dyn_option_menu_spec = { ...@@ -94,7 +103,7 @@ _dyn_option_menu_spec = {
_editor_window_spec = { _editor_window_spec = {
'file': 'EditorWindow', 'file': 'EditorWindow',
'kwds': {}, 'kwds': {},
'msg': "Test editor functions of interest" 'msg': "Test editor functions of interest."
} }
GetCfgSectionNameDialog_spec = { GetCfgSectionNameDialog_spec = {
...@@ -305,7 +314,6 @@ def run(*tests): ...@@ -305,7 +314,6 @@ def run(*tests):
scrollbar.pack(side='right', fill='y', expand=False) scrollbar.pack(side='right', fill='y', expand=False)
text.pack(side='left', fill='both', expand=True) text.pack(side='left', fill='both', expand=True)
test_list = [] # List of tuples of the form (spec, callable widget) test_list = [] # List of tuples of the form (spec, callable widget)
if tests: if tests:
for test in tests: for test in tests:
...@@ -333,7 +341,7 @@ def run(*tests): ...@@ -333,7 +341,7 @@ def run(*tests):
test_spec, callable_object[0] = test_list.pop() test_spec, callable_object[0] = test_list.pop()
test_kwds[0] = test_spec['kwds'] test_kwds[0] = test_spec['kwds']
test_kwds[0]['parent'] = root test_kwds[0]['parent'] = root
test_name[0].set('test ' + test_spec['name']) test_name[0].set('Test ' + test_spec['name'])
text.configure(state='normal') # enable text editing text.configure(state='normal') # enable text editing
text.delete('1.0','end') text.delete('1.0','end')
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment