36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
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},
|
|
)
|