-
Notifications
You must be signed in to change notification settings - Fork 1.5k
[flake8-pytest-style
] Avoid false positive for legacy form of pytest.raises
(PT011
)
#17231
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Thanks. Could you add a test example to https://github.com/astral-sh/ruff/blob/2b6d66b793adc9e0cc50817b59187b41f39f7691/crates/ruff_linter/resources/test/fixtures/flake8_pytest_style/PT011.py#L1-L0 with your example from the test plan |
I added an ok test example. The diff in snapshots is big because error tests are moved by 7 lines |
|
74e7cc8
to
9aaa7bb
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot reviewed 2 out of 6 changed files in this pull request and generated no comments.
Files not reviewed (4)
- crates/ruff_linter/src/rules/flake8_pytest_style/snapshots/ruff_linter__rules__flake8_pytest_style__tests__PT011_default.snap: Language not supported
- crates/ruff_linter/src/rules/flake8_pytest_style/snapshots/ruff_linter__rules__flake8_pytest_style__tests__PT011_extend_broad_exceptions.snap: Language not supported
- crates/ruff_linter/src/rules/flake8_pytest_style/snapshots/ruff_linter__rules__flake8_pytest_style__tests__PT011_glob_all.snap: Language not supported
- crates/ruff_linter/src/rules/flake8_pytest_style/snapshots/ruff_linter__rules__flake8_pytest_style__tests__PT011_glob_prefix.snap: Language not supported
Comments suppressed due to low confidence (1)
crates/ruff_linter/src/rules/flake8_pytest_style/rules/raises.rs:192
- [nitpick] Using the string literal "func" with a hard-coded index (1) may reduce readability. Consider defining a constant for this argument name and index to clarify its purpose when detecting the second overload.
if call.arguments.find_argument("func", 1).is_none() {
* origin/main: [red-knot] Default `python-platform` to current platform (#17183) [red-knot] Add new 'unreachable code' test case (#17306) [red-knot] mypy_primer: Run on `async-utils` (#17303) [red-knot] Add custom `__setattr__` support (#16748) [red-knot] Add `__init__` arguments check when doing `try_call` on a class literal (#16512) [`flake8-pie`] Avoid false positive for multiple assignment with `auto()` (`PIE796`) (#17274) [syntax-errors] Async comprehension in sync comprehension (#17177) [`airflow`] Expand module path check to individual symbols (`AIR302`) (#17278) [syntax-errors] Check annotations in annotated assignments (#17283) [syntax-errors] Extend annotation checks to `await` (#17282) [red-knot] Add support for `assert_never` (#17287) [`flake8-pytest-style`] Avoid false positive for legacy form of `pytest.raises` (`PT011`) (#17231) [red-knot] Do not show types for literal expressions on hover (#17290) [red-knot] Fix dead-code clippy warning (#17291) [red-knot] Reachability analysis (#17199) [red-knot] Don't use latency-sensitive for handlers (#17227)
This fix closes #17026
Summary
The check for the
PytestRaisesTooBroad
rule is now skipped if there is a second positional argument present, which meanspytest.raises
is used as a function.Test Plan
Tested on the example from the issue, which now passes the check.