diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d85d5a79d9..da672bea87 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -54,21 +54,19 @@ jobs: - name: "Install Rust toolchain" run: rustup show - uses: Swatinem/rust-cache@v2 - - run: cargo install cargo-insta + # cargo insta 1.30.0 fails for some reason (https://github.com/mitsuhiko/insta/issues/392) + - run: cargo install cargo-insta@=1.29.0 - run: pip install black[d]==23.1.0 - name: "Run tests (Ubuntu)" if: ${{ matrix.os == 'ubuntu-latest' }} - run: | - cargo insta test --all --all-features --delete-unreferenced-snapshots - git diff --exit-code + run: cargo insta test --all --all-features --unreferenced reject - name: "Run tests (Windows)" if: ${{ matrix.os == 'windows-latest' }} shell: bash - run: | - cargo insta test --all --all-features - git diff --exit-code + # We can't reject unreferenced snapshots on windows because flake8_executable can't run on windows + run: cargo insta test --all --all-features - run: cargo test --package ruff_cli --test black_compatibility_test -- --ignored - # Skipped as it's currently broken. The resource were moved from the + # TODO: Skipped as it's currently broken. The resource were moved from the # ruff_cli to ruff crate, but this test was not updated. if: false # Check for broken links in the documentation. diff --git a/crates/ruff_python_resolver/src/lib.rs b/crates/ruff_python_resolver/src/lib.rs index c4ef690a39..52be653d6c 100644 --- a/crates/ruff_python_resolver/src/lib.rs +++ b/crates/ruff_python_resolver/src/lib.rs @@ -15,7 +15,6 @@ mod search; #[cfg(test)] mod tests { - use insta::assert_debug_snapshot; use std::fs::{create_dir_all, File}; use std::io::{self, Write}; use std::path::{Path, PathBuf}; @@ -129,6 +128,16 @@ mod tests { env_logger::builder().is_test(true).try_init().ok(); } + macro_rules! assert_debug_snapshot_normalize_paths { + ($value: ident) => {{ + // The debug representation for the backslash are two backslashes (escaping) + let $value = std::format!("{:#?}", $value).replace("\\\\", "/"); + // `insta::assert_snapshot` uses the debug representation of the string, which would + // be a single line containing `\n` + insta::assert_display_snapshot!($value); + }}; + } + #[test] fn partial_stub_file_exists() -> io::Result<()> { setup(); @@ -810,7 +819,7 @@ mod tests { }, ); - assert_debug_snapshot!(result); + assert_debug_snapshot_normalize_paths!(result); } #[test] @@ -831,7 +840,7 @@ mod tests { }, ); - assert_debug_snapshot!(result); + assert_debug_snapshot_normalize_paths!(result); } #[test] @@ -852,7 +861,7 @@ mod tests { }, ); - assert_debug_snapshot!(result); + assert_debug_snapshot_normalize_paths!(result); } #[test] @@ -873,7 +882,7 @@ mod tests { }, ); - assert_debug_snapshot!(result); + assert_debug_snapshot_normalize_paths!(result); } #[test] @@ -894,7 +903,7 @@ mod tests { }, ); - assert_debug_snapshot!(result); + assert_debug_snapshot_normalize_paths!(result); } #[test] @@ -915,7 +924,7 @@ mod tests { }, ); - assert_debug_snapshot!(result); + assert_debug_snapshot_normalize_paths!(result); } #[test] @@ -936,6 +945,6 @@ mod tests { }, ); - assert_debug_snapshot!(result); + assert_debug_snapshot_normalize_paths!(result); } } diff --git a/ruff.schema.json b/ruff.schema.json index 0948038c0a..f283f253b8 100644 --- a/ruff.schema.json +++ b/ruff.schema.json @@ -2400,6 +2400,7 @@ "RUF011", "RUF012", "RUF013", + "RUF014", "RUF1", "RUF10", "RUF100",