bpo-30780: Add IDLE configdialog tests - #3592
Conversation
|
I removed the " needs backport to 3.6" label, the 3.6 branch no longer accept bugfixes (only security fixes are accepted): https://devguide.python.org/#status-of-python-branches |
…g and add tests for buttons.
|
I fixed the overt conflicts with the web editor. I fixed the failure on my local branch. I forgot that patch can only be used to temporarily replace existing attribute, not temporarily add new attribute. I intend to add context manager to idle_test.mock_idle for the latter, so we don't have to explicitly delete when instance is persistent across tests, as dialog is. I am now reviewing other tests and will add blurb and NEWS.txt items and update coverage when ready to commit. |
and deleted unneeded keys test code. This does opposite.
terryjreedy
left a comment
There was a problem hiding this comment.
I still need to look at the new test_delete_custom_theme/keys code.
terryjreedy
left a comment
There was a problem hiding this comment.
Will merge when CI passes again.
| theme_name2 = 'other theme' | ||
| idleConf.userCfg['highlight'].SetOption(theme_name2, 'name', 'value') | ||
| highpage[theme_name2] = {'option': 'False'} | ||
|
|
There was a problem hiding this comment.
This and the corresponding additions for keys cover the failure of if not item_list and the else clause. I suspect it could be done in fewer lines, but I hope to someday factor out the common code, simpfiy the UI, and redo the tests anyway. So leave the additions alone.
|
@terryjreedy: Please replace |
|
Thanks @csabella for the PR, and @terryjreedy for merging it 🌮🎉.. I'm working now to backport this PR to: 3.7, 3.8. |
|
I'm having trouble backporting to |
Expose dialog buttons to test code and complete their test coverage. Complete test coverage for highlights and keys tabs. Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu> (cherry picked from commit dd023ad) Co-authored-by: Cheryl Sabella <cheryl.sabella@gmail.com>
|
GH-18218 is a backport of this pull request to the 3.7 branch. |
|
Thanks @csabella for the PR, and @terryjreedy for merging it 🌮🎉.. I'm working now to backport this PR to: 3.8. |
|
GH-18219 is a backport of this pull request to the 3.8 branch. |
Expose dialog buttons to test code and complete their test coverage. Complete test coverage for highlights and keys tabs. Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu> (cherry picked from commit dd023ad) Co-authored-by: Cheryl Sabella <cheryl.sabella@gmail.com>
Expose dialog buttons to test code and complete their test coverage. Complete test coverage for highlights and keys tabs. Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu> (cherry picked from commit dd023ad) Co-authored-by: Cheryl Sabella <cheryl.sabella@gmail.com>
Expose dialog buttons to test code and complete their test coverage. Complete test coverage for highlights and keys tabs. Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu> (cherry picked from commit dd023ad) Co-authored-by: Cheryl Sabella <cheryl.sabella@gmail.com>
|
Terry, thanks for merging this! 🙂 |
Expose dialog buttons to test code and complete their test coverage. Complete test coverage for highlights and keys tabs. Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
Restore the placeholder import in idlelib/idle_test/template.py It was removed as an unused import in GH-151478, but template.py is a skeleton for creating new IDLE test files, and idle_test/README.txt instructs the user to replace 'zzdummy' with the name of the module under test. Add a Ruff per-file ignore to keep it. test_editor.RMenuTest was added in GH-18951, which fixed right-clicking inside a selection, with the note that an automated test should follow. Use the DummyRMenu class left there to test right_menu_event(), and test the rmenu_check_*() methods that supply the menu entry states. test_configdialog.ConfigDialogTest was left with two empty stubs in GH-3592, named after the two ConfigDialog methods which the button tests only check to be called. Test them with a fake parent whose instance dictionary contains an autospecced EditorWindow. test_configdialog.ExtPageTest was added empty, with a commented-out "Nothing here yet TODO" skip, when ExtPage was factored out of ConfigDialog in GH-26618. Test load_extensions(), extension_selected(), set_extension_value() and save_all_changed_extensions(). test_grep.Default_commandTest was left empty in 2013 because GrepDialog.default_command() imports OutputWindow when called, and the import cannot be moved to the top of the module due to an import loop. Replace the imported class with a mock instead of moving the import. test_config.ChangesTest.test_save_default never called save_all(), so it tested nothing. Add the missing assertions, and add the test for the Save() calls that the following TODO comment asked for. test_config.IdleConfTest.test_get_current_keyset only tested the non-darwin branch, because the default key sets no longer contain Alt keys. Add an extension binding with an Alt key, so that its replacement with Option can be tested. Remove the stale commented-out test in test_get_extension_keys, which used the ZoomHeight extension. --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Co-authored-by: TerryJReedy <tjreedy@udel.edu>
…) (#157205) Restore the placeholder import in idlelib/idle_test/template.py It was removed as an unused import in GH-151478, but template.py is a skeleton for creating new IDLE test files, and idle_test/README.txt instructs the user to replace 'zzdummy' with the name of the module under test. Add a Ruff per-file ignore to keep it. test_editor.RMenuTest was added in GH-18951, which fixed right-clicking inside a selection, with the note that an automated test should follow. Use the DummyRMenu class left there to test right_menu_event(), and test the rmenu_check_*() methods that supply the menu entry states. test_configdialog.ConfigDialogTest was left with two empty stubs in GH-3592, named after the two ConfigDialog methods which the button tests only check to be called. Test them with a fake parent whose instance dictionary contains an autospecced EditorWindow. test_configdialog.ExtPageTest was added empty, with a commented-out "Nothing here yet TODO" skip, when ExtPage was factored out of ConfigDialog in GH-26618. Test load_extensions(), extension_selected(), set_extension_value() and save_all_changed_extensions(). test_grep.Default_commandTest was left empty in 2013 because GrepDialog.default_command() imports OutputWindow when called, and the import cannot be moved to the top of the module due to an import loop. Replace the imported class with a mock instead of moving the import. test_config.ChangesTest.test_save_default never called save_all(), so it tested nothing. Add the missing assertions, and add the test for the Save() calls that the following TODO comment asked for. test_config.IdleConfTest.test_get_current_keyset only tested the non-darwin branch, because the default key sets no longer contain Alt keys. Add an extension binding with an Alt key, so that its replacement with Option can be tested. Remove the stale commented-out test in test_get_extension_keys, which used the ZoomHeight extension. --------- (cherry picked from commit f8f8c30)
…) (#157206) Restore the placeholder import in idlelib/idle_test/template.py It was removed as an unused import in GH-151478, but template.py is a skeleton for creating new IDLE test files, and idle_test/README.txt instructs the user to replace 'zzdummy' with the name of the module under test. Add a Ruff per-file ignore to keep it. test_editor.RMenuTest was added in GH-18951, which fixed right-clicking inside a selection, with the note that an automated test should follow. Use the DummyRMenu class left there to test right_menu_event(), and test the rmenu_check_*() methods that supply the menu entry states. test_configdialog.ConfigDialogTest was left with two empty stubs in GH-3592, named after the two ConfigDialog methods which the button tests only check to be called. Test them with a fake parent whose instance dictionary contains an autospecced EditorWindow. test_configdialog.ExtPageTest was added empty, with a commented-out "Nothing here yet TODO" skip, when ExtPage was factored out of ConfigDialog in GH-26618. Test load_extensions(), extension_selected(), set_extension_value() and save_all_changed_extensions(). test_grep.Default_commandTest was left empty in 2013 because GrepDialog.default_command() imports OutputWindow when called, and the import cannot be moved to the top of the module due to an import loop. Replace the imported class with a mock instead of moving the import. test_config.ChangesTest.test_save_default never called save_all(), so it tested nothing. Add the missing assertions, and add the test for the Save() calls that the following TODO comment asked for. test_config.IdleConfTest.test_get_current_keyset only tested the non-darwin branch, because the default key sets no longer contain Alt keys. Add an extension binding with an Alt key, so that its replacement with Option can be tested. Remove the stale commented-out test in test_get_extension_keys, which used the ZoomHeight extension. --------- Co-authored-by: Claude Opus 5 (1M context) noreply@anthropic.com Co-authored-by: Hugo van Kemenade 1324225+hugovk@users.noreply.github.com Co-authored-by: TerryJReedy tjreedy@udel.edu Co-authored-by: Serhiy Storchaka storchaka@gmail.com (cherry picked from commit f8f8c30)
…) (#157204) Restore the placeholder import in idlelib/idle_test/template.py It was removed as an unused import in GH-151478, but template.py is a skeleton for creating new IDLE test files, and idle_test/README.txt instructs the user to replace 'zzdummy' with the name of the module under test. Add a Ruff per-file ignore to keep it. test_editor.RMenuTest was added in GH-18951, which fixed right-clicking inside a selection, with the note that an automated test should follow. Use the DummyRMenu class left there to test right_menu_event(), and test the rmenu_check_*() methods that supply the menu entry states. test_configdialog.ConfigDialogTest was left with two empty stubs in GH-3592, named after the two ConfigDialog methods which the button tests only check to be called. Test them with a fake parent whose instance dictionary contains an autospecced EditorWindow. test_configdialog.ExtPageTest was added empty, with a commented-out "Nothing here yet TODO" skip, when ExtPage was factored out of ConfigDialog in GH-26618. Test load_extensions(), extension_selected(), set_extension_value() and save_all_changed_extensions(). test_grep.Default_commandTest was left empty in 2013 because GrepDialog.default_command() imports OutputWindow when called, and the import cannot be moved to the top of the module due to an import loop. Replace the imported class with a mock instead of moving the import. test_config.ChangesTest.test_save_default never called save_all(), so it tested nothing. Add the missing assertions, and add the test for the Save() calls that the following TODO comment asked for. test_config.IdleConfTest.test_get_current_keyset only tested the non-darwin branch, because the default key sets no longer contain Alt keys. Add an extension binding with an Alt key, so that its replacement with Option can be tested. Remove the stale commented-out test in test_get_extension_keys, which used the ZoomHeight extension. --------- (cherry picked from commit f8f8c30)
…56260) Restore the placeholder import in idlelib/idle_test/template.py It was removed as an unused import in pythonGH-151478, but template.py is a skeleton for creating new IDLE test files, and idle_test/README.txt instructs the user to replace 'zzdummy' with the name of the module under test. Add a Ruff per-file ignore to keep it. test_editor.RMenuTest was added in pythonGH-18951, which fixed right-clicking inside a selection, with the note that an automated test should follow. Use the DummyRMenu class left there to test right_menu_event(), and test the rmenu_check_*() methods that supply the menu entry states. test_configdialog.ConfigDialogTest was left with two empty stubs in pythonGH-3592, named after the two ConfigDialog methods which the button tests only check to be called. Test them with a fake parent whose instance dictionary contains an autospecced EditorWindow. test_configdialog.ExtPageTest was added empty, with a commented-out "Nothing here yet TODO" skip, when ExtPage was factored out of ConfigDialog in pythonGH-26618. Test load_extensions(), extension_selected(), set_extension_value() and save_all_changed_extensions(). test_grep.Default_commandTest was left empty in 2013 because GrepDialog.default_command() imports OutputWindow when called, and the import cannot be moved to the top of the module due to an import loop. Replace the imported class with a mock instead of moving the import. test_config.ChangesTest.test_save_default never called save_all(), so it tested nothing. Add the missing assertions, and add the test for the Save() calls that the following TODO comment asked for. test_config.IdleConfTest.test_get_current_keyset only tested the non-darwin branch, because the default key sets no longer contain Alt keys. Add an extension binding with an Alt key, so that its replacement with Option can be tested. Remove the stale commented-out test in test_get_extension_keys, which used the ZoomHeight extension. --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Co-authored-by: TerryJReedy <tjreedy@udel.edu>
Expose dialog buttons to test code. Complete coverage for highlight and keys tabs
and for buttons and their functions.
https://bugs.python.org/issue30780