Spaces:
Running
Running
| # tests/test_config_loader.py | |
| import pytest | |
| import json | |
| import tempfile | |
| from pathlib import Path | |
| from modules.config_loader import ConfigLoader | |
| class TestConfigLoader: | |
| 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 |