classification
Title: Idle: Improve htests
Type: enhancement Stage: needs patch
Components: IDLE Versions: Python 3.7, Python 3.6
process
Status: open Resolution:
Dependencies: 22629 27636 Superseder:
Assigned To: terry.reedy Nosy List: Saimadhav.Heblikar, haypo, jesstess, terry.reedy
Priority: normal Keywords:

Created on 2014-06-01 04:41 by terry.reedy, last changed 2017-07-05 20:22 by terry.reedy.

Pull Requests
URL Status Linked Edit
PR 2575 merged terry.reedy, 2017-07-05 01:35
PR 2578 merged terry.reedy, 2017-07-05 03:02
Messages (6)
msg219486 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2014-06-01 04:41
#21477 was about finishing the htest framework and creating at least a first draft of each human test. This issue is about refining individual tests. One remaining issue is placement of the master window and placement of test windows in relation to the master. The test message for some might use editing. Tests that only test behavior might be replaced by a unittest module. Some general tests, such as for Editor Window, might be split into separate tests with more specific instructions. These changes might or might not be done as part of the GSOC project.
msg220074 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2014-06-09 00:17
Another issue for sometests, but which might be fixed in htest.run, is to force focus to the new widget window opened by the Test_xyz button.
msg220238 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2014-06-11 06:29
Refinement 1: in doing coverage for UndoDelegator, I noticed that the htest function is counted as missing (uncovered). Both of the following in .coveragerc work to ignore the block: name prefix; comment suffix.
	def htest_.*:
	.*# htest #
The second is more practical for alphabetical order in htest. It is also less work to change. The particular form marks it as not a normal comment.

Refinement 2: put all imports that are specific to the htest function at the top of the function. Since the function is only called once per process, there is no efficiency consideration. I decided that after the tkinter import at the top got me (wasting time) looking through UndoDelegator for a widget call that might be the source of the leak. The changes can wait until we edit the file anyway, or at least write a test.

However, the docstring at the top of htest.py should be changed.
msg297691 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2017-07-04 23:47
Current htest issues from this and two other issues, notes, and running htests with htest.py.

(Default master window placement is ok.  Can move.)

h1. At least one test window overlaps the test window. Others are not centered (y-position). Fix by passing _htest and changing geometry accordingly.  Use f-strings.  Develop formula for centering?

(Test messages "might use editing" is too vague.  Ditto for EditorWindow 'might be split'.)

h2. All widgets should be displayed.  A couple of htests test behavior in widgets otherwise displayed, and *these* should be unittested if possible.

h3. Force focus to opened widget window.  Probably still needed.

h4. Putting imports only needed by htest functions in the function is a good idea.  Introducing a regression by mistake is not.  Do this when edit after thorough tests.

h5. # htest # is present on all current htest functions. Check that is documented, including .coveragerc entry.

h6. What is left from #22629 after patch applied?

h7. #27636: incapsulate common features in classes defined in htest.py.

3 Specific TODOs in htest.py:

h8. Improve message for dyn_option_menu.

h9. Improve wrapper for EditorWindow.

h10. Update GetKeysDialog test now that #21519 closed.

h11. My note: Get keys dialog prints blank line to console, something prints 'None'. Check when run all tests.

h12. Test window should show version and module (from __file__).  Make part of #27636.
msg297694 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2017-07-05 02:41
New changeset 2000150c569941584994ec4ec59171961209bec3 by terryjreedy in branch 'master':
bpo-21624: IDLE -- minor htest fixes (#2575)
https://github.com/python/cpython/commit/2000150c569941584994ec4ec59171961209bec3
msg297700 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2017-07-05 04:55
New changeset 1278d29000794085f1d9e25f2dadbf70b9076e30 by terryjreedy in branch '3.6':
[3.6] bpo-21624: IDLE -- minor htest fixes (GH-2575) (#2578)
https://github.com/python/cpython/commit/1278d29000794085f1d9e25f2dadbf70b9076e30
History
Date User Action Args
2017-07-05 20:22:18terry.reedysetmessages: - msg297740
2017-07-05 13:44:55hayposetnosy: + haypo
messages: + msg297740
2017-07-05 04:55:31terry.reedysetmessages: + msg297700
2017-07-05 03:02:53terry.reedysetpull_requests: + pull_request2648
2017-07-05 02:41:16terry.reedysetmessages: + msg297694
2017-07-05 01:35:38terry.reedysetpull_requests: + pull_request2645
2017-07-04 23:47:54terry.reedysetdependencies: + Idle: update htest.py and htests, Refactor IDLE htest
messages: + msg297691
title: Idle: polish htests -> Idle: Improve htests
2017-06-19 23:18:40terry.reedysetcomponents: + IDLE
versions: + Python 3.6, Python 3.7, - Python 2.7, Python 3.4, Python 3.5
2014-06-11 06:29:53terry.reedysetmessages: + msg220238
2014-06-09 00:17:58terry.reedysetmessages: + msg220074
2014-06-01 04:44:08terry.reedylinkissue21477 superseder
2014-06-01 04:41:10terry.reedycreate