from unittest.mock import MagicMock, Mock from test_config import settings from lai_automation.database import FailureRepository def test_heartbeat_refreshes_only_an_active_claim() -> None: repository = FailureRepository(settings()) connection = MagicMock() cursor = MagicMock() repository.connection = MagicMock() repository.connection.return_value.__enter__.return_value = connection connection.cursor.return_value.__enter__.return_value = cursor repository.heartbeat(17) statement, parameters = cursor.execute.call_args.args assert "SET updated_at = NOW()" in statement assert "status = 'agent_running'" in statement assert parameters == (17,) connection.commit.assert_called_once() def test_complete_clears_previous_agent_error() -> None: repository = FailureRepository(settings()) repository._finish = Mock() repository.complete(17, {"classification": "already_fixed"}) repository._finish.assert_called_once_with( 17, "resolved", {"classification": "already_fixed", "agent_error": None}, )