uv/21434.patch
2026-09-03 19:01:28 +01:00

78 lines
3.1 KiB
Diff

From 9ded1ff23cb5d9c78c615ab0bb026942fac5d128 Mon Sep 17 00:00:00 2001
From: Charlie Marsh <charlie.r.marsh@gmail.com>
Date: Thu, 3 Sep 2026 07:24:08 -0400
Subject: [PATCH] Remove Python invocation from dirhash tests
---
crates/uv-extract/src/dirhash.rs | 27 +++--------------------
crates/uv-extract/test_vectors/dirhash.py | 5 +----
2 files changed, 4 insertions(+), 28 deletions(-)
diff --git a/crates/uv-extract/src/dirhash.rs b/crates/uv-extract/src/dirhash.rs
index 76a0300ca51..943e13bd1fb 100644
--- a/crates/uv-extract/src/dirhash.rs
+++ b/crates/uv-extract/src/dirhash.rs
@@ -519,7 +519,6 @@ mod tests {
use super::*;
use std::cmp;
- use std::process::Command;
use std::task::{Context, Poll};
#[test]
@@ -806,10 +805,9 @@ mod tests {
// `../test_vectors/test_vectors.json` contains a series of input trees and hashes, which is
// generated by `cargo dev generate-dirhash-test-vectors`. This tests both `dirhash_path` and
- // `DirhashTree` from this file, and also the `dirhash.py` Python implementation, so we're
- // testing that three different implementations agree.
- #[tokio::test]
- async fn test_vectors_json() -> anyhow::Result<()> {
+ // `DirhashTree` against the committed hashes.
+ #[test]
+ fn test_vectors_json() -> anyhow::Result<()> {
let test_vectors: Vec<JsonTestVector> =
serde_json::from_str(include_str!("../test_vectors/test_vectors.json"))?;
for JsonTestVector { input, dirhash } in &test_vectors {
@@ -828,25 +826,6 @@ mod tests {
dirhash.as_str(),
dirhash_path(tempdir.path())?.to_hex().as_str(),
);
-
- // Check the Python implementation, which also reads the FS.
- let python_script = Path::new(env!("CARGO_MANIFEST_DIR"))
- .join("test_vectors")
- .join("dirhash.py");
- let output = Command::new("uv")
- .args(["run", "--locked", "--script"])
- .arg(python_script)
- .arg(tempdir.path())
- .output()?;
- assert!(output.status.success());
- // This script's output is formatted like `md5sum` or `b3sum`, with each line including
- // a hash, a couple spaces, and a path. With only one path arg, there will be only one
- // line.
- let python_dirhash = std::str::from_utf8(&output.stdout)?
- .split_whitespace()
- .next()
- .unwrap();
- assert_eq!(dirhash.as_str(), python_dirhash);
}
Ok(())
}
diff --git a/crates/uv-extract/test_vectors/dirhash.py b/crates/uv-extract/test_vectors/dirhash.py
index fde1339670e..73ef480ca8a 100755
--- a/crates/uv-extract/test_vectors/dirhash.py
+++ b/crates/uv-extract/test_vectors/dirhash.py
@@ -10,10 +10,7 @@
# exclude-newer = "P7D"
# ///
-"""Independent Python implementation of ``uv_extract::dirhash``.
-
-The Rust ``test_vectors_json`` test case exercises this implementation in CI.
-"""
+"""Independent Python implementation of ``uv_extract::dirhash``."""
import sys
from pathlib import Path