mirror of
https://github.com/openai/codex.git
synced 2026-10-20 00:18:49 +00:00
Remove selected protocol, apply-patch, MCP, and TUI tests (#53358)
## What changed Remove eight tests covering experimental API schema filtering and marking, end-of-file unified diffs, MCP prompt auto-approval, and local-link regex initialization. Remove the associated unused test imports and regex coverage comment. Runtime behavior is unchanged. GitOrigin-RevId: 91f59cab82393d43000eadf4e7c55e3a6ec2aa14
This commit is contained in:
committed by
copyberry
parent
6e5f665feb
commit
ddb33e34b2
@@ -2494,32 +2494,6 @@ mod tests {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn stable_schema_filter_removes_mock_thread_start_field() -> Result<()> {
|
||||
let output_dir = std::env::temp_dir().join(format!("codex_schema_{}", Uuid::now_v7()));
|
||||
fs::create_dir(&output_dir)?;
|
||||
let schema = write_json_schema_with_return::<v2::ThreadStartParams>(
|
||||
&output_dir,
|
||||
"ThreadStartParams",
|
||||
)?;
|
||||
let mut bundle = build_schema_bundle(vec![schema])?;
|
||||
filter_experimental_schema(&mut bundle)?;
|
||||
|
||||
let definitions = bundle["definitions"]
|
||||
.as_object()
|
||||
.expect("schema bundle should include definitions");
|
||||
let (_, def_schema) = definitions
|
||||
.iter()
|
||||
.find(|(name, _)| definition_matches_type(name, "ThreadStartParams"))
|
||||
.expect("ThreadStartParams definition should exist");
|
||||
let properties = def_schema["properties"]
|
||||
.as_object()
|
||||
.expect("ThreadStartParams should have properties");
|
||||
assert_eq!(properties.contains_key("mockExperimentalField"), false);
|
||||
let _cleanup = fs::remove_dir_all(&output_dir);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn build_schema_bundle_rewrites_root_helper_refs_to_namespaced_defs() -> Result<()> {
|
||||
let bundle = build_schema_bundle(vec![
|
||||
@@ -2928,21 +2902,6 @@ permissionProfile?: string | null};
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn stable_schema_filter_removes_mock_experimental_method() -> Result<()> {
|
||||
let output_dir = std::env::temp_dir().join(format!("codex_schema_{}", Uuid::now_v7()));
|
||||
fs::create_dir(&output_dir)?;
|
||||
let schema =
|
||||
write_json_schema_with_return::<crate::ClientRequest>(&output_dir, "ClientRequest")?;
|
||||
let mut bundle = build_schema_bundle(vec![schema])?;
|
||||
filter_experimental_schema(&mut bundle)?;
|
||||
|
||||
let bundle_str = serde_json::to_string(&bundle)?;
|
||||
assert_eq!(bundle_str.contains("mock/experimentalMethod"), false);
|
||||
let _cleanup = fs::remove_dir_all(&output_dir);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn generate_json_filters_experimental_fields_and_methods() -> Result<()> {
|
||||
let output_dir = std::env::temp_dir().join(format!("codex_schema_{}", Uuid::now_v7()));
|
||||
|
||||
@@ -4388,16 +4388,6 @@ mod tests {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn mock_experimental_method_is_marked_experimental() {
|
||||
let request = ClientRequest::MockExperimentalMethod {
|
||||
request_id: RequestId::Integer(1),
|
||||
params: v2::MockExperimentalMethodParams::default(),
|
||||
};
|
||||
let reason = crate::experimental_api::ExperimentalApi::experimental_reason(&request);
|
||||
assert_eq!(reason, Some("mock/experimentalMethod"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn environment_add_is_marked_experimental() {
|
||||
let request = ClientRequest::EnvironmentAdd {
|
||||
@@ -4441,37 +4431,6 @@ mod tests {
|
||||
assert_eq!(reason, Some("command/exec.permissionProfile"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn thread_realtime_start_is_marked_experimental() {
|
||||
let request = ClientRequest::ThreadRealtimeStart {
|
||||
request_id: RequestId::Integer(1),
|
||||
params: v2::ThreadRealtimeStartParams {
|
||||
client_managed_handoffs: None,
|
||||
delegation_ack_filler: None,
|
||||
flush_transcript_tail_on_session_end: None,
|
||||
codex_responses_as_items: None,
|
||||
codex_response_item_prefix: None,
|
||||
codex_response_handoff_mode: None,
|
||||
backend_reasoning_status: false,
|
||||
codex_response_handoff_channel_prefixes: None,
|
||||
thread_id: "thr_123".to_string(),
|
||||
model: None,
|
||||
output_modality: RealtimeOutputModality::Audio,
|
||||
include_startup_context: None,
|
||||
initial_items: None,
|
||||
realtime_start_instructions: None,
|
||||
realtime_end_instructions: None,
|
||||
prompt: Some(Some("You are on a call".to_string())),
|
||||
realtime_session_id: None,
|
||||
transport: None,
|
||||
version: None,
|
||||
voice: None,
|
||||
},
|
||||
};
|
||||
let reason = crate::experimental_api::ExperimentalApi::experimental_reason(&request);
|
||||
assert_eq!(reason, Some("thread/realtime/start"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn thread_goal_methods_are_not_marked_experimental() {
|
||||
let set_request = ClientRequest::ThreadGoalSet {
|
||||
|
||||
@@ -406,7 +406,6 @@ fn extract_apply_patch_from_bash(
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::unified_diff_from_chunks;
|
||||
use assert_matches::assert_matches;
|
||||
use codex_exec_server::LOCAL_FS;
|
||||
use pretty_assertions::assert_eq;
|
||||
@@ -741,87 +740,6 @@ PATCH"#,
|
||||
assert_not_match(&heredoc_script("echo foo; cd bar && "));
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn test_unified_diff_last_line_replacement() {
|
||||
// Replace the very last line of the file.
|
||||
let dir = tempdir().unwrap();
|
||||
let path = dir.path().join("last.txt");
|
||||
fs::write(&path, "foo\nbar\nbaz\n").unwrap();
|
||||
|
||||
let patch = wrap_patch(&format!(
|
||||
r#"*** Update File: {}
|
||||
@@
|
||||
foo
|
||||
bar
|
||||
-baz
|
||||
+BAZ
|
||||
"#,
|
||||
path.display()
|
||||
));
|
||||
|
||||
let patch = parse_patch(&patch).unwrap();
|
||||
let chunks = match patch.hunks.as_slice() {
|
||||
[Hunk::UpdateFile { chunks, .. }] => chunks,
|
||||
_ => panic!("Expected a single UpdateFile hunk"),
|
||||
};
|
||||
|
||||
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
|
||||
.unwrap();
|
||||
let expected_diff = r#"@@ -2,2 +2,2 @@
|
||||
bar
|
||||
-baz
|
||||
+BAZ
|
||||
"#;
|
||||
let expected = ApplyPatchFileUpdate {
|
||||
unified_diff: expected_diff.to_string(),
|
||||
original_content: "foo\nbar\nbaz\n".to_string(),
|
||||
content: "foo\nbar\nBAZ\n".to_string(),
|
||||
};
|
||||
assert_eq!(expected, diff);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn test_unified_diff_insert_at_eof() {
|
||||
// Insert a new line at end‑of‑file.
|
||||
let dir = tempdir().unwrap();
|
||||
let path = dir.path().join("insert.txt");
|
||||
fs::write(&path, "foo\nbar\nbaz\n").unwrap();
|
||||
|
||||
let patch = wrap_patch(&format!(
|
||||
r#"*** Update File: {}
|
||||
@@
|
||||
+quux
|
||||
*** End of File
|
||||
"#,
|
||||
path.display()
|
||||
));
|
||||
|
||||
let patch = parse_patch(&patch).unwrap();
|
||||
let chunks = match patch.hunks.as_slice() {
|
||||
[Hunk::UpdateFile { chunks, .. }] => chunks,
|
||||
_ => panic!("Expected a single UpdateFile hunk"),
|
||||
};
|
||||
|
||||
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
|
||||
.unwrap();
|
||||
let expected_diff = r#"@@ -3 +3,2 @@
|
||||
baz
|
||||
+quux
|
||||
"#;
|
||||
let expected = ApplyPatchFileUpdate {
|
||||
unified_diff: expected_diff.to_string(),
|
||||
original_content: "foo\nbar\nbaz\n".to_string(),
|
||||
content: "foo\nbar\nbaz\nquux\n".to_string(),
|
||||
};
|
||||
assert_eq!(expected, diff);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn test_apply_patch_should_resolve_absolute_paths_in_cwd() {
|
||||
let session_dir = tempdir().unwrap();
|
||||
|
||||
@@ -305,17 +305,6 @@ fn mcp_prompt_auto_approval_honors_approved_tools_in_all_permission_modes() {
|
||||
));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn mcp_prompt_auto_approval_rejects_auto_mode_in_default_permission_mode() {
|
||||
assert!(!mcp_permission_prompt_is_auto_approved(
|
||||
AskForApproval::OnRequest,
|
||||
&PermissionProfile::read_only(),
|
||||
McpPermissionPromptAutoApproveContext {
|
||||
tool_approval_mode: Some(AppToolApproval::Auto),
|
||||
},
|
||||
));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn tool_plugin_context_collects_app_and_mcp_sources() {
|
||||
let mut config = test_mcp_config(PathBuf::new());
|
||||
|
||||
@@ -20,7 +20,6 @@ static COLON_LOCATION_SUFFIX_RE: LazyLock<Regex> =
|
||||
},
|
||||
);
|
||||
|
||||
// Covered by load_location_suffix_regexes.
|
||||
static HASH_LOCATION_SUFFIX_RE: LazyLock<Regex> =
|
||||
LazyLock::new(|| match Regex::new(r"^L\d+(?:C\d+)?(?:-L\d+(?:C\d+)?)?$") {
|
||||
Ok(regex) => regex,
|
||||
|
||||
@@ -1,16 +1,8 @@
|
||||
//! Tests for local-link parsing and root-preserving separator normalization.
|
||||
|
||||
use super::COLON_LOCATION_SUFFIX_RE;
|
||||
use super::HASH_LOCATION_SUFFIX_RE;
|
||||
use super::trim_trailing_local_path_separator;
|
||||
use pretty_assertions::assert_eq;
|
||||
|
||||
#[test]
|
||||
fn load_location_suffix_regexes() {
|
||||
let _colon = &*COLON_LOCATION_SUFFIX_RE;
|
||||
let _hash = &*HASH_LOCATION_SUFFIX_RE;
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn trailing_separator_trimming_preserves_local_roots() {
|
||||
let paths = ["/", "//", "C:/", "dir/", "//server/share/", "C:/dir/"];
|
||||
|
||||
Reference in New Issue
Block a user