File size: 3,768 Bytes
acd8e16
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
"""
Test configuration loading and validation.
"""

import pytest
import os
import sys

# Add src to path for imports
sys.path.append('src')

from utils.config_loader import config_loader


class TestConfigLoader:
    """Test configuration loader functionality."""
    
    def test_app_config_loading(self):
        """Test that app configuration loads correctly."""
        app_config = config_loader.get_app_config()
        
        assert app_config.title is not None
        assert app_config.description is not None
        assert app_config.theme is not None
        assert app_config.server_host is not None
        assert app_config.server_port is not None
        assert isinstance(app_config.server_share, bool)
    
    def test_leaderboard_config_loading(self):
        """Test that leaderboard configuration loads correctly."""
        leaderboard_config = config_loader.get_leaderboard_config()
        
        assert leaderboard_config.path is not None
        assert isinstance(leaderboard_config.columns, list)
        assert len(leaderboard_config.columns) > 0
        assert isinstance(leaderboard_config.top_results, int)
        assert leaderboard_config.top_results > 0
    
    def test_metrics_config_loading(self):
        """Test that metrics configuration loads correctly."""
        metrics_config = config_loader.get_metrics_config()
        
        assert isinstance(metrics_config.weights, dict)
        assert len(metrics_config.weights) > 0
        assert isinstance(metrics_config.descriptions, dict)
        assert isinstance(metrics_config.thresholds, dict)
        assert isinstance(metrics_config.formatting, dict)
        
        # Check that weights sum to approximately 1.0
        total_weight = sum(metrics_config.weights.values())
        assert abs(total_weight - 1.0) < 0.01
    
    def test_prompts_config_loading(self):
        """Test that prompts configuration loads correctly."""
        prompts_config = config_loader.get_prompts_config()
        
        assert isinstance(prompts_config.files, dict)
        assert isinstance(prompts_config.fallback, str)
        assert len(prompts_config.fallback) > 0
        assert isinstance(prompts_config.placeholders, dict)
        assert isinstance(prompts_config.sections, dict)
    
    def test_dialects_loading(self):
        """Test that dialects are loaded correctly."""
        dialects = config_loader.get_dialects()
        
        assert isinstance(dialects, list)
        assert len(dialects) > 0
        assert "presto" in dialects
        assert "bigquery" in dialects
        assert "snowflake" in dialects
    
    def test_ui_config_loading(self):
        """Test that UI configuration loads correctly."""
        ui_config = config_loader.get_ui_config()
        
        assert isinstance(ui_config, dict)
        assert "tabs" in ui_config
        assert "buttons" in ui_config
        assert "inputs" in ui_config
        assert "outputs" in ui_config
    
    def test_environment_config_loading(self):
        """Test that environment configuration loads correctly."""
        env_config = config_loader.get_environment_config()
        
        assert isinstance(env_config, dict)
        assert "mock_mode_env" in env_config
        assert "hf_token_env" in env_config
        assert "mock_mode_default" in env_config
    
    def test_mock_sql_config_loading(self):
        """Test that mock SQL configuration loads correctly."""
        mock_config = config_loader.get_mock_sql_config()
        
        assert isinstance(mock_config, dict)
        assert "patterns" in mock_config
        assert "templates" in mock_config
        assert isinstance(mock_config["patterns"], dict)
        assert isinstance(mock_config["templates"], dict)