Loading src/jama/tests.py +24 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ from tempfile import TemporaryDirectory from unittest.mock import patch from django.contrib.auth.models import User from django.db import connection from django.db import DatabaseError, connection from django.http import Http404 from django.test import ( Client, Loading @@ -24,6 +24,7 @@ from jama.admin_services import cache as cache_services from jama.admin_services import config as config_services from jama.admin_services import tasks as task_services from jama import settings as jama_settings from jama import views as jama_views from annotations.models import Annotation from jama.iiif import serialize_jama_collection from jama.views import ( Loading Loading @@ -751,6 +752,28 @@ class ApiKeyCsrfMiddlewareTestCase(TestCase): self.assertEqual(response.status_code, 403) class HealthStatusViewTestCase(TestCase): def test_status_returns_ok_when_database_is_available(self): response = self.client.get("/status") self.assertEqual(response.status_code, 200) self.assertEqual(response.content, b"ok") def test_status_returns_service_unavailable_on_database_error(self): with patch("jama.views.User.objects.first", side_effect=DatabaseError): response = self.client.get("/status") self.assertEqual(response.status_code, 503) self.assertEqual(response.content, b"ko") def test_status_does_not_hide_unexpected_errors(self): with ( patch("jama.views.User.objects.first", side_effect=RuntimeError), self.assertRaises(RuntimeError), ): jama_views.status(RequestFactory().get("/status")) class IiifSerializationTestCase(TestCase): def setUp(self): self.factory = RequestFactory() Loading src/jama/views.py +3 −3 Original line number Diff line number Diff line from django.http import HttpResponse, HttpRequest from django.shortcuts import render, get_object_or_404, redirect, Http404 from django.db import DatabaseError from jama import settings from django.contrib.auth.models import User from resources.models import Resource, Collection, File, Project Loading Loading @@ -55,11 +56,10 @@ def homepage(request: HttpRequest) -> HttpResponse: def status(request: HttpRequest) -> HttpResponse: # testing database connection try: User.objects.first() except: # noqa: E722 return HttpResponse("ko") except DatabaseError: return HttpResponse("ko", status=503) return HttpResponse("ok") Loading Loading
src/jama/tests.py +24 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ from tempfile import TemporaryDirectory from unittest.mock import patch from django.contrib.auth.models import User from django.db import connection from django.db import DatabaseError, connection from django.http import Http404 from django.test import ( Client, Loading @@ -24,6 +24,7 @@ from jama.admin_services import cache as cache_services from jama.admin_services import config as config_services from jama.admin_services import tasks as task_services from jama import settings as jama_settings from jama import views as jama_views from annotations.models import Annotation from jama.iiif import serialize_jama_collection from jama.views import ( Loading Loading @@ -751,6 +752,28 @@ class ApiKeyCsrfMiddlewareTestCase(TestCase): self.assertEqual(response.status_code, 403) class HealthStatusViewTestCase(TestCase): def test_status_returns_ok_when_database_is_available(self): response = self.client.get("/status") self.assertEqual(response.status_code, 200) self.assertEqual(response.content, b"ok") def test_status_returns_service_unavailable_on_database_error(self): with patch("jama.views.User.objects.first", side_effect=DatabaseError): response = self.client.get("/status") self.assertEqual(response.status_code, 503) self.assertEqual(response.content, b"ko") def test_status_does_not_hide_unexpected_errors(self): with ( patch("jama.views.User.objects.first", side_effect=RuntimeError), self.assertRaises(RuntimeError), ): jama_views.status(RequestFactory().get("/status")) class IiifSerializationTestCase(TestCase): def setUp(self): self.factory = RequestFactory() Loading
src/jama/views.py +3 −3 Original line number Diff line number Diff line from django.http import HttpResponse, HttpRequest from django.shortcuts import render, get_object_or_404, redirect, Http404 from django.db import DatabaseError from jama import settings from django.contrib.auth.models import User from resources.models import Resource, Collection, File, Project Loading Loading @@ -55,11 +56,10 @@ def homepage(request: HttpRequest) -> HttpResponse: def status(request: HttpRequest) -> HttpResponse: # testing database connection try: User.objects.first() except: # noqa: E722 return HttpResponse("ko") except DatabaseError: return HttpResponse("ko", status=503) return HttpResponse("ok") Loading