Delete environment variable (#5479)

Co-authored-by: Douwe Osinga <douwe@squareup.com>
This commit is contained in:
Douwe Osinga
2025-10-30 12:04:18 -04:00
committed by GitHub
parent 96bac11460
commit 609e1ccbe3
-122
View File
@@ -295,125 +295,3 @@ impl ModelConfig {
.unwrap_or_else(|_| panic!("Failed to create model config for {}", model_name))
}
}
#[cfg(test)]
mod tests {
use super::*;
use serial_test::serial;
use temp_env::with_var;
#[test]
#[serial]
fn test_model_config_context_limits() {
// Clear all GOOSE environment variables to ensure clean test environment
with_var("GOOSE_TEMPERATURE", None::<&str>, || {
with_var("GOOSE_CONTEXT_LIMIT", None::<&str>, || {
with_var("GOOSE_TOOLSHIM", None::<&str>, || {
with_var("GOOSE_TOOLSHIM_OLLAMA_MODEL", None::<&str>, || {
let config = ModelConfig::new("claude-3-opus")
.unwrap()
.with_context_limit(Some(150_000));
assert_eq!(config.context_limit(), 150_000);
let config = ModelConfig::new("claude-3-opus").unwrap();
assert_eq!(config.context_limit(), 200_000);
let config = ModelConfig::new("gpt-4-turbo").unwrap();
assert_eq!(config.context_limit(), 128_000);
let config = ModelConfig::new("unknown-model").unwrap();
assert_eq!(config.context_limit(), DEFAULT_CONTEXT_LIMIT);
});
});
});
});
}
#[test]
#[serial]
fn test_invalid_context_limit() {
with_var("GOOSE_CONTEXT_LIMIT", Some("abc"), || {
let result = ModelConfig::new("test-model");
assert!(result.is_err());
if let Err(ConfigError::InvalidValue(var, val, msg)) = result {
assert_eq!(var, "GOOSE_CONTEXT_LIMIT");
assert_eq!(val, "abc");
assert!(msg.contains("positive integer"));
}
});
with_var("GOOSE_CONTEXT_LIMIT", Some("0"), || {
let result = ModelConfig::new("test-model");
assert!(result.is_err());
assert!(matches!(
result.unwrap_err(),
ConfigError::InvalidRange(_, _)
));
});
}
#[test]
#[serial]
fn test_invalid_temperature() {
with_var("GOOSE_TEMPERATURE", Some("hot"), || {
let result = ModelConfig::new("test-model");
assert!(result.is_err());
});
with_var("GOOSE_TEMPERATURE", Some("-1.0"), || {
let result = ModelConfig::new("test-model");
assert!(result.is_err());
});
}
#[test]
#[serial]
fn test_invalid_toolshim() {
with_var("GOOSE_TOOLSHIM", Some("maybe"), || {
let result = ModelConfig::new("test-model");
assert!(result.is_err());
if let Err(ConfigError::InvalidValue(var, val, msg)) = result {
assert_eq!(var, "GOOSE_TOOLSHIM");
assert_eq!(val, "maybe");
assert!(msg.contains("must be one of"));
}
});
}
#[test]
#[serial]
fn test_empty_toolshim_model() {
with_var("GOOSE_TOOLSHIM_OLLAMA_MODEL", Some(""), || {
let result = ModelConfig::new("test-model");
assert!(result.is_err());
assert!(matches!(
result.unwrap_err(),
ConfigError::InvalidValue(_, _, _)
));
});
with_var("GOOSE_TOOLSHIM_OLLAMA_MODEL", Some(" "), || {
let result = ModelConfig::new("test-model");
assert!(result.is_err());
});
}
#[test]
#[serial]
fn test_valid_configurations() {
// Test with environment variables set
with_var("GOOSE_CONTEXT_LIMIT", Some("50000"), || {
with_var("GOOSE_TEMPERATURE", Some("0.7"), || {
with_var("GOOSE_TOOLSHIM", Some("true"), || {
with_var("GOOSE_TOOLSHIM_OLLAMA_MODEL", Some("llama3"), || {
let config = ModelConfig::new("test-model").unwrap();
assert_eq!(config.context_limit(), 50_000);
assert_eq!(config.temperature, Some(0.7));
assert!(config.toolshim);
assert_eq!(config.toolshim_model, Some("llama3".to_string()));
});
});
});
});
}
}