From 7f1d8311bfabfe8a1cfdb5d009ae2b4228cbebb5 Mon Sep 17 00:00:00 2001 From: Erik Harding Date: Wed, 5 Jul 2023 14:42:16 +0200 Subject: [PATCH] Fix deliveryfailure get not found --- eventstore/test_views.py | 13 +++++++++++++ eventstore/views.py | 5 +++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/eventstore/test_views.py b/eventstore/test_views.py index 2a29d7b6..03a2fe07 100644 --- a/eventstore/test_views.py +++ b/eventstore/test_views.py @@ -3019,6 +3019,19 @@ def test_get_deliveryfailure_by_msisdn(self): }, ) + def test_get_deliveryfailure_by_msisdn_not_found(self): + """ + Should return 404 if there is no DeliveryFailure object found + """ + user = get_user_model().objects.create_user("test") + user.user_permissions.add( + Permission.objects.get(codename="view_deliveryfailure") + ) + self.client.force_authenticate(user) + + response = self.client.get(self.url) + self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) + def test_deliveryfailure_data_validation(self): """ The supplied data must be validated, and any errors returned diff --git a/eventstore/views.py b/eventstore/views.py index a3a3667a..f7d19ea2 100644 --- a/eventstore/views.py +++ b/eventstore/views.py @@ -615,8 +615,9 @@ class DeliveryFailureViewSet(GenericViewSet, CreateModelMixin, RetrieveModelMixi pagination_class = CursorPaginationFactory("timestamp") def get_object(self): - obj = DeliveryFailure.objects.get(contact_id=self.kwargs["pk"]) - if not obj.pk: + try: + obj = DeliveryFailure.objects.get(contact_id=self.kwargs["pk"]) + except DeliveryFailure.DoesNotExist: raise Http404() self.check_object_permissions(self.request, obj) return obj