from unittest import mock import pytest from django.db.utils import OperationalError @pytest.mark.django_db def test_health_ok(client): response = client.get("/healthz") assert response.status_code == 200 assert response.json() == {"status": "ok"} def test_health_down_when_database_unreachable(client, caplog): with mock.patch("portal.config.health.connection") as connection: connection.cursor.side_effect = OperationalError("unable to open database file") response = client.get("/healthz") assert response.status_code == 503 assert response.json() == {"status": "unavailable"} assert "unable to open" not in caplog.text