File size: 1,316 Bytes
69fb140
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
"""
測試 core/config.py 配置模組
"""

import pytest
from core.config import Settings


class TestSettings:
    """測試 Settings 類別"""

    def test_cors_origins_default(self):
        """測試 CORS 預設值"""
        origins = Settings.get_cors_origins()
        assert isinstance(origins, list)

    def test_constants_defined(self):
        """測試常數已定義"""
        assert hasattr(Settings, 'WEBSOCKET_SESSION_TIMEOUT')
        assert hasattr(Settings, 'CLEANUP_INTERVAL')
        assert hasattr(Settings, 'MEMORY_IMPORTANCE_THRESHOLD')
        assert hasattr(Settings, 'INTENT_CACHE_TTL')
        assert hasattr(Settings, 'CHAT_HISTORY_LIMIT')
        assert hasattr(Settings, 'CARE_MODE_HISTORY_LIMIT')

    def test_security_constants(self):
        """測試安全性常數"""
        assert hasattr(Settings, 'FAILED_LOGIN_THRESHOLD')
        assert hasattr(Settings, 'LOGIN_BLOCK_DURATION')
        assert hasattr(Settings, 'JWT_SECRET_MIN_LENGTH')
        assert Settings.JWT_SECRET_MIN_LENGTH >= 32

    def test_default_values(self):
        """測試預設值合理性"""
        assert Settings.WEBSOCKET_SESSION_TIMEOUT > 0
        assert Settings.CLEANUP_INTERVAL > 0
        assert 0 <= Settings.MEMORY_IMPORTANCE_THRESHOLD <= 1
        assert Settings.INTENT_CACHE_TTL > 0