Spaces:
Sleeping
Sleeping
File size: 1,827 Bytes
51a27d1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | from __future__ import annotations
import json
import os
import unittest
import uuid
from pathlib import Path
from unittest.mock import patch
from bridgelink_asl.config import load_config
class ConfigTests(unittest.TestCase):
def test_load_config_merges_file_and_env(self) -> None:
tmp_root = Path(__file__).resolve().parents[1] / ".tmp-tests"
tmp_root.mkdir(parents=True, exist_ok=True)
scratch_dir = tmp_root / f"config-{uuid.uuid4().hex}"
scratch_dir.mkdir(parents=True, exist_ok=True)
config_path = scratch_dir / "demo.json"
config_path.write_text(
json.dumps(
{
"camera_index": 2,
"model_path": "models/custom.json",
"clip_manifest_path": "data/processed/custom-clips.jsonl",
"cnn_model_path": "models/custom-cnn.keras",
"cnn_frame_count": 12,
"demo_sequence": ["hello", "help"],
"use_camera": False,
}
),
encoding="utf-8",
)
with patch.dict(os.environ, {"BRIDGELINK_TTS_PROVIDER": "console"}, clear=False):
config = load_config(config_path)
self.assertEqual(config.camera_index, 2)
self.assertEqual(config.tts_provider, "console")
self.assertEqual(config.demo_sequence, ("HELLO", "HELP"))
self.assertFalse(config.use_camera)
self.assertEqual(config.cnn_frame_count, 12)
self.assertTrue(str(config.model_path).endswith(str(Path("models") / "custom.json")))
self.assertTrue(str(config.clip_manifest_path).endswith(str(Path("data") / "processed" / "custom-clips.jsonl")))
self.assertTrue(str(config.cnn_model_path).endswith(str(Path("models") / "custom-cnn.keras")))
|