'''Run human tests of Idle's window, dialog, and popup widgets.
-run(test): run *test*, a callable that causes a widget to be displayed.
-runall(): run all tests defined in this file.
+run(*tests)
+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__':
<unittest, if there is one>
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__
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 ...'.
_spec = {
'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.
title: an example; used for some widgets, delete if not.
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.
+
+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 idlelib.macosxSupport import _initializeTkVariantTests
_editor_window_spec = {
'file': 'EditorWindow',
'kwds': {},
- 'msg': "Test editor functions of interest"
+ 'msg': "Test editor functions of interest."
}
GetCfgSectionNameDialog_spec = {
scrollbar.pack(side='right', fill='y', expand=False)
text.pack(side='left', fill='both', expand=True)
-
test_list = [] # List of tuples of the form (spec, callable widget)
if tests:
for test in tests:
test_spec, callable_object[0] = test_list.pop()
test_kwds[0] = test_spec['kwds']
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.delete('1.0','end')