File size: 2,093 Bytes
68e8f6c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
46
47
48
49
50
51
52
53
54
55
56
57
# 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