feat(tests): try to fix the TESSDATA environment variable in tests, again
This commit is contained in:
parent
bf4f508bec
commit
29689fda4b
|
|
@ -112,7 +112,11 @@ pub async fn retry_ocr(
|
||||||
// Update user's OCR language settings based on what was provided
|
// Update user's OCR language settings based on what was provided
|
||||||
if let Some(languages) = &request.languages {
|
if let Some(languages) = &request.languages {
|
||||||
// Multi-language support: validate and update preferred languages
|
// Multi-language support: validate and update preferred languages
|
||||||
let health_checker = crate::ocr::health::OcrHealthChecker::new();
|
let health_checker = if let Ok(tessdata_path) = std::env::var("TESSDATA_PREFIX") {
|
||||||
|
crate::ocr::health::OcrHealthChecker::new_with_path(tessdata_path)
|
||||||
|
} else {
|
||||||
|
crate::ocr::health::OcrHealthChecker::new()
|
||||||
|
};
|
||||||
match health_checker.validate_preferred_languages(languages) {
|
match health_checker.validate_preferred_languages(languages) {
|
||||||
Ok(_) => {
|
Ok(_) => {
|
||||||
let settings_update = crate::models::UpdateSettings::language_update(
|
let settings_update = crate::models::UpdateSettings::language_update(
|
||||||
|
|
@ -135,7 +139,11 @@ pub async fn retry_ocr(
|
||||||
}
|
}
|
||||||
} else if let Some(lang) = &request.language {
|
} else if let Some(lang) = &request.language {
|
||||||
// Single language (backward compatibility)
|
// Single language (backward compatibility)
|
||||||
let health_checker = crate::ocr::health::OcrHealthChecker::new();
|
let health_checker = if let Ok(tessdata_path) = std::env::var("TESSDATA_PREFIX") {
|
||||||
|
crate::ocr::health::OcrHealthChecker::new_with_path(tessdata_path)
|
||||||
|
} else {
|
||||||
|
crate::ocr::health::OcrHealthChecker::new()
|
||||||
|
};
|
||||||
match health_checker.validate_language(lang) {
|
match health_checker.validate_language(lang) {
|
||||||
Ok(_) => {
|
Ok(_) => {
|
||||||
if let Err(e) = state.db.update_user_ocr_language(auth_user.user.id, lang).await {
|
if let Err(e) = state.db.update_user_ocr_language(auth_user.user.id, lang).await {
|
||||||
|
|
|
||||||
|
|
@ -29,8 +29,13 @@ async fn test_get_available_languages_success() {
|
||||||
.expect("Failed to create mock language file");
|
.expect("Failed to create mock language file");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set environment variable for tessdata path
|
// Set environment variable for tessdata path and verify it's properly set
|
||||||
std::env::set_var("TESSDATA_PREFIX", tessdata_path);
|
let tessdata_str = tessdata_path.to_string_lossy().to_string();
|
||||||
|
std::env::set_var("TESSDATA_PREFIX", &tessdata_str);
|
||||||
|
|
||||||
|
// Verify the files exist in the temp directory
|
||||||
|
assert!(tessdata_path.join("spa.traineddata").exists());
|
||||||
|
assert_eq!(std::env::var("TESSDATA_PREFIX").unwrap(), tessdata_str);
|
||||||
|
|
||||||
// Use the existing admin credentials to test against the running server
|
// Use the existing admin credentials to test against the running server
|
||||||
let client = reqwest::Client::new();
|
let client = reqwest::Client::new();
|
||||||
|
|
@ -85,7 +90,8 @@ async fn test_get_available_languages_unauthorized() {
|
||||||
|
|
||||||
// Create mock language files
|
// Create mock language files
|
||||||
fs::write(tessdata_path.join("eng.traineddata"), "mock").unwrap();
|
fs::write(tessdata_path.join("eng.traineddata"), "mock").unwrap();
|
||||||
std::env::set_var("TESSDATA_PREFIX", tessdata_path);
|
let tessdata_str = tessdata_path.to_string_lossy().to_string();
|
||||||
|
std::env::set_var("TESSDATA_PREFIX", &tessdata_str);
|
||||||
|
|
||||||
let ctx = TestContext::new().await;
|
let ctx = TestContext::new().await;
|
||||||
|
|
||||||
|
|
@ -109,7 +115,8 @@ async fn test_retry_ocr_with_language_success() {
|
||||||
// Create mock language files
|
// Create mock language files
|
||||||
fs::write(tessdata_path.join("eng.traineddata"), "mock").unwrap();
|
fs::write(tessdata_path.join("eng.traineddata"), "mock").unwrap();
|
||||||
fs::write(tessdata_path.join("spa.traineddata"), "mock").unwrap();
|
fs::write(tessdata_path.join("spa.traineddata"), "mock").unwrap();
|
||||||
std::env::set_var("TESSDATA_PREFIX", tessdata_path);
|
let tessdata_str = tessdata_path.to_string_lossy().to_string();
|
||||||
|
std::env::set_var("TESSDATA_PREFIX", &tessdata_str);
|
||||||
|
|
||||||
let ctx = TestContext::new().await;
|
let ctx = TestContext::new().await;
|
||||||
|
|
||||||
|
|
@ -166,7 +173,8 @@ async fn test_retry_ocr_with_invalid_language() {
|
||||||
|
|
||||||
// Create mock language files
|
// Create mock language files
|
||||||
fs::write(tessdata_path.join("eng.traineddata"), "mock").unwrap();
|
fs::write(tessdata_path.join("eng.traineddata"), "mock").unwrap();
|
||||||
std::env::set_var("TESSDATA_PREFIX", tessdata_path);
|
let tessdata_str = tessdata_path.to_string_lossy().to_string();
|
||||||
|
std::env::set_var("TESSDATA_PREFIX", &tessdata_str);
|
||||||
|
|
||||||
let ctx = TestContext::new().await;
|
let ctx = TestContext::new().await;
|
||||||
|
|
||||||
|
|
@ -220,7 +228,8 @@ async fn test_retry_ocr_with_multiple_languages_success() {
|
||||||
fs::write(tessdata_path.join("eng.traineddata"), "mock").unwrap();
|
fs::write(tessdata_path.join("eng.traineddata"), "mock").unwrap();
|
||||||
fs::write(tessdata_path.join("spa.traineddata"), "mock").unwrap();
|
fs::write(tessdata_path.join("spa.traineddata"), "mock").unwrap();
|
||||||
fs::write(tessdata_path.join("fra.traineddata"), "mock").unwrap();
|
fs::write(tessdata_path.join("fra.traineddata"), "mock").unwrap();
|
||||||
std::env::set_var("TESSDATA_PREFIX", tessdata_path);
|
let tessdata_str = tessdata_path.to_string_lossy().to_string();
|
||||||
|
std::env::set_var("TESSDATA_PREFIX", &tessdata_str);
|
||||||
|
|
||||||
let ctx = TestContext::new().await;
|
let ctx = TestContext::new().await;
|
||||||
|
|
||||||
|
|
@ -281,7 +290,8 @@ async fn test_retry_ocr_with_too_many_languages() {
|
||||||
fs::write(tessdata_path.join("fra.traineddata"), "mock").unwrap();
|
fs::write(tessdata_path.join("fra.traineddata"), "mock").unwrap();
|
||||||
fs::write(tessdata_path.join("deu.traineddata"), "mock").unwrap();
|
fs::write(tessdata_path.join("deu.traineddata"), "mock").unwrap();
|
||||||
fs::write(tessdata_path.join("ita.traineddata"), "mock").unwrap();
|
fs::write(tessdata_path.join("ita.traineddata"), "mock").unwrap();
|
||||||
std::env::set_var("TESSDATA_PREFIX", tessdata_path);
|
let tessdata_str = tessdata_path.to_string_lossy().to_string();
|
||||||
|
std::env::set_var("TESSDATA_PREFIX", &tessdata_str);
|
||||||
|
|
||||||
let ctx = TestContext::new().await;
|
let ctx = TestContext::new().await;
|
||||||
|
|
||||||
|
|
@ -335,7 +345,8 @@ async fn test_retry_ocr_with_invalid_language_in_array() {
|
||||||
// Create mock language files
|
// Create mock language files
|
||||||
fs::write(tessdata_path.join("eng.traineddata"), "mock").unwrap();
|
fs::write(tessdata_path.join("eng.traineddata"), "mock").unwrap();
|
||||||
fs::write(tessdata_path.join("spa.traineddata"), "mock").unwrap();
|
fs::write(tessdata_path.join("spa.traineddata"), "mock").unwrap();
|
||||||
std::env::set_var("TESSDATA_PREFIX", tessdata_path);
|
let tessdata_str = tessdata_path.to_string_lossy().to_string();
|
||||||
|
std::env::set_var("TESSDATA_PREFIX", &tessdata_str);
|
||||||
|
|
||||||
let ctx = TestContext::new().await;
|
let ctx = TestContext::new().await;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue