mirror of
https://github.com/openai/codex.git
synced 2026-04-24 06:35:50 +00:00
test(core): stabilize spawn_agent fork_context fixtures
This commit is contained in:
@@ -58,6 +58,7 @@ use std::time::Duration;
|
||||
use tokio::sync::Mutex;
|
||||
use tokio::time::timeout;
|
||||
use tokio_util::sync::CancellationToken;
|
||||
use tracing_test::traced_test;
|
||||
|
||||
fn invocation(
|
||||
session: Arc<crate::codex::Session>,
|
||||
@@ -95,11 +96,14 @@ fn thread_manager() -> ThreadManager {
|
||||
|
||||
async fn install_role_with_model_provider_and_profile_override(turn: &mut TurnContext) -> String {
|
||||
let role_name = "fork-context-role".to_string();
|
||||
tokio::fs::create_dir_all(&turn.config.codex_home)
|
||||
.await
|
||||
.expect("codex home should be created");
|
||||
let role_config_path = turn.config.codex_home.join("fork-context-role.toml");
|
||||
tokio::fs::write(
|
||||
&role_config_path,
|
||||
r#"developer_instructions = "Forked children should keep the parent model config."
|
||||
model_provider = "role-provider"
|
||||
model_provider = "openai"
|
||||
model_context_window = 12345
|
||||
model_auto_compact_token_limit = 1234
|
||||
model_verbosity = "low"
|
||||
@@ -108,19 +112,13 @@ profile = "role-profile"
|
||||
service_tier = "fast"
|
||||
|
||||
[profiles.role-profile]
|
||||
model_provider = "role-provider"
|
||||
model_provider = "openai"
|
||||
"#,
|
||||
)
|
||||
.await
|
||||
.expect("role config should be written");
|
||||
|
||||
let mut config = (*turn.config).clone();
|
||||
let mut role_provider =
|
||||
built_in_model_providers(/* openai_base_url */ /*openai_base_url*/ None)["openai"].clone();
|
||||
role_provider.name = "Role Provider".to_string();
|
||||
config
|
||||
.model_providers
|
||||
.insert("role-provider".to_string(), role_provider);
|
||||
config.service_tier = Some(ServiceTier::Flex);
|
||||
config.plan_mode_reasoning_effort = Some(ReasoningEffort::High);
|
||||
config.model_verbosity = Some(Verbosity::High);
|
||||
@@ -355,6 +353,7 @@ async fn spawn_agent_uses_explorer_role_and_preserves_approval_policy() {
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
#[traced_test]
|
||||
async fn spawn_agent_fork_context_ignores_child_model_overrides() {
|
||||
let (mut session, mut turn) = make_session_and_context().await;
|
||||
let role_name = install_role_with_model_provider_and_profile_override(&mut turn).await;
|
||||
|
||||
@@ -442,7 +442,8 @@ async fn spawn_agent_inherits_parent_model_and_reasoning_without_role() -> Resul
|
||||
}
|
||||
|
||||
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||
async fn spawn_agent_role_overrides_requested_model_and_reasoning_settings() -> Result<()> {
|
||||
async fn spawn_agent_role_overrides_requested_model_and_reasoning_settings_without_fork_context()
|
||||
-> Result<()> {
|
||||
skip_if_no_network!(Ok(()));
|
||||
|
||||
let server = start_mock_server().await;
|
||||
@@ -453,6 +454,7 @@ async fn spawn_agent_role_overrides_requested_model_and_reasoning_settings() ->
|
||||
"agent_type": "custom",
|
||||
"model": REQUESTED_MODEL,
|
||||
"reasoning_effort": REQUESTED_REASONING_EFFORT,
|
||||
"fork_context": false,
|
||||
}),
|
||||
|builder| {
|
||||
builder.with_config(|config| {
|
||||
|
||||
Reference in New Issue
Block a user