Travel_Assistant / tests /test_config_loader.py
Eliot0110's picture
feat: 添加Docker配置、依赖管理和测试框架
68e8f6c
# tests/test_config_loader.py
import pytest
import json
import tempfile
from pathlib import Path
from modules.config_loader import ConfigLoader
class TestConfigLoader:
@pytest.fixture
def temp_config_dir(self):
"""创建临时配置目录和文件"""
with tempfile.TemporaryDirectory() as tmp_dir:
config_dir = Path(tmp_dir)
# 创建测试配置文件
cities_data = {
"cities": [
{"name": "巴黎", "country": "法国", "aliases": ["paris"]}
]
}
with open(config_dir / "cities.json", 'w', encoding='utf-8') as f:
json.dump(cities_data, f, ensure_ascii=False)
personas_data = {
"personas": {
"planner": {"name": "规划型", "keywords": ["规划", "安排"]}
}
}
with open(config_dir / "personas.json", 'w', encoding='utf-8') as f:
json.dump(personas_data, f, ensure_ascii=False)
interests_data = {
"interests": {"美食": ["美食", "餐厅"]}
}
with open(config_dir / "interests.json", 'w', encoding='utf-8') as f:
json.dump(interests_data, f, ensure_ascii=False)
yield config_dir
def test_load_cities(self, temp_config_dir):
"""测试城市配置加载"""
loader = ConfigLoader(temp_config_dir)
assert "巴黎" in loader.cities
assert "paris" in loader.cities
assert loader.cities["巴黎"]["name"] == "巴黎"
def test_load_personas(self, temp_config_dir):
"""测试人格配置加载"""
loader = ConfigLoader(temp_config_dir)
assert "planner" in loader.personas
assert loader.personas["planner"]["name"] == "规划型"
def test_load_interests(self, temp_config_dir):
"""测试兴趣配置加载"""
loader = ConfigLoader(temp_config_dir)
assert "美食" in loader.interests