# 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