"""Tests for the Helper Connector.""" from unittest.mock import MagicMock import pytest from gridgen.connectors import helper, mysql def test_run_query() -> None: """Test run_query.""" conn = mysql.get_connection() result = helper.execute_query(conn, "SELECT 1") conn.close() assert result == ((1,),) def test_run_query_param() -> None: """Test run_query with params.""" conn = mysql.get_connection() result = helper.execute_query(conn, "SELECT %s", (5,)) conn.close() assert result == ((5,),) def test_run_query_error() -> None: """Test run_query.""" conn = mysql.get_connection() with pytest.raises(Exception) as exc: helper.execute_query(conn, "SELECT ERROR 1") assert "You have an error in your SQL syntax" in str(exc.value) conn.close() def test_run_query_close_cursor_error() -> None: """Test run_query.""" mock_cursor = MagicMock() mock_cursor.fetchall.return_value = ["test"] mock_cursor.close.side_effect = Exception("ERROR") mock_connection = MagicMock() mock_connection.cursor.return_value = mock_cursor with pytest.raises(Exception) as exc: result = helper.execute_query(mock_connection, "SELECT 1") assert result == ((1,),) assert str(exc.value) == "ERROR"