diff --git a/crates/ruff_linter/resources/test/fixtures/syntax_errors/late_future_import.py b/crates/ruff_linter/resources/test/fixtures/syntax_errors/late_future_import.py new file mode 100644 index 0000000000000..1dd40c823c60d --- /dev/null +++ b/crates/ruff_linter/resources/test/fixtures/syntax_errors/late_future_import.py @@ -0,0 +1,2 @@ +import random +from __future__ import annotations # Error; not at top of file diff --git a/crates/ruff_linter/src/linter.rs b/crates/ruff_linter/src/linter.rs index b266a82e54198..103b8f2f4cbb6 100644 --- a/crates/ruff_linter/src/linter.rs +++ b/crates/ruff_linter/src/linter.rs @@ -1061,6 +1061,7 @@ mod tests { Ok(()) } + #[test_case(Rule::LateFutureImport, Path::new("late_future_import.py"))] #[test_case(Rule::YieldOutsideFunction, Path::new("yield_scope.py"))] #[test_case(Rule::ReturnOutsideFunction, Path::new("return_outside_function.py"))] fn test_syntax_errors(rule: Rule, path: &Path) -> Result<()> { diff --git a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__late_future_import.py.snap b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__late_future_import.py.snap new file mode 100644 index 0000000000000..6140d4cf408ca --- /dev/null +++ b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__late_future_import.py.snap @@ -0,0 +1,9 @@ +--- +source: crates/ruff_linter/src/linter.rs +--- +resources/test/fixtures/syntax_errors/late_future_import.py:2:1: F404 `from __future__` imports must occur at the beginning of the file + | +1 | import random +2 | from __future__ import annotations # Error; not at top of file + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F404 + |