From cb6a7c51bbbf33c5a7383fde4d8f752adcc7bfa1 Mon Sep 17 00:00:00 2001 From: Michael Bolin Date: Thu, 30 Apr 2026 07:17:50 -0700 Subject: [PATCH] core tests: submit turns with permission profiles --- codex-rs/core/tests/suite/client.rs | 17 ++++++++--- .../tests/suite/collaboration_instructions.rs | 17 ++++++++--- codex-rs/core/tests/suite/remote_models.rs | 30 ++++++++++++------- 3 files changed, 46 insertions(+), 18 deletions(-) diff --git a/codex-rs/core/tests/suite/client.rs b/codex-rs/core/tests/suite/client.rs index 9ed83605c2..d73c865c3b 100644 --- a/codex-rs/core/tests/suite/client.rs +++ b/codex-rs/core/tests/suite/client.rs @@ -63,6 +63,7 @@ use core_test_support::responses::sse_failed; use core_test_support::skip_if_no_network; use core_test_support::test_codex::TestCodex; use core_test_support::test_codex::test_codex; +use core_test_support::test_codex::turn_permission_fields; use core_test_support::wait_for_event; use dunce::canonicalize as normalize_path; use futures::StreamExt; @@ -1725,6 +1726,10 @@ async fn user_turn_collaboration_mode_overrides_model_and_effort() -> anyhow::Re session_configured, .. } = test_codex().with_model("gpt-5.4").build(&server).await?; + let (sandbox_policy, permission_profile) = turn_permission_fields( + config.permissions.permission_profile(), + config.cwd.as_path(), + ); let collaboration_mode = CollaborationMode { mode: ModeKind::Default, @@ -1745,8 +1750,8 @@ async fn user_turn_collaboration_mode_overrides_model_and_effort() -> anyhow::Re cwd: config.cwd.to_path_buf(), approval_policy: config.permissions.approval_policy.value(), approvals_reviewer: None, - sandbox_policy: config.legacy_sandbox_policy(), - permission_profile: None, + sandbox_policy, + permission_profile, model: session_configured.model.clone(), effort: Some(ReasoningEffort::Low), summary: Some( @@ -1856,6 +1861,10 @@ async fn user_turn_explicit_reasoning_summary_overrides_model_catalog_default() }) .build(&server) .await?; + let (sandbox_policy, permission_profile) = turn_permission_fields( + config.permissions.permission_profile(), + config.cwd.as_path(), + ); codex .submit(Op::UserTurn { @@ -1867,8 +1876,8 @@ async fn user_turn_explicit_reasoning_summary_overrides_model_catalog_default() cwd: config.cwd.to_path_buf(), approval_policy: config.permissions.approval_policy.value(), approvals_reviewer: None, - sandbox_policy: config.legacy_sandbox_policy(), - permission_profile: None, + sandbox_policy, + permission_profile, model: session_configured.model, effort: None, summary: Some(ReasoningSummary::Concise), diff --git a/codex-rs/core/tests/suite/collaboration_instructions.rs b/codex-rs/core/tests/suite/collaboration_instructions.rs index e3ea0669ca..060571e878 100644 --- a/codex-rs/core/tests/suite/collaboration_instructions.rs +++ b/codex-rs/core/tests/suite/collaboration_instructions.rs @@ -14,6 +14,7 @@ use core_test_support::responses::sse; use core_test_support::responses::start_mock_server; use core_test_support::skip_if_no_network; use core_test_support::test_codex::test_codex; +use core_test_support::test_codex::turn_permission_fields; use core_test_support::wait_for_event; use pretty_assertions::assert_eq; use serde_json::Value; @@ -174,6 +175,10 @@ async fn collaboration_instructions_added_on_user_turn() -> Result<()> { let test = test_codex().build(&server).await?; let collab_text = "turn instructions"; let collaboration_mode = collab_mode_with_instructions(Some(collab_text)); + let (sandbox_policy, permission_profile) = turn_permission_fields( + test.config.permissions.permission_profile(), + test.config.cwd.as_path(), + ); test.codex .submit(Op::UserTurn { @@ -185,8 +190,8 @@ async fn collaboration_instructions_added_on_user_turn() -> Result<()> { cwd: test.config.cwd.to_path_buf(), approval_policy: test.config.permissions.approval_policy.value(), approvals_reviewer: None, - sandbox_policy: test.config.legacy_sandbox_policy(), - permission_profile: None, + sandbox_policy, + permission_profile, model: test.session_configured.model.clone(), effort: None, summary: Some( @@ -279,6 +284,10 @@ async fn user_turn_overrides_collaboration_instructions_after_override() -> Resu let base_mode = collab_mode_with_instructions(Some(base_text)); let turn_text = "turn override"; let turn_mode = collab_mode_with_instructions(Some(turn_text)); + let (sandbox_policy, permission_profile) = turn_permission_fields( + test.config.permissions.permission_profile(), + test.config.cwd.as_path(), + ); test.codex .submit(Op::OverrideTurnContext { @@ -307,8 +316,8 @@ async fn user_turn_overrides_collaboration_instructions_after_override() -> Resu cwd: test.config.cwd.to_path_buf(), approval_policy: test.config.permissions.approval_policy.value(), approvals_reviewer: None, - sandbox_policy: test.config.legacy_sandbox_policy(), - permission_profile: None, + sandbox_policy, + permission_profile, model: test.session_configured.model.clone(), effort: None, summary: Some( diff --git a/codex-rs/core/tests/suite/remote_models.rs b/codex-rs/core/tests/suite/remote_models.rs index 49218c78d2..902fbce3ee 100644 --- a/codex-rs/core/tests/suite/remote_models.rs +++ b/codex-rs/core/tests/suite/remote_models.rs @@ -152,6 +152,8 @@ async fn remote_models_config_context_window_override_clamps_to_max_context_wind }) .build(&server) .await?; + let (sandbox_policy, permission_profile) = + turn_permission_fields(config.permissions.permission_profile(), cwd.path()); codex .submit(Op::UserTurn { @@ -163,13 +165,13 @@ async fn remote_models_config_context_window_override_clamps_to_max_context_wind cwd: cwd.path().to_path_buf(), approval_policy: config.permissions.approval_policy.value(), approvals_reviewer: None, - sandbox_policy: config.legacy_sandbox_policy(), + sandbox_policy, model: requested_model.to_string(), effort: None, summary: None, service_tier: None, collaboration_mode: None, - permission_profile: None, + permission_profile, personality: None, environments: None, }) @@ -230,6 +232,8 @@ async fn remote_models_config_override_above_max_uses_max_context_window() -> Re }) .build(&server) .await?; + let (sandbox_policy, permission_profile) = + turn_permission_fields(config.permissions.permission_profile(), cwd.path()); codex .submit(Op::UserTurn { @@ -241,13 +245,13 @@ async fn remote_models_config_override_above_max_uses_max_context_window() -> Re cwd: cwd.path().to_path_buf(), approval_policy: config.permissions.approval_policy.value(), approvals_reviewer: None, - sandbox_policy: config.legacy_sandbox_policy(), + sandbox_policy, model: requested_model.to_string(), effort: None, summary: None, service_tier: None, collaboration_mode: None, - permission_profile: None, + permission_profile, personality: None, environments: None, }) @@ -307,6 +311,8 @@ async fn remote_models_use_context_window_when_config_override_is_absent() -> Re }) .build(&server) .await?; + let (sandbox_policy, permission_profile) = + turn_permission_fields(config.permissions.permission_profile(), cwd.path()); codex .submit(Op::UserTurn { @@ -318,13 +324,13 @@ async fn remote_models_use_context_window_when_config_override_is_absent() -> Re cwd: cwd.path().to_path_buf(), approval_policy: config.permissions.approval_policy.value(), approvals_reviewer: None, - sandbox_policy: config.legacy_sandbox_policy(), + sandbox_policy, model: requested_model.to_string(), effort: None, summary: None, service_tier: None, collaboration_mode: None, - permission_profile: None, + permission_profile, personality: None, environments: None, }) @@ -397,6 +403,8 @@ async fn remote_models_long_model_slug_is_sent_with_high_reasoning() -> Result<( }) .build(&server) .await?; + let (sandbox_policy, permission_profile) = + turn_permission_fields(config.permissions.permission_profile(), cwd.path()); codex .submit(Op::UserTurn { @@ -408,8 +416,8 @@ async fn remote_models_long_model_slug_is_sent_with_high_reasoning() -> Result<( cwd: cwd.path().to_path_buf(), approval_policy: config.permissions.approval_policy.value(), approvals_reviewer: None, - sandbox_policy: config.legacy_sandbox_policy(), - permission_profile: None, + sandbox_policy, + permission_profile, model: requested_model.to_string(), effort: None, summary: None, @@ -458,6 +466,8 @@ async fn namespaced_model_slug_uses_catalog_metadata_without_fallback_warning() .with_model(requested_model) .build(&server) .await?; + let (sandbox_policy, permission_profile) = + turn_permission_fields(config.permissions.permission_profile(), cwd.path()); codex .submit(Op::UserTurn { @@ -469,8 +479,8 @@ async fn namespaced_model_slug_uses_catalog_metadata_without_fallback_warning() cwd: cwd.path().to_path_buf(), approval_policy: config.permissions.approval_policy.value(), approvals_reviewer: None, - sandbox_policy: config.legacy_sandbox_policy(), - permission_profile: None, + sandbox_policy, + permission_profile, model: requested_model.to_string(), effort: None, summary: Some(