"""Tests for mysql module.""" from unittest.mock import Mock import pytest from sqlalchemy import exc from store.connectors import mysql def test_session_commit(mocker: Mock) -> None: """Test _db_session when query exec is success.""" mock = mocker.patch.object(mysql, "_db_session") with mysql.db_session(): pass session = mock.return_value assert session.commit.called assert session.close.called def test_session_rollback(mocker: Mock) -> None: """Check session context manager rollbacks transaction in exception.""" mock = mocker.patch.object(mysql, "_db_session") with pytest.raises(exc.SQLAlchemyError): with mysql.db_session(): raise exc.SQLAlchemyError() session = mock.return_value assert session.rollback.called assert session.close.called