diff options
author | QuentinAndre <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 |
commit | 223a5ba37e834f46b47ceb47e1550c8006357b95 (patch) | |
tree | 2ac7713faafc54acfe036a62379df6ce0b999189 /archaeological_finds | |
parent | edf18b7c4bcd4026b84e2dda67c36a041dd6402b (diff) | |
download | Ishtar-223a5ba37e834f46b47ceb47e1550c8006357b95.tar.bz2 Ishtar-223a5ba37e834f46b47ceb47e1550c8006357b95.zip |
handle pk exception
Diffstat (limited to 'archaeological_finds')
-rw-r--r-- | archaeological_finds/tests.py | 4 | ||||
-rw-r--r-- | archaeological_finds/views.py | 7 |
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")) |