Uh oh!
There was an error while loading. Please reload this page.
gh-60283: Check for redefined test names in CI - #109161
Conversation
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
AlexWaygood
left a comment
There was a problem hiding this comment.
LGTM, thanks! I guess we just have to wait for #109139 to be merged first?
Uh oh!
There was an error while loading. Please reload this page.
hugovk
commented
Sep 10, 2023
Should we have changes to That would mean adding to this grep pattern: cpython/.github/workflows/build.yml Line 66 in 2dd6a86 |
AlexWaygood
commented
Sep 10, 2023
That sounds like a good idea to me! |
Uh oh!
There was an error while loading. Please reload this page.
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
AlexWaygood
commented
Sep 12, 2023
🥳 |
miss-islington
commented
Sep 13, 2023
Thanks @hugovk for the PR 🌮🎉.. I'm working now to backport this PR to: 3.12. |
miss-islington
commented
Sep 13, 2023
Thanks @hugovk for the PR 🌮🎉.. I'm working now to backport this PR to: 3.11. |
miss-islington
commented
Sep 13, 2023
Sorry, @hugovk, I could not cleanly backport this to |
(cherry picked from commit 3cb9a8e) Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com> Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com> Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
GH-109365 is a backport of this pull request to the 3.12 branch. |
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com> Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com> (cherry picked from commit 3cb9a8e)
GH-109366 is a backport of this pull request to the 3.11 branch. |
hugovk
commented
Sep 13, 2023
For the backport PRs, I updated the exclude lists, as they were slightly different. And interestingly, we don't need to explicitly exclude the "Failed to lint/parse" files because they're printed to screen but don't fail the command. For example, these all have return code = 0 = success: ❯ pre-commit run --all-files ruffRun Ruff on Lib/test/....................................................Passed❯ pre-commit run --all-files ruff --verboseRun Ruff on Lib/test/....................................................Passed- hook id: ruff- duration: 0.02serror: Failed to parse Lib/test/tokenizedata/badsyntax_3131.py:2:1: Got unexpected token €error: Failed to parse Lib/test/test_fstring.py:671:28: f-string: expecting '}'warning: Failed to lint Lib/test/badsyntax_pep3120.py: stream did not contain valid UTF-8warning: Failed to lint Lib/test/encoded_modules/module_koi8_r.py: stream did not contain valid UTF-8warning: Failed to lint Lib/test/encoded_modules/module_iso_8859_1.py: stream did not contain valid UTF-8error: Failed to parse Lib/test/support/socket_helper.py:300:33: f-string: expecting '}'❯ ruff Lib/testwarning: Failed to lint Lib/test/encoded_modules/module_iso_8859_1.py: stream did not contain valid UTF-8warning: Failed to lint Lib/test/encoded_modules/module_koi8_r.py: stream did not contain valid UTF-8warning: Failed to lint Lib/test/badsyntax_pep3120.py: stream did not contain valid UTF-8error: Failed to parse Lib/test/support/socket_helper.py:300:33: f-string: expecting '}'error: Failed to parse Lib/test/test_fstring.py:671:28: f-string: expecting '}'error: Failed to parse Lib/test/tokenizedata/badsyntax_3131.py:2:1: Got unexpected token €Shall we explicitly exclude them (which makes the verbose output cleaner, and in which case I'll update the backports) or keep the default behaviour (in which case I'll update |
AlexWaygood
commented
Sep 13, 2023
I think it's better to explicitly exclude the unlintable files, as we do on |
erlend-aasland
commented
Sep 13, 2023
Thanks for doing this! |
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com> Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
…09365) * gh-60283: Check for redefined test names in CI (GH-109161) (cherry picked from commit 3cb9a8e) Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com> Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com> Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com> * Update exclude list for 3.12 * Explicitly exclude files which failed to lint/parse * Sort to avoid future merge conflicts --------- Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com> Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com> Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Fixespython/core-workflow#505.
Fixes#60283.
Add Ruff to the CI (via pre-commit) to check
Lib/test/for F811 "Redefinition of unused name". Ruff (47s) is faster than Flake8 (1m39s).This will help find copy/pasted
test_*method names, which results in one of them not being run.It also finds redefined variables, which ISTR people were in favour of.
There are some files which fail to lint or parse, and have been excluded. Some of these are intentional and should never be checked (e.g.
Lib/test/badsyntax_pep3120.py), some are due to new 3.12+ syntax not yet supported by the Ruff linter (e.g.Lib/test/test_type_aliases.py). I think we can be pragmatic and exclude any that add new syntax until such a time the linter supports the new version. (This may also help drive adoption of new syntax by the linter.)This currently fails due to duplicated tests in
test_monitoring, which will be fixed in #109139 and has been left as a demonstration in the meantime.All other
test_*duplicates have been fixed (see links in python/core-workflow#505).Some files have duplicate variables, I've excluded those and they can be fixed and re-included in the future.