use open_agent::get_model;
const MODEL_VAR: &str = "OPEN_AGENT_MODEL";
fn set_model_var(value: Option<&str>) {
unsafe {
match value {
Some(model) => std::env::set_var(MODEL_VAR, model),
None => std::env::remove_var(MODEL_VAR),
}
}
}
#[test]
fn get_model_resolves_env_and_fallback_in_priority_order() {
set_model_var(None);
assert_eq!(get_model(None, true), None);
assert_eq!(get_model(None, false), None);
assert_eq!(get_model(Some("llama3:8b"), true), Some("llama3:8b".into()));
assert_eq!(
get_model(Some("llama3:8b"), false),
Some("llama3:8b".into())
);
set_model_var(Some("qwen2.5-32b-instruct"));
assert_eq!(
get_model(Some("llama3:8b"), true),
Some("qwen2.5-32b-instruct".into())
);
assert_eq!(get_model(None, true), Some("qwen2.5-32b-instruct".into()));
assert_eq!(
get_model(Some("llama3:8b"), false),
Some("llama3:8b".into())
);
assert_eq!(get_model(None, false), None);
set_model_var(None);
}