summaryrefslogtreecommitdiff
path: root/archaeological_finds
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-11-16 17:04:41 +0100
commit223a5ba37e834f46b47ceb47e1550c8006357b95 (patch)
tree2ac7713faafc54acfe036a62379df6ce0b999189 /archaeological_finds
parentedf18b7c4bcd4026b84e2dda67c36a041dd6402b (diff)
downloadIshtar-223a5ba37e834f46b47ceb47e1550c8006357b95.tar.bz2
Ishtar-223a5ba37e834f46b47ceb47e1550c8006357b95.zip
handle pk exception
Diffstat (limited to 'archaeological_finds')
-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 03ad0314e..ae8540f85 100644
--- a/archaeological_finds/tests.py
+++ b/archaeological_finds/tests.py
@@ -2552,6 +2552,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)
@@ -2592,6 +2594,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"))