summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentinAndre <quentin.andre@imt-atlantique.net>2021-07-09 18:29:49 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2021-09-01 12:36:46 +0200
commit5c5de8cb55e777df371b914e4f7978f19dc20dbc (patch)
tree48cbc898e075275f8e27a139de9bea06a6d3ddac
parent43cf4e8d8654916830ef81840be56467d2c5aa9a (diff)
downloadIshtar-5c5de8cb55e777df371b914e4f7978f19dc20dbc.tar.bz2
Ishtar-5c5de8cb55e777df371b914e4f7978f19dc20dbc.zip
handle pk exception
-rw-r--r--archaeological_finds/tests.py4
-rw-r--r--archaeological_finds/views.py7
2 files changed, 8 insertions, 3 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py
index ee5420ebe..004d7d6c2 100644
--- a/archaeological_finds/tests.py
+++ b/archaeological_finds/tests.py
@@ -2534,6 +2534,8 @@ class GeomaticTest(FindInit, TestCase):
# test API
find = base_find.find.all()[0]
+ response = self.client.get(reverse("api-get-geo-point", kwargs={"pk": 0}))
+ self.assertEqual(response.status_code, 404)
response = self.client.get(reverse("api-get-geo-point", kwargs={"pk": find.pk}))
self.assertEqual(response.status_code, 200)
self.assertIn(json.dumps(dic).encode("utf-8"), response.content)
@@ -2574,6 +2576,8 @@ class GeomaticTest(FindInit, TestCase):
self.assertEqual(dict_centroid, res_centroid)
# test API
+ response = self.client.get(reverse("api-get-geo-polygons", kwargs={"pk": 0}))
+ self.assertEqual(response.status_code, 404)
response = self.client.get(
reverse(
"api-get-geo-polygons",
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py
index af0c5b11d..d0ac01305 100644
--- a/archaeological_finds/views.py
+++ b/archaeological_finds/views.py
@@ -1319,8 +1319,9 @@ class PublicFindAPI(APIView):
def get_geo_items(request, pk, get_polygons, current_right=None):
- base_find = models.BaseFind.objects.get(pk=pk)
- if not base_find:
- return Http404()
+ try:
+ base_find = models.BaseFind.objects.get(pk=pk)
+ except models.BaseFind.DoesNotExist:
+ raise Http404()
dic = base_find.get_geo_items(get_polygons=get_polygons)
return HttpResponse(json.dumps(dic).encode("utf-8"))