gh-155648: Write the empty and placeholder IDLE tests - #156260
Open
serhiy-storchaka wants to merge 4 commits into
Open
gh-155648: Write the empty and placeholder IDLE tests#156260serhiy-storchaka wants to merge 4 commits into
serhiy-storchaka wants to merge 4 commits into
Conversation
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. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…m out 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. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* 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>
serhiy-storchaka
requested review from
AA-Turner,
AlexWaygood,
JacobCoffee,
hugovk and
terryjreedy
as code owners
August 23, 2026 07:39
Text.bbox() returns None while the window is not mapped, as on Windows, where the root window of the test is withdrawn. Ask the widget for the index of the clicked character instead of computing the coordinates of a known index. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Several tests in
idlelib/idle_testare empty stubs or placeholders that cannot fail. Write them instead of removing them.test_editor.RMenuTestwas added in bpo-39885: IDLE: Leave selection when right click within #18951, which fixed right-clicking inside a selection, with the note that an automated test should follow. ItsDummyRMenuclass is used now to testright_menu_event(), together with thermenu_check_*()methods that supply the menu entry states.test_configdialog.ConfigDialogTestwas left with two empty stubs in bpo-30780: Add IDLE configdialog tests #3592, named after the twoConfigDialogmethods which the button tests only check to be called. They are tested with a fake parent whose instance dictionary contains an autospeccedEditorWindow.test_configdialog.ExtPageTestwas added empty, with a commented out "Nothing here yet TODO" skip, whenExtPagewas factored out in bpo-40468: Factor out class ExtPage in idlelib.configdialog #26618. The extensions page is the only configuration page without tests.test_grep.Default_commandTestwas left empty in 2013 becauseGrepDialog.default_command()importsOutputWindowwhen called. The import cannot be moved to the top of the module due to an import loop, but the imported class can be replaced with a mock.test_config.ChangesTest.test_save_defaultnever calledsave_all(), so it tested nothing. The test for theSave()calls asked for by the following TODO comment is added too.test_config.IdleConfTest.test_get_current_keysetonly tested the non-darwin branch, because the default key sets no longer contain Alt keys. An extension binding with an Alt key is added, so that its replacement with Option can be tested.template.pylost thefrom idlelib import zzdummyline in gh-151428: Remove unused imports from stdlib #151478 as an unused import, butidle_test/README.txtinstructs the user to replacezzdummywith the name of the module under test. A Ruff per-file ignore keeps it now.Each new test was checked to fail when the corresponding code is broken.
The first two items are an alternative to #156257, which comments these stubs out instead. That PR also fixes the vacuous assertion in
test_autocompleteand the placeholder assertion intemplate.py, which are not touched here.