47 lines
1.6 KiB
Rust
47 lines
1.6 KiB
Rust
|
|
//! Regression test for issue #773.
|
||
|
|
//! Validates that environment variable overrides are correctly applied during configuration loading.
|
||
|
|
|
||
|
|
use kreuzberg::{EmbeddingModelType, ExtractionConfig};
|
||
|
|
|
||
|
|
#[test]
|
||
|
|
fn test_regression_773_env_override_loading() {
|
||
|
|
let mut config = ExtractionConfig::default();
|
||
|
|
|
||
|
|
if let Some(ref ocr) = config.ocr {
|
||
|
|
assert_ne!(ocr.language, "fra");
|
||
|
|
}
|
||
|
|
|
||
|
|
unsafe { std::env::set_var("KREUZBERG_OCR_LANGUAGE", "fra") };
|
||
|
|
config.apply_env_overrides().expect("Failed to apply overrides");
|
||
|
|
unsafe { std::env::remove_var("KREUZBERG_OCR_LANGUAGE") };
|
||
|
|
|
||
|
|
let ocr = config
|
||
|
|
.ocr
|
||
|
|
.expect("OCR config should be Some when KREUZBERG_OCR_LANGUAGE is set");
|
||
|
|
assert_eq!(ocr.language, "fra");
|
||
|
|
}
|
||
|
|
|
||
|
|
#[test]
|
||
|
|
fn test_regression_773_vlm_embedding_env_override() {
|
||
|
|
let mut config = ExtractionConfig::default();
|
||
|
|
|
||
|
|
unsafe { std::env::set_var("KREUZBERG_VLM_EMBEDDING_MODEL", "openai/text-embedding-3-small") };
|
||
|
|
config
|
||
|
|
.apply_env_overrides()
|
||
|
|
.expect("Failed to apply environment overrides");
|
||
|
|
unsafe { std::env::remove_var("KREUZBERG_VLM_EMBEDDING_MODEL") };
|
||
|
|
|
||
|
|
let chunking = config
|
||
|
|
.chunking
|
||
|
|
.expect("Chunking should be enabled when VLM embedding is set");
|
||
|
|
let embedding = chunking.embedding.expect("Embedding should be configured");
|
||
|
|
|
||
|
|
match embedding.model {
|
||
|
|
EmbeddingModelType::Llm { llm } => {
|
||
|
|
assert_eq!(llm.model, "openai/text-embedding-3-small");
|
||
|
|
assert!(llm.api_key.is_none());
|
||
|
|
}
|
||
|
|
_ => panic!("Expected Llm embedding model type"),
|
||
|
|
}
|
||
|
|
}
|