{
"event": "PreToolUse",
"tool_name": "Write",
"tool_input": {
"file_path": "\/var\/www\/mcp-servers\/shared\/tests\/test_simple_db_connection.py",
"content": "\"\"\"Tests for simple_db_connection module.\"\"\"\n\nfrom unittest.mock import MagicMock, patch\n\nimport pytest\n\nfrom shared.infrastructure.simple_db_connection import SimpleDbConnection\n\n\nclass MockAppConfig:\n \"\"\"Mock app database configuration.\"\"\"\n\n DB_HOST = \"localhost\"\n DB_PORT = 3306\n DB_USER = \"test_user\"\n DB_PASSWORD = \"test_pass\"\n DB_NAME = \"test_db\"\n\n\nclass MockLogConfig:\n \"\"\"Mock log database configuration.\"\"\"\n\n LOG_DB_HOST = \"localhost\"\n LOG_DB_NAME = \"test_log_db\"\n LOG_DB_USER = \"log_user\"\n LOG_DB_PASSWORD = \"log_pass\"\n\n\nclass TestSimpleDbConnection:\n \"\"\"Tests for SimpleDbConnection class.\"\"\"\n\n @patch(\"shared.infrastructure.simple_db_connection.pymysql.connect\")\n def test_get_connection_uses_config(self, mock_connect: MagicMock) -> None:\n \"\"\"get_connection uses config values.\"\"\"\n mock_conn = MagicMock()\n mock_connect.return_value = mock_conn\n\n with SimpleDbConnection.get_connection(MockAppConfig) as conn:\n assert conn is mock_conn\n\n mock_connect.assert_called_once()\n call_kwargs = mock_connect.call_args.kwargs\n assert call_kwargs[\"host\"] == \"localhost\"\n assert call_kwargs[\"port\"] == 3306\n assert call_kwargs[\"user\"] == \"test_user\"\n assert call_kwargs[\"database\"] == \"test_db\"\n\n @patch(\"shared.infrastructure.simple_db_connection.pymysql.connect\")\n def test_get_connection_override_database(self, mock_connect: MagicMock) -> None:\n \"\"\"get_connection can override database name.\"\"\"\n mock_conn = MagicMock()\n mock_connect.return_value = mock_conn\n\n with SimpleDbConnection.get_connection(MockAppConfig, database=\"other_db\"):\n pass\n\n call_kwargs = mock_connect.call_args.kwargs\n assert call_kwargs[\"database\"] == \"other_db\"\n\n @patch(\"shared.infrastructure.simple_db_connection.pymysql.connect\")\n def test_get_connection_commits_on_success(self, mock_connect: MagicMock) -> None:\n \"\"\"get_connection commits on successful exit.\"\"\"\n mock_conn = MagicMock()\n mock_connect.return_value = mock_conn\n\n with SimpleDbConnection.get_connection(MockAppConfig):\n pass\n\n mock_conn.commit.assert_called_once()\n mock_conn.close.assert_called_once()\n\n @patch(\"shared.infrastructure.simple_db_connection.pymysql.connect\")\n def test_get_connection_rollback_on_error(self, mock_connect: MagicMock) -> None:\n \"\"\"get_connection rolls back on exception.\"\"\"\n mock_conn = MagicMock()\n mock_connect.return_value = mock_conn\n\n with pytest.raises(ValueError):\n with SimpleDbConnection.get_connection(MockAppConfig):\n raise ValueError(\"Test error\")\n\n mock_conn.rollback.assert_called_once()\n mock_conn.close.assert_called_once()\n\n @patch(\"shared.infrastructure.simple_db_connection.pymysql.connect\")\n def test_get_connection_autocommit(self, mock_connect: MagicMock) -> None:\n \"\"\"get_connection with autocommit=True doesn't call commit.\"\"\"\n mock_conn = MagicMock()\n mock_connect.return_value = mock_conn\n\n with SimpleDbConnection.get_connection(MockAppConfig, autocommit=True):\n pass\n\n mock_conn.commit.assert_not_called()\n\n @patch(\"shared.infrastructure.simple_db_connection.pymysql.connect\")\n def test_get_log_connection(self, mock_connect: MagicMock) -> None:\n \"\"\"get_log_connection uses log config values.\"\"\"\n mock_conn = MagicMock()\n mock_connect.return_value = mock_conn\n\n with SimpleDbConnection.get_log_connection(MockLogConfig) as conn:\n assert conn is mock_conn\n\n call_kwargs = mock_connect.call_args.kwargs\n assert call_kwargs[\"host\"] == \"localhost\"\n assert call_kwargs[\"database\"] == \"test_log_db\"\n assert call_kwargs[\"user\"] == \"log_user\"\n assert call_kwargs[\"autocommit\"] is True\n"
}
}
{
"tool_response": {
"type": "create",
"filePath": "\/var\/www\/mcp-servers\/shared\/tests\/test_simple_db_connection.py",
"content": "\"\"\"Tests for simple_db_connection module.\"\"\"\n\nfrom unittest.mock import MagicMock, patch\n\nimport pytest\n\nfrom shared.infrastructure.simple_db_connection import SimpleDbConnection\n\n\nclass MockAppConfig:\n \"\"\"Mock app database configuration.\"\"\"\n\n DB_HOST = \"localhost\"\n DB_PORT = 3306\n DB_USER = \"test_user\"\n DB_PASSWORD = \"test_pass\"\n DB_NAME = \"test_db\"\n\n\nclass MockLogConfig:\n \"\"\"Mock log database configuration.\"\"\"\n\n LOG_DB_HOST = \"localhost\"\n LOG_DB_NAME = \"test_log_db\"\n LOG_DB_USER = \"log_user\"\n LOG_DB_PASSWORD = \"log_pass\"\n\n\nclass TestSimpleDbConnection:\n \"\"\"Tests for SimpleDbConnection class.\"\"\"\n\n @patch(\"shared.infrastructure.simple_db_connection.pymysql.connect\")\n def test_get_connection_uses_config(self, mock_connect: MagicMock) -> None:\n \"\"\"get_connection uses config values.\"\"\"\n mock_conn = MagicMock()\n mock_connect.return_value = mock_conn\n\n with SimpleDbConnection.get_connection(MockAppConfig) as conn:\n assert conn is mock_conn\n\n mock_connect.assert_called_once()\n call_kwargs = mock_connect.call_args.kwargs\n assert call_kwargs[\"host\"] == \"localhost\"\n assert call_kwargs[\"port\"] == 3306\n assert call_kwargs[\"user\"] == \"test_user\"\n assert call_kwargs[\"database\"] == \"test_db\"\n\n @patch(\"shared.infrastructure.simple_db_connection.pymysql.connect\")\n def test_get_connection_override_database(self, mock_connect: MagicMock) -> None:\n \"\"\"get_connection can override database name.\"\"\"\n mock_conn = MagicMock()\n mock_connect.return_value = mock_conn\n\n with SimpleDbConnection.get_connection(MockAppConfig, database=\"other_db\"):\n pass\n\n call_kwargs = mock_connect.call_args.kwargs\n assert call_kwargs[\"database\"] == \"other_db\"\n\n @patch(\"shared.infrastructure.simple_db_connection.pymysql.connect\")\n def test_get_connection_commits_on_success(self, mock_connect: MagicMock) -> None:\n \"\"\"get_connection commits on successful exit.\"\"\"\n mock_conn = MagicMock()\n mock_connect.return_value = mock_conn\n\n with SimpleDbConnection.get_connection(MockAppConfig):\n pass\n\n mock_conn.commit.assert_called_once()\n mock_conn.close.assert_called_once()\n\n @patch(\"shared.infrastructure.simple_db_connection.pymysql.connect\")\n def test_get_connection_rollback_on_error(self, mock_connect: MagicMock) -> None:\n \"\"\"get_connection rolls back on exception.\"\"\"\n mock_conn = MagicMock()\n mock_connect.return_value = mock_conn\n\n with pytest.raises(ValueError):\n with SimpleDbConnection.get_connection(MockAppConfig):\n raise ValueError(\"Test error\")\n\n mock_conn.rollback.assert_called_once()\n mock_conn.close.assert_called_once()\n\n @patch(\"shared.infrastructure.simple_db_connection.pymysql.connect\")\n def test_get_connection_autocommit(self, mock_connect: MagicMock) -> None:\n \"\"\"get_connection with autocommit=True doesn't call commit.\"\"\"\n mock_conn = MagicMock()\n mock_connect.return_value = mock_conn\n\n with SimpleDbConnection.get_connection(MockAppConfig, autocommit=True):\n pass\n\n mock_conn.commit.assert_not_called()\n\n @patch(\"shared.infrastructure.simple_db_connection.pymysql.connect\")\n def test_get_log_connection(self, mock_connect: MagicMock) -> None:\n \"\"\"get_log_connection uses log config values.\"\"\"\n mock_conn = MagicMock()\n mock_connect.return_value = mock_conn\n\n with SimpleDbConnection.get_log_connection(MockLogConfig) as conn:\n assert conn is mock_conn\n\n call_kwargs = mock_connect.call_args.kwargs\n assert call_kwargs[\"host\"] == \"localhost\"\n assert call_kwargs[\"database\"] == \"test_log_db\"\n assert call_kwargs[\"user\"] == \"log_user\"\n assert call_kwargs[\"autocommit\"] is True\n",
"structuredPatch": [],
"originalFile": null
}
}