{
"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"
}
}
{
"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
}
}