Introduce ModelsManager and migrate app-server to use it. (#7552)

This commit is contained in:
Ahmed Ibrahim
2025-12-03 17:17:56 -08:00
committed by GitHub
parent 70b97790be
commit 00cc00ead8
14 changed files with 56 additions and 71 deletions

View File

@@ -1,51 +1,30 @@
use anyhow::Result;
use codex_core::CodexAuth;
use codex_core::protocol::EventMsg;
use codex_core::protocol::Op;
use codex_core::ConversationManager;
use codex_protocol::openai_models::ModelPreset;
use codex_protocol::openai_models::ReasoningEffort;
use codex_protocol::openai_models::ReasoningEffortPreset;
use core_test_support::responses::start_mock_server;
use core_test_support::test_codex::test_codex;
use core_test_support::wait_for_event_match;
use pretty_assertions::assert_eq;
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
async fn list_models_returns_api_key_models() -> Result<()> {
let server = start_mock_server().await;
let mut builder = test_codex().with_auth(CodexAuth::from_api_key("sk-test"));
let test = builder.build(&server).await?;
test.codex.submit(Op::ListModels).await?;
let event = wait_for_event_match(&test.codex, |event| match event {
EventMsg::ListModelsResponse(models) => Some(models.clone()),
_ => None,
})
.await;
let manager = ConversationManager::with_auth(CodexAuth::from_api_key("sk-test"));
let models = manager.list_models().await;
let expected_models = expected_models_for_api_key();
assert_eq!(expected_models, event.models);
assert_eq!(expected_models, models);
Ok(())
}
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
async fn list_models_returns_chatgpt_models() -> Result<()> {
let server = start_mock_server().await;
let mut builder = test_codex().with_auth(CodexAuth::create_dummy_chatgpt_auth_for_testing());
let test = builder.build(&server).await?;
test.codex.submit(Op::ListModels).await?;
let event = wait_for_event_match(&test.codex, |event| match event {
EventMsg::ListModelsResponse(models) => Some(models.clone()),
_ => None,
})
.await;
let manager =
ConversationManager::with_auth(CodexAuth::create_dummy_chatgpt_auth_for_testing());
let models = manager.list_models().await;
let expected_models = expected_models_for_chatgpt();
assert_eq!(expected_models, event.models);
assert_eq!(expected_models, models);
Ok(())
}