from unittest.mock import patch from django.db import connections from django.test import TestCase from bookmarks.views.settings import app_version class HealthViewTestCase(TestCase): def test_health_healthy(self): response = self.client.get("/health") self.assertEqual(response.status_code, 200) response_body = response.json() expected_body = {"version": app_version, "status": "healthy"} self.assertDictEqual(response_body, expected_body) def test_health_unhealhty(self): with patch.object( connections["default"], "ensure_connection" ) as mock_ensure_connection: mock_ensure_connection.side_effect = Exception("Connection error") response = self.client.get("/health") self.assertEqual(response.status_code, 500) response_body = response.json() expected_body = {"version": app_version, "status": "unhealthy"} self.assertDictEqual(response_body, expected_body)