test_config.py

Code Hygiene Score: 100

Keine Issues gefunden.

Dependencies 5

Klassen 1

Code

#!/usr/bin/env python3
"""Tests für Konfiguration"""

import sys
from pathlib import Path

import pytest

sys.path.insert(0, "/var/www/mcp-servers/mcp_db")

from dotenv import load_dotenv

load_dotenv(Path("/var/www/mcp-servers/mcp_db/.env"))

from config import Config


class TestConfig:
    """Test Konfiguration"""

    def test_allowed_databases(self):
        """Test: ALLOWED_DATABASES korrekt"""
        assert "ki_protokoll" in Config.ALLOWED_DATABASES
        assert "ki_system" in Config.ALLOWED_DATABASES
        assert "mysql" not in Config.ALLOWED_DATABASES

    def test_blocked_keywords(self):
        """Test: BLOCKED_KEYWORDS enthält kritische Keywords"""
        required_keywords = [
            "DROP",
            "DELETE",
            "INSERT",
            "UPDATE",
            "SLEEP",
            "LOAD_FILE",
        ]
        for keyword in required_keywords:
            assert keyword in Config.BLOCKED_KEYWORDS

    def test_max_query_length(self):
        """Test: MAX_QUERY_LENGTH = 2000"""
        assert Config.MAX_QUERY_LENGTH == 2000

    def test_max_rows(self):
        """Test: MAX_ROWS = 100"""
        assert Config.MAX_ROWS == 100

    def test_allowed_tables(self):
        """Test: ALLOWED_TABLES enthält wichtige Tabellen"""
        required_tables = ["mcp_log", "chunks", "protokoll"]
        for table in required_tables:
            assert table in Config.ALLOWED_TABLES


if __name__ == "__main__":
    pytest.main([__file__, "-v"])
← Übersicht Graph