agent-app / tests /test_config_loader.py
ganeshkota's picture
Add AML pipeline mode, sanitize configs, and production docs
9a45d9a
Raw
History Blame Contribute Delete
2.6 kB
import json
import os
import sys
import tempfile
import unittest
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
SRC = ROOT / "src"
if str(SRC) not in sys.path:
sys.path.insert(0, str(SRC))
from agent_app.revenue_assurance.config import RevenueAssuranceConfig, load_config
class ConfigLoaderTests(unittest.TestCase):
def test_load_config_prefers_environment_over_file(self) -> None:
with tempfile.TemporaryDirectory() as tmpdir:
config_path = Path(tmpdir) / "config.json"
config_path.write_text(json.dumps({
"model_endpoint": "https://from-file.example",
"model_deployment": "from-file-model",
"api_version": "2024-10-21",
"api_key": "file-key",
"use_agentic": False,
}))
os.environ["REVENUE_ASSURANCE_CONFIG_PATH"] = str(config_path)
os.environ["REVENUE_ASSURANCE_MODEL_DEPLOYMENT"] = "from-env-model"
try:
config = load_config()
finally:
os.environ.pop("REVENUE_ASSURANCE_CONFIG_PATH", None)
os.environ.pop("REVENUE_ASSURANCE_MODEL_DEPLOYMENT", None)
self.assertEqual(config.model_endpoint, "https://from-file.example")
self.assertEqual(config.model_deployment, "from-env-model")
self.assertFalse(config.use_agentic)
def test_load_config_returns_defaults_when_no_values_exist(self) -> None:
config = load_config(config_path=None)
self.assertIsInstance(config, RevenueAssuranceConfig)
self.assertEqual(config.api_version, "2024-10-21")
def test_load_config_disables_agentic_for_placeholder_values(self) -> None:
with tempfile.TemporaryDirectory() as tmpdir:
config_path = Path(tmpdir) / "config.json"
config_path.write_text(json.dumps({
"model_endpoint": "https://your-foundry-resource.services.ai.azure.com",
"model_deployment": "gpt-5-6-sol",
"api_version": "2024-10-21",
"api_key": "YOUR_API_KEY",
"use_agentic": True,
}))
os.environ["REVENUE_ASSURANCE_CONFIG_PATH"] = str(config_path)
try:
config = load_config()
finally:
os.environ.pop("REVENUE_ASSURANCE_CONFIG_PATH", None)
self.assertFalse(config.use_agentic)
self.assertEqual(config.model_endpoint, "https://your-foundry-resource.services.ai.azure.com")
if __name__ == "__main__":
unittest.main()