diff options
author | QuentinAndre <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 |
commit | 5c5de8cb55e777df371b914e4f7978f19dc20dbc (patch) | |
tree | 48cbc898e075275f8e27a139de9bea06a6d3ddac | |
parent | 43cf4e8d8654916830ef81840be56467d2c5aa9a (diff) | |
download | Ishtar-5c5de8cb55e777df371b914e4f7978f19dc20dbc.tar.bz2 Ishtar-5c5de8cb55e777df371b914e4f7978f19dc20dbc.zip |
handle pk exception
-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 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")) |