core tests: build user turns from permission profiles

This commit is contained in:
Michael Bolin
2026-04-28 09:39:45 -07:00
parent 84a9a8c777
commit d2cf879dd3
10 changed files with 81 additions and 37 deletions
+15 -4
View File
@@ -203,6 +203,18 @@ pub enum ShellModelOutput {
// UnifiedExec has its own set of tests
}
/// Returns the permission fields required by `Op::UserTurn` for tests that
/// construct the op directly.
pub fn turn_permission_fields(
permission_profile: PermissionProfile,
cwd: &Path,
) -> (SandboxPolicy, Option<PermissionProfile>) {
let sandbox_policy = permission_profile
.to_legacy_sandbox_policy(cwd)
.unwrap_or_else(|_| SandboxPolicy::new_read_only_policy());
(sandbox_policy, Some(permission_profile))
}
pub struct TestCodexBuilder {
config_mutators: Vec<Box<ConfigMutator>>,
auth: CodexAuth,
@@ -689,14 +701,13 @@ impl TestCodex {
service_tier: Option<Option<ServiceTier>>,
environments: Option<Vec<TurnEnvironmentSelection>>,
) -> Result<()> {
let sandbox_policy = permission_profile
.to_legacy_sandbox_policy(self.config.cwd.as_path())
.unwrap_or_else(|_| SandboxPolicy::new_read_only_policy());
let (sandbox_policy, permission_profile) =
turn_permission_fields(permission_profile, self.config.cwd.as_path());
self.submit_turn_with_context(
prompt,
approval_policy,
sandbox_policy,
Some(permission_profile),
permission_profile,
service_tier,
environments,
)