diff --git a/passerelle/views.py b/passerelle/views.py index 5311f770..c284b48d 100644 --- a/passerelle/views.py +++ b/passerelle/views.py @@ -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) diff --git a/tests/test_views.py b/tests/test_views.py new file mode 100644 index 00000000..b1d77140 --- /dev/null +++ b/tests/test_views.py @@ -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