diff --git a/crates/ruff_linter/src/checkers/ast/analyze/expression.rs b/crates/ruff_linter/src/checkers/ast/analyze/expression.rs index c542c9510a..7beedc4438 100644 --- a/crates/ruff_linter/src/checkers/ast/analyze/expression.rs +++ b/crates/ruff_linter/src/checkers/ast/analyze/expression.rs @@ -8,8 +8,7 @@ use ruff_text_size::Ranged; use crate::checkers::ast::Checker; use crate::preview::{ - is_assert_raises_exception_call_enabled, is_optional_as_none_in_union_enabled, - is_unnecessary_default_type_args_stubs_enabled, + is_optional_as_none_in_union_enabled, is_unnecessary_default_type_args_stubs_enabled, }; use crate::registry::Rule; use crate::rules::{ @@ -1296,9 +1295,7 @@ pub(crate) fn expression(expr: &Expr, checker: &Checker) { if checker.is_rule_enabled(Rule::NonOctalPermissions) { ruff::rules::non_octal_permissions(checker, call); } - if checker.is_rule_enabled(Rule::AssertRaisesException) - && is_assert_raises_exception_call_enabled(checker.settings()) - { + if checker.is_rule_enabled(Rule::AssertRaisesException) { flake8_bugbear::rules::assert_raises_exception_call(checker, call); } } diff --git a/crates/ruff_linter/src/preview.rs b/crates/ruff_linter/src/preview.rs index 5167dc7066..38cae4ae98 100644 --- a/crates/ruff_linter/src/preview.rs +++ b/crates/ruff_linter/src/preview.rs @@ -212,11 +212,6 @@ pub(crate) const fn is_safe_super_call_with_parameters_fix_enabled( settings.preview.is_enabled() } -// https://github.com/astral-sh/ruff/pull/19063 -pub(crate) const fn is_assert_raises_exception_call_enabled(settings: &LinterSettings) -> bool { - settings.preview.is_enabled() -} - // https://github.com/astral-sh/ruff/pull/19100 pub(crate) const fn is_add_future_annotations_imports_enabled(settings: &LinterSettings) -> bool { settings.preview.is_enabled() diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/mod.rs b/crates/ruff_linter/src/rules/flake8_bugbear/mod.rs index 53f3ce51e3..2a8bd80a0f 100644 --- a/crates/ruff_linter/src/rules/flake8_bugbear/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_bugbear/mod.rs @@ -16,8 +16,6 @@ mod tests { use crate::settings::LinterSettings; use crate::test::test_path; - use crate::settings::types::PreviewMode; - use ruff_python_ast::PythonVersion; #[test_case(Rule::AbstractBaseClassWithoutAbstractMethod, Path::new("B024.py"))] @@ -177,23 +175,4 @@ mod tests { assert_diagnostics!(snapshot, diagnostics); Ok(()) } - - #[test_case(Rule::AssertRaisesException, Path::new("B017_0.py"))] - #[test_case(Rule::AssertRaisesException, Path::new("B017_1.py"))] - fn rules_preview(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!( - "preview__{}_{}", - rule_code.noqa_code(), - path.to_string_lossy() - ); - let diagnostics = test_path( - Path::new("flake8_bugbear").join(path).as_path(), - &LinterSettings { - preview: PreviewMode::Enabled, - ..LinterSettings::for_rule(rule_code) - }, - )?; - assert_diagnostics!(snapshot, diagnostics); - Ok(()) - } } diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B017_B017_1.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B017_B017_1.py.snap index 967e60a4f9..5b0767019c 100644 --- a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B017_B017_1.py.snap +++ b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B017_B017_1.py.snap @@ -1,4 +1,41 @@ --- source: crates/ruff_linter/src/rules/flake8_bugbear/mod.rs --- +B017 Do not assert blind exception: `Exception` + --> B017_1.py:20:9 + | +18 | class Foobar(unittest.TestCase): +19 | def call_form_raises(self) -> None: +20 | self.assertRaises(Exception, something_else) + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +21 | self.assertRaises(BaseException, something_else) + | +B017 Do not assert blind exception: `BaseException` + --> B017_1.py:21:9 + | +19 | def call_form_raises(self) -> None: +20 | self.assertRaises(Exception, something_else) +21 | self.assertRaises(BaseException, something_else) + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + +B017 Do not assert blind exception: `Exception` + --> B017_1.py:25:5 + | +24 | def test_pytest_call_form() -> None: +25 | pytest.raises(Exception, something_else) + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +26 | pytest.raises(BaseException, something_else) + | + +B017 Do not assert blind exception: `BaseException` + --> B017_1.py:26:5 + | +24 | def test_pytest_call_form() -> None: +25 | pytest.raises(Exception, something_else) +26 | pytest.raises(BaseException, something_else) + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +27 | +28 | pytest.raises(Exception, something_else, match="hello") + | diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B017_B017_0.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B017_B017_0.py.snap deleted file mode 100644 index 4c8bb4e6d6..0000000000 --- a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B017_B017_0.py.snap +++ /dev/null @@ -1,79 +0,0 @@ ---- -source: crates/ruff_linter/src/rules/flake8_bugbear/mod.rs ---- -B017 Do not assert blind exception: `Exception` - --> B017_0.py:23:14 - | -21 | class Foobar(unittest.TestCase): -22 | def evil_raises(self) -> None: -23 | with self.assertRaises(Exception): - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -24 | raise Exception("Evil I say!") - | - -B017 Do not assert blind exception: `BaseException` - --> B017_0.py:27:14 - | -26 | def also_evil_raises(self) -> None: -27 | with self.assertRaises(BaseException): - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -28 | raise Exception("Evil I say!") - | - -B017 Do not assert blind exception: `Exception` - --> B017_0.py:45:10 - | -44 | def test_pytest_raises(): -45 | with pytest.raises(Exception): - | ^^^^^^^^^^^^^^^^^^^^^^^^ -46 | raise ValueError("Hello") - | - -B017 Do not assert blind exception: `Exception` - --> B017_0.py:48:10 - | -46 | raise ValueError("Hello") -47 | -48 | with pytest.raises(Exception), pytest.raises(ValueError): - | ^^^^^^^^^^^^^^^^^^^^^^^^ -49 | raise ValueError("Hello") - | - -B017 Do not assert blind exception: `Exception` - --> B017_0.py:57:36 - | -55 | raise ValueError("This is also fine") -56 | -57 | with contextlib.nullcontext(), pytest.raises(Exception): - | ^^^^^^^^^^^^^^^^^^^^^^^^ -58 | raise ValueError("Multiple context managers") - | - -B017 Do not assert blind exception: `Exception` - --> B017_0.py:62:10 - | -61 | def test_pytest_raises_keyword(): -62 | with pytest.raises(expected_exception=Exception): - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -63 | raise ValueError("Should be flagged") - | - -B017 Do not assert blind exception: `Exception` - --> B017_0.py:68:18 - | -66 | class TestKwargs(unittest.TestCase): -67 | def test_method(self): -68 | with self.assertRaises(exception=Exception): - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -69 | raise ValueError("Should be flagged") - | - -B017 Do not assert blind exception: `BaseException` - --> B017_0.py:71:18 - | -69 | raise ValueError("Should be flagged") -70 | -71 | with self.assertRaises(exception=BaseException): - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -72 | raise ValueError("Should be flagged") - | diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B017_B017_1.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B017_B017_1.py.snap deleted file mode 100644 index 5b0767019c..0000000000 --- a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B017_B017_1.py.snap +++ /dev/null @@ -1,41 +0,0 @@ ---- -source: crates/ruff_linter/src/rules/flake8_bugbear/mod.rs ---- -B017 Do not assert blind exception: `Exception` - --> B017_1.py:20:9 - | -18 | class Foobar(unittest.TestCase): -19 | def call_form_raises(self) -> None: -20 | self.assertRaises(Exception, something_else) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -21 | self.assertRaises(BaseException, something_else) - | - -B017 Do not assert blind exception: `BaseException` - --> B017_1.py:21:9 - | -19 | def call_form_raises(self) -> None: -20 | self.assertRaises(Exception, something_else) -21 | self.assertRaises(BaseException, something_else) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - -B017 Do not assert blind exception: `Exception` - --> B017_1.py:25:5 - | -24 | def test_pytest_call_form() -> None: -25 | pytest.raises(Exception, something_else) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -26 | pytest.raises(BaseException, something_else) - | - -B017 Do not assert blind exception: `BaseException` - --> B017_1.py:26:5 - | -24 | def test_pytest_call_form() -> None: -25 | pytest.raises(Exception, something_else) -26 | pytest.raises(BaseException, something_else) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -27 | -28 | pytest.raises(Exception, something_else, match="hello") - |