From 76ecbb3d8edded301eb6ba99fb89f78e7eb9503b Mon Sep 17 00:00:00 2001 From: pakrym-oai Date: Tue, 23 Sep 2025 08:57:08 -0700 Subject: [PATCH] Use TestCodex builder in stream retry tests (#4096) ## Summary - refactor the stream retry integration tests to construct conversations through `TestCodex` - remove bespoke config and tempdir setup now handled by the shared builder ## Testing - cargo test -p codex-core --test all stream_error_allows_next_turn::continue_after_stream_error - cargo test -p codex-core --test all stream_no_completed::retries_on_early_close ------ https://chatgpt.com/codex/tasks/task_i_68d2b94d83888320bc75a0bc3bd77b49 --- .../suite/stream_error_allows_next_turn.rs | 24 +++++++------------ .../core/tests/suite/stream_no_completed.rs | 24 ++++++++----------- 2 files changed, 19 insertions(+), 29 deletions(-) diff --git a/codex-rs/core/tests/suite/stream_error_allows_next_turn.rs b/codex-rs/core/tests/suite/stream_error_allows_next_turn.rs index f41534ab..14bff334 100644 --- a/codex-rs/core/tests/suite/stream_error_allows_next_turn.rs +++ b/codex-rs/core/tests/suite/stream_error_allows_next_turn.rs @@ -1,17 +1,15 @@ use std::time::Duration; -use codex_core::CodexAuth; -use codex_core::ConversationManager; use codex_core::ModelProviderInfo; use codex_core::WireApi; use codex_core::protocol::EventMsg; use codex_core::protocol::InputItem; use codex_core::protocol::Op; -use core_test_support::load_default_config_for_test; use core_test_support::load_sse_fixture_with_id; use core_test_support::non_sandbox_test; +use core_test_support::test_codex::TestCodex; +use core_test_support::test_codex::test_codex; use core_test_support::wait_for_event_with_timeout; -use tempfile::TempDir; use wiremock::Mock; use wiremock::MockServer; use wiremock::ResponseTemplate; @@ -78,18 +76,14 @@ async fn continue_after_stream_error() { requires_openai_auth: false, }; - let home = TempDir::new().unwrap(); - let mut config = load_default_config_for_test(&home); - config.base_instructions = Some("You are a helpful assistant".to_string()); - config.model_provider = provider; - - let conversation_manager = - ConversationManager::with_auth(CodexAuth::from_api_key("Test API Key")); - let codex = conversation_manager - .new_conversation(config) + let TestCodex { codex, .. } = test_codex() + .with_config(move |config| { + config.base_instructions = Some("You are a helpful assistant".to_string()); + config.model_provider = provider; + }) + .build(&server) .await - .unwrap() - .conversation; + .unwrap(); codex .submit(Op::UserInput { diff --git a/codex-rs/core/tests/suite/stream_no_completed.rs b/codex-rs/core/tests/suite/stream_no_completed.rs index 4801376d..db55c7a4 100644 --- a/codex-rs/core/tests/suite/stream_no_completed.rs +++ b/codex-rs/core/tests/suite/stream_no_completed.rs @@ -3,17 +3,16 @@ use std::time::Duration; -use codex_core::CodexAuth; -use codex_core::ConversationManager; use codex_core::ModelProviderInfo; +use codex_core::WireApi; use codex_core::protocol::EventMsg; use codex_core::protocol::InputItem; use codex_core::protocol::Op; -use core_test_support::load_default_config_for_test; use core_test_support::load_sse_fixture; use core_test_support::load_sse_fixture_with_id; use core_test_support::non_sandbox_test; -use tempfile::TempDir; +use core_test_support::test_codex::TestCodex; +use core_test_support::test_codex::test_codex; use tokio::time::timeout; use wiremock::Mock; use wiremock::MockServer; @@ -74,7 +73,7 @@ async fn retries_on_early_close() { // provider is not set. env_key: Some("PATH".into()), env_key_instructions: None, - wire_api: codex_core::WireApi::Responses, + wire_api: WireApi::Responses, query_params: None, http_headers: None, env_http_headers: None, @@ -85,16 +84,13 @@ async fn retries_on_early_close() { requires_openai_auth: false, }; - let codex_home = TempDir::new().unwrap(); - let mut config = load_default_config_for_test(&codex_home); - config.model_provider = model_provider; - let conversation_manager = - ConversationManager::with_auth(CodexAuth::from_api_key("Test API Key")); - let codex = conversation_manager - .new_conversation(config) + let TestCodex { codex, .. } = test_codex() + .with_config(move |config| { + config.model_provider = model_provider; + }) + .build(&server) .await - .unwrap() - .conversation; + .unwrap(); codex .submit(Op::UserInput {