"""Tests for Healthcheck model.""" from unittest.mock import Mock from contracts.models import healthcheck def test_db_status_success(monkeypatch): """Assert that database heartbeat returns expected response.""" rs_mock = Mock(fetchone=Mock(return_value=['hello'])) session_mock = Mock(execute=Mock(return_value=rs_mock)) sql_session_context_mock = Mock( __exit__=Mock(), __enter__=Mock(return_value=session_mock) ) monkeypatch.setattr( healthcheck.mysql, 'db_session', Mock(return_value=sql_session_context_mock) ) success_response = healthcheck.check_db() assert session_mock.execute.called assert rs_mock.fetchone.called assert success_response is True def test_db_status_error(monkeypatch): """Test db status with error.""" session_mock = Mock(execute=Mock(side_effect=Exception('uhoh...'))) sql_session_context_mock = Mock( __exit__=Mock(), __enter__=Mock(return_value=session_mock) ) monkeypatch.setattr( healthcheck.mysql, 'db_session', Mock(return_value=sql_session_context_mock) ) error_response = healthcheck.check_db() assert session_mock.execute.called assert error_response is False