diff --git a/resources/test/fixtures/flake8_no_pep420/test_pass_pyi/example.pyi b/resources/test/fixtures/flake8_no_pep420/test_pass_pyi/example.pyi new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/src/rules/flake8_no_pep420/mod.rs b/src/rules/flake8_no_pep420/mod.rs index 04d38aeff3e5b2..e19a2112228550 100644 --- a/src/rules/flake8_no_pep420/mod.rs +++ b/src/rules/flake8_no_pep420/mod.rs @@ -13,21 +13,20 @@ mod tests { use crate::registry::Rule; use crate::settings::Settings; - #[test_case(Path::new("test_pass_init"); "INP001_0")] - #[test_case(Path::new("test_fail_empty"); "INP001_1")] - #[test_case(Path::new("test_fail_nonempty"); "INP001_2")] - #[test_case(Path::new("test_fail_shebang"); "INP001_3")] - #[test_case(Path::new("test_ignored"); "INP001_4")] - #[test_case(Path::new("test_pass_namespace_package"); "INP001_5")] - fn test_flake8_no_pep420(path: &Path) -> Result<()> { + #[test_case(Path::new("test_pass_init"), Path::new("example.py"); "INP001_0")] + #[test_case(Path::new("test_fail_empty"), Path::new("example.py"); "INP001_1")] + #[test_case(Path::new("test_fail_nonempty"), Path::new("example.py"); "INP001_2")] + #[test_case(Path::new("test_fail_shebang"), Path::new("example.py"); "INP001_3")] + #[test_case(Path::new("test_ignored"), Path::new("example.py"); "INP001_4")] + #[test_case(Path::new("test_pass_namespace_package"), Path::new("example.py"); "INP001_5")] + #[test_case(Path::new("test_pass_pyi"), Path::new("example.pyi"); "INP001_6")] + fn test_flake8_no_pep420(path: &Path, filename: &Path) -> Result<()> { let snapshot = format!("{}", path.to_string_lossy()); - // Platform-independent paths - let p = PathBuf::from(format!( - "./resources/test/fixtures/flake8_no_pep420/{}/example.py", - path.display() - )); let diagnostics = test_path( - p.as_path(), + Path::new("./resources/test/fixtures/flake8_no_pep420") + .join(path) + .join(filename) + .as_path(), &Settings { namespace_packages: vec![PathBuf::from( "./resources/test/fixtures/flake8_no_pep420/test_pass_namespace_package", diff --git a/src/rules/flake8_no_pep420/rules.rs b/src/rules/flake8_no_pep420/rules.rs index 07d1fe9ba53f8d..abd95def73112d 100644 --- a/src/rules/flake8_no_pep420/rules.rs +++ b/src/rules/flake8_no_pep420/rules.rs @@ -20,7 +20,7 @@ impl Violation for ImplicitNamespacePackage { /// INP001 pub fn implicit_namespace_package(path: &Path, package: Option<&Path>) -> Option { - if package.is_none() { + if package.is_none() && path.extension().map_or(false, |ext| ext == "py") { Some(Diagnostic::new( ImplicitNamespacePackage(fs::relativize_path(path)), Range::default(), diff --git a/src/rules/flake8_no_pep420/snapshots/ruff__rules__flake8_no_pep420__tests__test_pass_pyi.snap b/src/rules/flake8_no_pep420/snapshots/ruff__rules__flake8_no_pep420__tests__test_pass_pyi.snap new file mode 100644 index 00000000000000..622ebcff04079e --- /dev/null +++ b/src/rules/flake8_no_pep420/snapshots/ruff__rules__flake8_no_pep420__tests__test_pass_pyi.snap @@ -0,0 +1,6 @@ +--- +source: src/rules/flake8_no_pep420/mod.rs +expression: diagnostics +--- +[] +