""" 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)