misc: return HTTP 404 instead of 500 for GET requests on nonexistant connectors (#67414)

This commit is contained in:
Agate 2022-07-18 15:39:45 +02:00
parent ed9a4a2986
commit b50e16a79b
2 changed files with 11 additions and 2 deletions

View File

@ -33,7 +33,7 @@ from django.core.exceptions import PermissionDenied
from django.db import transaction
from django.db.models import Q
from django.http import Http404, HttpResponse, HttpResponseRedirect
from django.shortcuts import resolve_url
from django.shortcuts import get_object_or_404, resolve_url
from django.urls import reverse
from django.utils.encoding import force_bytes, force_text
from django.utils.timezone import is_naive, make_aware
@ -238,7 +238,7 @@ class GenericViewLogsConnectorView(GenericConnectorMixin, ListView):
return context
def get_object(self):
return self.model.objects.get(slug=self.kwargs['slug'])
return get_object_or_404(self.model.objects.all(), slug=self.kwargs['slug'])
def get_queryset(self):
self.form = ResourceLogSearchForm(data=self.request.GET)

9
tests/test_views.py Normal file
View File

@ -0,0 +1,9 @@
from tests.test_manager import login
def test_get_does_not_crash_on_unknown_connector(app, db, admin_user):
app = login(app)
resp = app.get('/manage/opengis/noop/logs/', status="*")
assert resp.status_code == 404