path-uri: clarify host-native path conversion (#29501)

## Why

Downstream refactors are producing confusing code with this
functionality having a very generic name. Encoding the specific
conversion approach in the method name makes it clearer.

## What

Rename `PathUri::from_path` to `PathUri::from_host_native_path` and
update its Rust call sites.
This commit is contained in:
Adam Perry @ OpenAI
2026-06-22 17:02:33 -07:00
committed by GitHub
Unverified
parent c53b1dae09
commit 11fab432be
31 changed files with 250 additions and 198 deletions
+15 -13
View File
@@ -500,7 +500,7 @@ mod tests {
assert_matches!(
maybe_parse_apply_patch_verified(
&args,
&PathUri::from_path(dir.path()).expect("absolute test path"),
&PathUri::from_host_native_path(dir.path()).expect("absolute test path"),
LOCAL_FS.as_ref(),
/*sandbox*/ None,
)
@@ -517,7 +517,7 @@ mod tests {
assert_matches!(
maybe_parse_apply_patch_verified(
&args,
&PathUri::from_path(dir.path()).expect("absolute test path"),
&PathUri::from_host_native_path(dir.path()).expect("absolute test path"),
LOCAL_FS.as_ref(),
/*sandbox*/ None,
)
@@ -752,7 +752,7 @@ PATCH"#,
_ => panic!("Expected a single UpdateFile hunk"),
};
let path_uri = PathUri::from_path(&path).expect("absolute test path");
let path_uri = PathUri::from_host_native_path(&path).expect("absolute test path");
let diff =
unified_diff_from_chunks(&path_uri, chunks, LOCAL_FS.as_ref(), /*sandbox*/ None)
.await
@@ -792,7 +792,7 @@ PATCH"#,
_ => panic!("Expected a single UpdateFile hunk"),
};
let path_uri = PathUri::from_path(&path).expect("absolute test path");
let path_uri = PathUri::from_host_native_path(&path).expect("absolute test path");
let diff =
unified_diff_from_chunks(&path_uri, chunks, LOCAL_FS.as_ref(), /*sandbox*/ None)
.await
@@ -832,7 +832,7 @@ PATCH"#,
let result = maybe_parse_apply_patch_verified(
&argv,
&PathUri::from_path(session_dir.path()).expect("absolute test path"),
&PathUri::from_host_native_path(session_dir.path()).expect("absolute test path"),
LOCAL_FS.as_ref(),
/*sandbox*/ None,
)
@@ -844,7 +844,7 @@ PATCH"#,
result,
MaybeApplyPatchVerified::Body(ApplyPatchAction {
changes: HashMap::from([(
PathUri::from_path(session_dir.path().join(relative_path))
PathUri::from_host_native_path(session_dir.path().join(relative_path))
.expect("absolute test path"),
ApplyPatchFileChange::Update {
unified_diff: r#"@@ -1 +1 @@
@@ -857,7 +857,8 @@ PATCH"#,
},
)]),
patch: argv[1].clone(),
cwd: PathUri::from_path(session_dir.path()).expect("absolute test path"),
cwd: PathUri::from_host_native_path(session_dir.path())
.expect("absolute test path"),
})
);
}
@@ -887,7 +888,7 @@ PATCH"#,
let result = maybe_parse_apply_patch_verified(
&argv,
&PathUri::from_path(session_dir.path()).expect("absolute test path"),
&PathUri::from_host_native_path(session_dir.path()).expect("absolute test path"),
LOCAL_FS.as_ref(),
/*sandbox*/ None,
)
@@ -902,8 +903,8 @@ PATCH"#,
worktree_dir.as_path()
);
let source_path =
PathUri::from_path(worktree_dir.join(source_name)).expect("absolute test path");
let source_path = PathUri::from_host_native_path(worktree_dir.join(source_name))
.expect("absolute test path");
let change = action
.changes()
.get(&source_path)
@@ -912,7 +913,8 @@ PATCH"#,
match change {
ApplyPatchFileChange::Update { move_path, .. } => {
let expected_move_path =
PathUri::from_path(worktree_dir.join(dest_name)).expect("absolute test path");
PathUri::from_host_native_path(worktree_dir.join(dest_name))
.expect("absolute test path");
assert_eq!(move_path.as_ref(), Some(&expected_move_path));
}
other => panic!("expected update change, got {other:?}"),
@@ -923,7 +925,7 @@ PATCH"#,
async fn test_unreadable_destinations_still_verify() {
let session_dir = tempdir().unwrap();
fs::write(session_dir.path().join("binary.dat"), [0xff, 0xfe, 0xfd]).unwrap();
let cwd = PathUri::from_path(session_dir.path()).expect("absolute test path");
let cwd = PathUri::from_host_native_path(session_dir.path()).expect("absolute test path");
let add_argv = vec![
"apply_patch".to_string(),
"*** Begin Patch\n*** Add File: binary.dat\n+text\n*** End Patch".to_string(),
@@ -966,7 +968,7 @@ PATCH"#,
let result = maybe_parse_apply_patch_verified(
&argv,
&PathUri::from_path(session_dir.path()).expect("absolute test path"),
&PathUri::from_host_native_path(session_dir.path()).expect("absolute test path"),
LOCAL_FS.as_ref(),
/*sandbox*/ None,
)
+19 -19
View File
@@ -913,7 +913,7 @@ mod tests {
let mut stderr = Vec::new();
apply_patch(
&patch,
&PathUri::from_path(dir.path()).expect("absolute test path"),
&PathUri::from_host_native_path(dir.path()).expect("absolute test path"),
&mut stdout,
&mut stderr,
LOCAL_FS.as_ref(),
@@ -937,7 +937,7 @@ mod tests {
#[tokio::test]
async fn test_apply_patch_hunks_accept_relative_and_absolute_paths() {
let dir = tempdir().unwrap();
let cwd = PathUri::from_path(dir.path()).expect("absolute test path");
let cwd = PathUri::from_host_native_path(dir.path()).expect("absolute test path");
let relative_add = dir.path().join("relative-add.txt");
let absolute_add = dir.path().join("absolute-add.txt");
let relative_delete = dir.path().join("relative-delete.txt");
@@ -1016,7 +1016,7 @@ mod tests {
let mut stderr = Vec::new();
apply_patch(
&patch,
&PathUri::from_path(dir.path()).expect("absolute test path"),
&PathUri::from_host_native_path(dir.path()).expect("absolute test path"),
&mut stdout,
&mut stderr,
LOCAL_FS.as_ref(),
@@ -1052,7 +1052,7 @@ mod tests {
let mut stderr = Vec::new();
apply_patch(
&patch,
&PathUri::from_path(dir.path()).expect("absolute test path"),
&PathUri::from_host_native_path(dir.path()).expect("absolute test path"),
&mut stdout,
&mut stderr,
LOCAL_FS.as_ref(),
@@ -1092,7 +1092,7 @@ mod tests {
let mut stderr = Vec::new();
apply_patch(
&patch,
&PathUri::from_path(dir.path()).expect("absolute test path"),
&PathUri::from_host_native_path(dir.path()).expect("absolute test path"),
&mut stdout,
&mut stderr,
LOCAL_FS.as_ref(),
@@ -1136,7 +1136,7 @@ mod tests {
let mut stderr = Vec::new();
let failure = apply_patch(
&patch,
&PathUri::from_path(dir.path()).expect("absolute test path"),
&PathUri::from_host_native_path(dir.path()).expect("absolute test path"),
&mut stdout,
&mut stderr,
LOCAL_FS.as_ref(),
@@ -1196,7 +1196,7 @@ mod tests {
let mut stderr = Vec::new();
apply_patch(
&patch,
&PathUri::from_path(dir.path()).expect("absolute test path"),
&PathUri::from_host_native_path(dir.path()).expect("absolute test path"),
&mut stdout,
&mut stderr,
LOCAL_FS.as_ref(),
@@ -1254,7 +1254,7 @@ mod tests {
let mut stderr = Vec::new();
apply_patch(
&patch,
&PathUri::from_path(dir.path()).expect("absolute test path"),
&PathUri::from_host_native_path(dir.path()).expect("absolute test path"),
&mut stdout,
&mut stderr,
LOCAL_FS.as_ref(),
@@ -1298,7 +1298,7 @@ mod tests {
let mut stderr = Vec::new();
apply_patch(
&patch,
&PathUri::from_path(dir.path()).expect("absolute test path"),
&PathUri::from_host_native_path(dir.path()).expect("absolute test path"),
&mut stdout,
&mut stderr,
LOCAL_FS.as_ref(),
@@ -1341,7 +1341,7 @@ mod tests {
let mut stderr = Vec::new();
apply_patch(
&patch,
&PathUri::from_path(dir.path()).expect("absolute test path"),
&PathUri::from_host_native_path(dir.path()).expect("absolute test path"),
&mut stdout,
&mut stderr,
LOCAL_FS.as_ref(),
@@ -1391,7 +1391,7 @@ mod tests {
[Hunk::UpdateFile { chunks, .. }] => chunks,
_ => panic!("Expected a single UpdateFile hunk"),
};
let path_uri = PathUri::from_path(&path).expect("absolute test path");
let path_uri = PathUri::from_host_native_path(&path).expect("absolute test path");
let diff = unified_diff_from_chunks(
&path_uri,
update_file_chunks,
@@ -1439,7 +1439,7 @@ mod tests {
_ => panic!("Expected a single UpdateFile hunk"),
};
let resolved_path = PathUri::from_path(&path).expect("absolute test path");
let resolved_path = PathUri::from_host_native_path(&path).expect("absolute test path");
let diff = unified_diff_from_chunks(
&resolved_path,
chunks,
@@ -1485,7 +1485,7 @@ mod tests {
_ => panic!("Expected a single UpdateFile hunk"),
};
let resolved_path = PathUri::from_path(&path).expect("absolute test path");
let resolved_path = PathUri::from_host_native_path(&path).expect("absolute test path");
let diff = unified_diff_from_chunks(
&resolved_path,
chunks,
@@ -1529,7 +1529,7 @@ mod tests {
_ => panic!("Expected a single UpdateFile hunk"),
};
let path_uri = PathUri::from_path(&path).expect("absolute test path");
let path_uri = PathUri::from_host_native_path(&path).expect("absolute test path");
let diff =
unified_diff_from_chunks(&path_uri, chunks, LOCAL_FS.as_ref(), /*sandbox*/ None)
.await
@@ -1580,7 +1580,7 @@ mod tests {
_ => panic!("Expected a single UpdateFile hunk"),
};
let path_uri = PathUri::from_path(&path).expect("absolute test path");
let path_uri = PathUri::from_host_native_path(&path).expect("absolute test path");
let diff =
unified_diff_from_chunks(&path_uri, chunks, LOCAL_FS.as_ref(), /*sandbox*/ None)
.await
@@ -1610,7 +1610,7 @@ mod tests {
let mut stderr = Vec::new();
apply_patch(
&patch,
&PathUri::from_path(dir.path()).expect("absolute test path"),
&PathUri::from_host_native_path(dir.path()).expect("absolute test path"),
&mut stdout,
&mut stderr,
LOCAL_FS.as_ref(),
@@ -1648,7 +1648,7 @@ g
let mut stderr = Vec::new();
let result = apply_patch(
&patch,
&PathUri::from_path(dir.path()).expect("absolute test path"),
&PathUri::from_host_native_path(dir.path()).expect("absolute test path"),
&mut stdout,
&mut stderr,
LOCAL_FS.as_ref(),
@@ -1667,7 +1667,7 @@ g
let dir = tempdir().unwrap();
let path = dir.path().join("binary.dat");
fs::write(dir.path().join("source.txt"), "before\n").unwrap();
let cwd = PathUri::from_path(dir.path()).expect("absolute test path");
let cwd = PathUri::from_host_native_path(dir.path()).expect("absolute test path");
for patch in [
wrap_patch("*** Add File: binary.dat\n+text"),
@@ -1705,7 +1705,7 @@ g
let mut stderr = Vec::new();
let delta = apply_patch(
&patch,
&PathUri::from_path(dir.path()).expect("absolute test path"),
&PathUri::from_host_native_path(dir.path()).expect("absolute test path"),
&mut stdout,
&mut stderr,
LOCAL_FS.as_ref(),
+1 -1
View File
@@ -480,7 +480,7 @@ fn test_parse_patch_accepts_relative_and_absolute_hunk_paths() {
#[test]
fn test_hunk_resolve_path_accepts_relative_and_absolute_paths() {
let cwd_dir = tempfile::tempdir().unwrap();
let cwd = PathUri::from_path(cwd_dir.path()).unwrap();
let cwd = PathUri::from_host_native_path(cwd_dir.path()).unwrap();
let absolute_dir = tempfile::tempdir().unwrap();
let absolute_add = absolute_dir.path().join("absolute-add.py").abs();
let absolute_delete = absolute_dir.path().join("absolute-delete.py").abs();