test_logging.py

Code Hygiene Score: 100

Keine Issues gefunden.

Dependencies 4

Klassen 1

Code

#!/usr/bin/env python3
"""Tests für Logging-Funktionalität"""

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


class TestLogging:
    """Test Logging-Funktionalität"""

    def test_success_log(self, logger, test_log_entry, ki_protokoll_connection):
        """Test: Success Log schreiben"""
        logger.log(test_log_entry)

        # Prüfe ob Log geschrieben wurde
        cursor = ki_protokoll_connection.cursor(dictionary=True)
        cursor.execute(
            "SELECT * FROM mcp_log WHERE request LIKE 'TEST:%' ORDER BY timestamp DESC LIMIT 1"
        )
        log = cursor.fetchone()
        cursor.close()

        assert log is not None
        assert log["status"] == "success"

    def test_denied_log(self, logger, test_denied_log_entry, ki_protokoll_connection):
        """Test: Denied Log schreiben"""
        logger.log(test_denied_log_entry)

        # Prüfe ob Log geschrieben wurde
        cursor = ki_protokoll_connection.cursor(dictionary=True)
        cursor.execute(
            "SELECT * FROM mcp_log WHERE request LIKE 'TEST: DROP%' ORDER BY timestamp DESC LIMIT 1"
        )
        log = cursor.fetchone()
        cursor.close()

        assert log is not None
        assert log["status"] == "denied"
        assert "DROP" in (log["error_message"] or "")

    def test_error_log(self, logger, test_error_log_entry, ki_protokoll_connection):
        """Test: Error Log schreiben"""
        logger.log(test_error_log_entry)

        # Prüfe ob Log geschrieben wurde
        cursor = ki_protokoll_connection.cursor(dictionary=True)
        cursor.execute(
            "SELECT * FROM mcp_log WHERE request LIKE 'TEST: SELECT * FROM nonexistent%' ORDER BY timestamp DESC LIMIT 1"
        )
        log = cursor.fetchone()
        cursor.close()

        assert log is not None
        assert log["status"] == "error"
        assert log["error_message"] is not None


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