mirror of
https://github.com/openai/codex.git
synced 2026-05-03 21:01:55 +03:00
chore: migrate from Config::load_from_base_config_with_overrides to ConfigBuilder (#8276)
https://github.com/openai/codex/pull/8235 introduced `ConfigBuilder` and this PR updates all call non-test call sites to use it instead of `Config::load_from_base_config_with_overrides()`. This is important because `load_from_base_config_with_overrides()` uses an empty `ConfigRequirements`, which is a reasonable default for testing so the tests are not influenced by the settings on the host. This method is now guarded by `#[cfg(test)]` so it cannot be used by business logic. Because `ConfigBuilder::build()` is `async`, many of the test methods had to be migrated to be `async`, as well. On the bright side, this made it possible to eliminate a bunch of `block_on_future()` stuff.
This commit is contained in:
@@ -1059,7 +1059,6 @@ mod tests {
|
||||
use crossterm::event::KeyModifiers;
|
||||
use insta::assert_snapshot;
|
||||
use serde_json::json;
|
||||
use std::future::Future;
|
||||
use std::path::PathBuf;
|
||||
use std::sync::Arc;
|
||||
use std::sync::Mutex;
|
||||
@@ -1106,14 +1105,6 @@ mod tests {
|
||||
}
|
||||
}
|
||||
|
||||
fn block_on_future<F: Future<Output = T>, T>(future: F) -> T {
|
||||
tokio::runtime::Builder::new_current_thread()
|
||||
.enable_all()
|
||||
.build()
|
||||
.unwrap()
|
||||
.block_on(future)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn preview_uses_first_message_input_text() {
|
||||
let head = vec![
|
||||
@@ -1267,8 +1258,8 @@ mod tests {
|
||||
assert_snapshot!("resume_picker_table", snapshot);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn resume_picker_screen_snapshot() {
|
||||
#[tokio::test]
|
||||
async fn resume_picker_screen_snapshot() {
|
||||
use crate::custom_terminal::Terminal;
|
||||
use crate::test_backend::VT100Backend;
|
||||
use uuid::Uuid;
|
||||
@@ -1360,14 +1351,15 @@ mod tests {
|
||||
None,
|
||||
);
|
||||
|
||||
let page = block_on_future(RolloutRecorder::list_conversations(
|
||||
let page = RolloutRecorder::list_conversations(
|
||||
&state.codex_home,
|
||||
PAGE_SIZE,
|
||||
None,
|
||||
INTERACTIVE_SESSION_SOURCES,
|
||||
Some(&[String::from("openai")]),
|
||||
"openai",
|
||||
))
|
||||
)
|
||||
.await
|
||||
.expect("list conversations");
|
||||
|
||||
let rows = rows_from_items(page.items);
|
||||
@@ -1526,8 +1518,8 @@ mod tests {
|
||||
assert!(guard[0].search_token.is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn page_navigation_uses_view_rows() {
|
||||
#[tokio::test]
|
||||
async fn page_navigation_uses_view_rows() {
|
||||
let loader: PageLoader = Arc::new(|_| {});
|
||||
let mut state = PickerState::new(
|
||||
PathBuf::from("/tmp"),
|
||||
@@ -1551,33 +1543,27 @@ mod tests {
|
||||
state.update_view_rows(5);
|
||||
|
||||
assert_eq!(state.selected, 0);
|
||||
block_on_future(async {
|
||||
state
|
||||
.handle_key(KeyEvent::new(KeyCode::PageDown, KeyModifiers::NONE))
|
||||
.await
|
||||
.unwrap();
|
||||
});
|
||||
state
|
||||
.handle_key(KeyEvent::new(KeyCode::PageDown, KeyModifiers::NONE))
|
||||
.await
|
||||
.unwrap();
|
||||
assert_eq!(state.selected, 5);
|
||||
|
||||
block_on_future(async {
|
||||
state
|
||||
.handle_key(KeyEvent::new(KeyCode::PageDown, KeyModifiers::NONE))
|
||||
.await
|
||||
.unwrap();
|
||||
});
|
||||
state
|
||||
.handle_key(KeyEvent::new(KeyCode::PageDown, KeyModifiers::NONE))
|
||||
.await
|
||||
.unwrap();
|
||||
assert_eq!(state.selected, 10);
|
||||
|
||||
block_on_future(async {
|
||||
state
|
||||
.handle_key(KeyEvent::new(KeyCode::PageUp, KeyModifiers::NONE))
|
||||
.await
|
||||
.unwrap();
|
||||
});
|
||||
state
|
||||
.handle_key(KeyEvent::new(KeyCode::PageUp, KeyModifiers::NONE))
|
||||
.await
|
||||
.unwrap();
|
||||
assert_eq!(state.selected, 5);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn up_at_bottom_does_not_scroll_when_visible() {
|
||||
#[tokio::test]
|
||||
async fn up_at_bottom_does_not_scroll_when_visible() {
|
||||
let loader: PageLoader = Arc::new(|_| {});
|
||||
let mut state = PickerState::new(
|
||||
PathBuf::from("/tmp"),
|
||||
@@ -1606,12 +1592,10 @@ mod tests {
|
||||
let initial_top = state.scroll_top;
|
||||
assert_eq!(initial_top, state.filtered_rows.len().saturating_sub(5));
|
||||
|
||||
block_on_future(async {
|
||||
state
|
||||
.handle_key(KeyEvent::new(KeyCode::Up, KeyModifiers::NONE))
|
||||
.await
|
||||
.unwrap();
|
||||
});
|
||||
state
|
||||
.handle_key(KeyEvent::new(KeyCode::Up, KeyModifiers::NONE))
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
assert_eq!(state.scroll_top, initial_top);
|
||||
assert_eq!(state.selected, state.filtered_rows.len().saturating_sub(2));
|
||||
|
||||
Reference in New Issue
Block a user