Protokoll #27914

ID27914
Zeitstempel2025-12-28 12:33:15.347021
Clientroot
IP145.224.72.140
Modellclaude-sonnet-4-20250514
Statuscompleted
Tokens1,078 (Input: 76, Output: 1,002)
Dauer93 ms
Request-Zeit2025-12-28 12:33:15.347021
Response-Zeit2025-12-28 12:33:15.440373

Request

{
    "event": "PreToolUse",
    "tool_name": "Edit",
    "tool_input": {
        "file_path": "\/var\/www\/mcp-servers\/shared\/tests\/test_protokoll_logger.py",
        "old_string": "from datetime import datetime\nfrom unittest.mock import MagicMock, patch\n\nimport pytest",
        "new_string": "from datetime import datetime\n\nimport pytest"
    }
}

Response

{
    "tool_response": {
        "filePath": "\/var\/www\/mcp-servers\/shared\/tests\/test_protokoll_logger.py",
        "oldString": "from datetime import datetime\nfrom unittest.mock import MagicMock, patch\n\nimport pytest",
        "newString": "from datetime import datetime\n\nimport pytest",
        "originalFile": "\"\"\"Tests for protokoll_logger module.\"\"\"\n\nfrom datetime import datetime\nfrom unittest.mock import MagicMock, patch\n\nimport pytest\n\nfrom shared.domain.log_entry import LogEntry\nfrom shared.infrastructure.protokoll_logger import (\n    ProtokollLogger,\n    clear_logger_registry,\n    get_logger,\n)\n\n\nclass MockConfig:\n    \"\"\"Mock configuration for testing.\"\"\"\n\n    LOG_DB_HOST = \"localhost\"\n    LOG_DB_NAME = \"test_db\"\n    LOG_DB_USER = \"test_user\"\n    LOG_DB_PASSWORD = \"test_pass\"\n\n\nclass TestProtokollLogger:\n    \"\"\"Tests for ProtokollLogger class.\"\"\"\n\n    def setup_method(self) -> None:\n        \"\"\"Reset registry before each test.\"\"\"\n        clear_logger_registry()\n\n    def test_create_logger(self) -> None:\n        \"\"\"Can create a ProtokollLogger.\"\"\"\n        logger = ProtokollLogger(\"test_client\", MockConfig)\n        assert logger.client_name == \"test_client\"\n\n    def test_format_request_with_tool(self) -> None:\n        \"\"\"Format request includes tool name.\"\"\"\n        logger = ProtokollLogger(\"test\", MockConfig)\n        entry = LogEntry(\n            timestamp=datetime.now(),\n            client_name=\"test\",\n            request=\"SELECT * FROM users\",\n            status=\"success\",\n            duration_ms=50,\n            tool_name=\"db_select\",\n        )\n        result = logger._format_request(entry)\n        assert \"[db_select]\" in result\n        assert \"SELECT * FROM users\" in result\n\n    def test_format_request_with_context_id(self) -> None:\n        \"\"\"Format request includes context ID.\"\"\"\n        logger = ProtokollLogger(\"test\", MockConfig)\n        entry = LogEntry(\n            timestamp=datetime.now(),\n            client_name=\"test\",\n            request=\"Update task\",\n            status=\"success\",\n            duration_ms=50,\n            context_id=42,\n        )\n        result = logger._format_request(entry)\n        assert \"id=42\" in result\n\n\nclass TestLoggerRegistry:\n    \"\"\"Tests for logger registry functions.\"\"\"\n\n    def setup_method(self) -> None:\n        \"\"\"Reset registry before each test.\"\"\"\n        clear_logger_registry()\n\n    def test_get_logger_creates_singleton(self) -> None:\n        \"\"\"get_logger returns same instance for same client.\"\"\"\n        logger1 = get_logger(\"client_a\", MockConfig)\n        logger2 = get_logger(\"client_a\", MockConfig)\n        assert logger1 is logger2\n\n    def test_get_logger_different_clients(self) -> None:\n        \"\"\"get_logger returns different instances for different clients.\"\"\"\n        logger1 = get_logger(\"client_a\", MockConfig)\n        logger2 = get_logger(\"client_b\", MockConfig)\n        assert logger1 is not logger2\n\n    def test_clear_registry(self) -> None:\n        \"\"\"clear_logger_registry removes all instances.\"\"\"\n        logger1 = get_logger(\"client_a\", MockConfig)\n        clear_logger_registry()\n        logger2 = get_logger(\"client_a\", MockConfig)\n        assert logger1 is not logger2\n\n    def test_isolated_tests(self) -> None:\n        \"\"\"Tests are isolated via clear_logger_registry.\"\"\"\n        # This test demonstrates test isolation\n        logger = get_logger(\"isolated_test\", MockConfig)\n        assert logger.client_name == \"isolated_test\"\n        # Next test will start fresh due to setup_method\n",
        "structuredPatch": [
            {
                "oldStart": 1,
                "oldLines": 7,
                "newStart": 1,
                "newLines": 6,
                "lines": [
                    " \"\"\"Tests for protokoll_logger module.\"\"\"",
                    " ",
                    " from datetime import datetime",
                    "-from unittest.mock import MagicMock, patch",
                    " ",
                    " import pytest",
                    " "
                ]
            }
        ],
        "userModified": false,
        "replaceAll": false
    }
}
← Vorheriger Zur Liste Nächster →