mirror of
https://github.com/openai/codex.git
synced 2026-04-30 11:21:34 +03:00
Introduce ModelsManager and migrate app-server to use it. (#7552)
This commit is contained in:
@@ -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(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user