From 5144d86353c0088584088991ed5621bbbb6df280 Mon Sep 17 00:00:00 2001 From: srucker01 Date: Wed, 3 Nov 2021 00:02:45 +0000 Subject: [PATCH 01/11] delete endpoint --- .../api/views/user/workflows/engagement_detail.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/django_workflow_system/api/views/user/workflows/engagement_detail.py b/django_workflow_system/api/views/user/workflows/engagement_detail.py index 3ccf06f..f4dfacc 100644 --- a/django_workflow_system/api/views/user/workflows/engagement_detail.py +++ b/django_workflow_system/api/views/user/workflows/engagement_detail.py @@ -375,3 +375,11 @@ def patch(self, request, engagement_id, id): data["state"]["proceed"] = True return Response(data=data, status=status.HTTP_200_OK) + + def delete(self, request, engagement_id, id): + engagement_details = WorkflowCollectionEngagementDetail.objects.filter( + workflow_collection_engagement=engagement_id, + workflow_collection_engagement__user=request.user, + ) + engagement_details.delete() + return Response(status=status.HTTP_204_NO_CONTENT) From 3beef8d9088e3e22dd4eabae9ba8c3cca49f30cd Mon Sep 17 00:00:00 2001 From: srucker01 Date: Wed, 3 Nov 2021 12:58:27 +0000 Subject: [PATCH 02/11] add doc string --- .../api/views/user/workflows/engagement_detail.py | 1 + 1 file changed, 1 insertion(+) diff --git a/django_workflow_system/api/views/user/workflows/engagement_detail.py b/django_workflow_system/api/views/user/workflows/engagement_detail.py index f4dfacc..2a4ed6b 100644 --- a/django_workflow_system/api/views/user/workflows/engagement_detail.py +++ b/django_workflow_system/api/views/user/workflows/engagement_detail.py @@ -377,6 +377,7 @@ def patch(self, request, engagement_id, id): return Response(data=data, status=status.HTTP_200_OK) def delete(self, request, engagement_id, id): + """Delete enagement details for current user.""" engagement_details = WorkflowCollectionEngagementDetail.objects.filter( workflow_collection_engagement=engagement_id, workflow_collection_engagement__user=request.user, From 0c2a6779e514d8e96b2d9a677400938bce247777 Mon Sep 17 00:00:00 2001 From: srucker01 Date: Wed, 3 Nov 2021 14:24:37 +0000 Subject: [PATCH 03/11] Add test and pr request --- .../user/workflows/test_engagement_detail.py | 32 +++++++++++++++++++ .../views/user/workflows/engagement_detail.py | 5 +-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py b/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py index c54f0ce..bbd99a9 100644 --- a/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py +++ b/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py @@ -1393,3 +1393,35 @@ def test_patch__valid_payload_with_schema_existing_response_fails(self): request, my_workflow_engagement.id, my_workflow_engagement_detail.id ) self.assertEqual(response.status_code, 400) + + def test_get__user_has_engagement_details_delete(self): + """Delete engagement details for the requesting user.""" + request = self.factory.get( + f"/users/self/workflows/engagements/{self.user_with_activity_engagement__engagement.id}/details/" + ) + request.user = self.user_with_activity_engagement + response = self.view(request, self.user_with_activity_engagement__engagement.id) + + self.assertEqual(response.status_code, 200) + + for result in response.data: + self.assertCountEqual( + list(result.keys()), + ["detail", "step", "user_responses", "started", "finished"], + ) + self.assertEqual( + result["detail"], + f"http://testserver/api/workflow_system/users/self/workflows/engagements/" + f"{self.user_with_activity_engagement__engagement.id}/details/" + f"{self.user_with_activity_engagement__detail.id}/", + ) + + request = self.factory.delete( + f"http://testserver/api/workflow_system/users/self/workflows/engagements/" + f"{self.user_with_activity_engagement__engagement.id}/details/" + f"{self.user_with_activity_engagement__detail.id}/" + ) + + response = self.view(request, self.user_with_activity_engagement__engagement.id) + + self.assertFalse(response.data["detail"]) diff --git a/django_workflow_system/api/views/user/workflows/engagement_detail.py b/django_workflow_system/api/views/user/workflows/engagement_detail.py index 2a4ed6b..34d7abb 100644 --- a/django_workflow_system/api/views/user/workflows/engagement_detail.py +++ b/django_workflow_system/api/views/user/workflows/engagement_detail.py @@ -378,9 +378,10 @@ def patch(self, request, engagement_id, id): def delete(self, request, engagement_id, id): """Delete enagement details for current user.""" - engagement_details = WorkflowCollectionEngagementDetail.objects.filter( + engagement_detail = WorkflowCollectionEngagementDetail.objects.get( + id=id, workflow_collection_engagement=engagement_id, workflow_collection_engagement__user=request.user, ) - engagement_details.delete() + engagement_detail.delete() return Response(status=status.HTTP_204_NO_CONTENT) From d3d4863a278c5b3858b221dc9fe57d2ec87f6ee0 Mon Sep 17 00:00:00 2001 From: srucker01 Date: Wed, 3 Nov 2021 14:29:46 +0000 Subject: [PATCH 04/11] add comment --- .../api/views/user/workflows/engagement_detail.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/django_workflow_system/api/views/user/workflows/engagement_detail.py b/django_workflow_system/api/views/user/workflows/engagement_detail.py index 34d7abb..0d4cf32 100644 --- a/django_workflow_system/api/views/user/workflows/engagement_detail.py +++ b/django_workflow_system/api/views/user/workflows/engagement_detail.py @@ -30,6 +30,8 @@ class WorkflowCollectionEngagementDetailsView(APIView): for a given WorkflowEngagement belonging to the requesting user. * Post: Create a new WorkflowCollectionEngagementDetail resource for a given WorkflowEngagement on behalf of the requesting user. + * Delete: Deletes a WorkflowCollectionEngagementDetail resource for a + given WorkflowEngagement on behalf of the requesting user. """ required_scopes = ["read", "write"] From 5669d7c66d0cb82b4753e775723b4e4fedf9e9f3 Mon Sep 17 00:00:00 2001 From: srucker01 Date: Wed, 3 Nov 2021 14:32:01 +0000 Subject: [PATCH 05/11] Update comment --- .../api/views/user/workflows/engagement_detail.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_workflow_system/api/views/user/workflows/engagement_detail.py b/django_workflow_system/api/views/user/workflows/engagement_detail.py index 0d4cf32..752d72f 100644 --- a/django_workflow_system/api/views/user/workflows/engagement_detail.py +++ b/django_workflow_system/api/views/user/workflows/engagement_detail.py @@ -379,7 +379,7 @@ def patch(self, request, engagement_id, id): return Response(data=data, status=status.HTTP_200_OK) def delete(self, request, engagement_id, id): - """Delete enagement details for current user.""" + """Delete a WorkflowCollectionEngagementDetail associated with a given WorkflowEngagement for current user.""" engagement_detail = WorkflowCollectionEngagementDetail.objects.get( id=id, workflow_collection_engagement=engagement_id, From 8127f00b587c4f69ad4602001e9966bdb1f79fd1 Mon Sep 17 00:00:00 2001 From: srucker01 Date: Wed, 3 Nov 2021 15:13:52 +0000 Subject: [PATCH 06/11] Pr changes --- .../user/workflows/test_engagement_detail.py | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py b/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py index bbd99a9..2dedfed 100644 --- a/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py +++ b/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py @@ -1403,18 +1403,14 @@ def test_get__user_has_engagement_details_delete(self): response = self.view(request, self.user_with_activity_engagement__engagement.id) self.assertEqual(response.status_code, 200) + self.assertEqual(response.data["detail"].length(), 1) - for result in response.data: - self.assertCountEqual( - list(result.keys()), - ["detail", "step", "user_responses", "started", "finished"], - ) - self.assertEqual( - result["detail"], - f"http://testserver/api/workflow_system/users/self/workflows/engagements/" - f"{self.user_with_activity_engagement__engagement.id}/details/" - f"{self.user_with_activity_engagement__detail.id}/", - ) + self.assertEqual( + response.data["detail"], + f"http://testserver/api/workflow_system/users/self/workflows/engagements/" + f"{self.user_with_activity_engagement__engagement.id}/details/" + f"{self.user_with_activity_engagement__detail.id}/", + ) request = self.factory.delete( f"http://testserver/api/workflow_system/users/self/workflows/engagements/" @@ -1422,6 +1418,11 @@ def test_get__user_has_engagement_details_delete(self): f"{self.user_with_activity_engagement__detail.id}/" ) + request = self.factory.get( + f"/users/self/workflows/engagements/{self.user_with_activity_engagement__engagement.id}/details/" + ) + response = self.view(request, self.user_with_activity_engagement__engagement.id) - self.assertFalse(response.data["detail"]) + self.assertEqual(response.data["detail"].length(), 0) + self.assertEqual(response.status_code, 204) From cc90d3466bde62e8bd7f37a1fce135e2bb245eb5 Mon Sep 17 00:00:00 2001 From: srucker01 Date: Thu, 4 Nov 2021 12:52:45 +0000 Subject: [PATCH 07/11] test delete --- .../user/workflows/test_engagement_detail.py | 69 ++++++++++--------- 1 file changed, 36 insertions(+), 33 deletions(-) diff --git a/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py b/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py index 2dedfed..9ece9ef 100644 --- a/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py +++ b/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py @@ -134,6 +134,42 @@ def test_get__user_has_engagement_details(self): self.user_with_activity_engagement__detail.started, ) + def test_get__user_has_engagement_detail_delete(self): + """Delete engagement details for the requesting user.""" + request = self.factory.get( + f"/users/self/workflows/engagements/{self.user_with_activity_engagement__engagement.id}/details/" + f"{self.user_with_activity_engagement__detail.id}/" + ) + + request.user = self.user_with_activity_engagement + response = self.view(request, self.user_with_activity_engagement__engagement.id) + + self.assertEqual(response.status_code, 200) + # self.assertEqual(response.data[0]["detail"].length(), 1) + + self.assertEqual( + response.data[0]["detail"], + f"http://testserver/api/workflow_system/users/self/workflows/engagements/" + f"{self.user_with_activity_engagement__engagement.id}/details/" + f"{self.user_with_activity_engagement__detail.id}/", + ) + + request = self.factory.delete( + f"http://testserver/api/workflow_system/users/self/workflows/engagements/" + f"{self.user_with_activity_engagement__engagement.id}/details/" + f"{self.user_with_activity_engagement__detail.id}/" + ) + + request = self.factory.get( + f"/users/self/workflows/engagements/{self.user_with_activity_engagement__engagement.id}/details/" + f"{self.user_with_activity_engagement__detail.id}/" + ) + + request.user = self.user_with_activity_engagement + response = self.view(request, self.user_with_activity_engagement__engagement.id) + # self.assertEqual(response.data["detail"].length(), 0) + self.assertEqual(response.status_code, 204) + def test_post__incomplete_payload(self): """Incomplete JSON payload returns a 400 error.""" user = UserFactory() @@ -1393,36 +1429,3 @@ def test_patch__valid_payload_with_schema_existing_response_fails(self): request, my_workflow_engagement.id, my_workflow_engagement_detail.id ) self.assertEqual(response.status_code, 400) - - def test_get__user_has_engagement_details_delete(self): - """Delete engagement details for the requesting user.""" - request = self.factory.get( - f"/users/self/workflows/engagements/{self.user_with_activity_engagement__engagement.id}/details/" - ) - request.user = self.user_with_activity_engagement - response = self.view(request, self.user_with_activity_engagement__engagement.id) - - self.assertEqual(response.status_code, 200) - self.assertEqual(response.data["detail"].length(), 1) - - self.assertEqual( - response.data["detail"], - f"http://testserver/api/workflow_system/users/self/workflows/engagements/" - f"{self.user_with_activity_engagement__engagement.id}/details/" - f"{self.user_with_activity_engagement__detail.id}/", - ) - - request = self.factory.delete( - f"http://testserver/api/workflow_system/users/self/workflows/engagements/" - f"{self.user_with_activity_engagement__engagement.id}/details/" - f"{self.user_with_activity_engagement__detail.id}/" - ) - - request = self.factory.get( - f"/users/self/workflows/engagements/{self.user_with_activity_engagement__engagement.id}/details/" - ) - - response = self.view(request, self.user_with_activity_engagement__engagement.id) - - self.assertEqual(response.data["detail"].length(), 0) - self.assertEqual(response.status_code, 204) From e0f55d2c529ddbc51e4e13861cb3e95f2deafc44 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 4 Nov 2021 14:13:28 +0000 Subject: [PATCH 08/11] Update docstring. --- .../api/tests/views/user/workflows/test_engagement_detail.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py b/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py index bbd99a9..91928e6 100644 --- a/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py +++ b/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py @@ -1395,7 +1395,8 @@ def test_patch__valid_payload_with_schema_existing_response_fails(self): self.assertEqual(response.status_code, 400) def test_get__user_has_engagement_details_delete(self): - """Delete engagement details for the requesting user.""" + """A user can delete their own engagement details.""" + request = self.factory.get( f"/users/self/workflows/engagements/{self.user_with_activity_engagement__engagement.id}/details/" ) From e3f7726473f1e116d50c1360d71dfae084d783fc Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 4 Nov 2021 14:21:28 +0000 Subject: [PATCH 09/11] Move misplaced comment. --- .../api/views/user/workflows/engagement_detail.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/django_workflow_system/api/views/user/workflows/engagement_detail.py b/django_workflow_system/api/views/user/workflows/engagement_detail.py index 752d72f..a844965 100644 --- a/django_workflow_system/api/views/user/workflows/engagement_detail.py +++ b/django_workflow_system/api/views/user/workflows/engagement_detail.py @@ -30,8 +30,6 @@ class WorkflowCollectionEngagementDetailsView(APIView): for a given WorkflowEngagement belonging to the requesting user. * Post: Create a new WorkflowCollectionEngagementDetail resource for a given WorkflowEngagement on behalf of the requesting user. - * Delete: Deletes a WorkflowCollectionEngagementDetail resource for a - given WorkflowEngagement on behalf of the requesting user. """ required_scopes = ["read", "write"] @@ -207,6 +205,9 @@ class WorkflowCollectionEngagementDetailView(APIView): * Patch: Update a specific WorkflowCollectionEngagementDetail resource associated with a given WorkflowEngagement and belonging to the requesting user. + + * Delete: Deletes a WorkflowCollectionEngagementDetail resource for a + given WorkflowEngagement on behalf of the requesting user. """ required_scopes = ["read", "write"] @@ -379,7 +380,7 @@ def patch(self, request, engagement_id, id): return Response(data=data, status=status.HTTP_200_OK) def delete(self, request, engagement_id, id): - """Delete a WorkflowCollectionEngagementDetail associated with a given WorkflowEngagement for current user.""" + """Delete a WorkflowCollectionEngagementDetail associated with a given WorkflowEngagement for current user.""" engagement_detail = WorkflowCollectionEngagementDetail.objects.get( id=id, workflow_collection_engagement=engagement_id, From 8c78bcfa6112b3efcb6e558f65db2d8860da68f0 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 4 Nov 2021 14:23:08 +0000 Subject: [PATCH 10/11] Relocate unit test from incorrect class. --- .../user/workflows/test_engagement_detail.py | 71 +++++-------------- 1 file changed, 19 insertions(+), 52 deletions(-) diff --git a/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py b/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py index f2c46a5..f918666 100644 --- a/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py +++ b/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py @@ -134,42 +134,6 @@ def test_get__user_has_engagement_details(self): self.user_with_activity_engagement__detail.started, ) - def test_get__user_has_engagement_detail_delete(self): - """Delete engagement details for the requesting user.""" - request = self.factory.get( - f"/users/self/workflows/engagements/{self.user_with_activity_engagement__engagement.id}/details/" - f"{self.user_with_activity_engagement__detail.id}/" - ) - - request.user = self.user_with_activity_engagement - response = self.view(request, self.user_with_activity_engagement__engagement.id) - - self.assertEqual(response.status_code, 200) - # self.assertEqual(response.data[0]["detail"].length(), 1) - - self.assertEqual( - response.data[0]["detail"], - f"http://testserver/api/workflow_system/users/self/workflows/engagements/" - f"{self.user_with_activity_engagement__engagement.id}/details/" - f"{self.user_with_activity_engagement__detail.id}/", - ) - - request = self.factory.delete( - f"http://testserver/api/workflow_system/users/self/workflows/engagements/" - f"{self.user_with_activity_engagement__engagement.id}/details/" - f"{self.user_with_activity_engagement__detail.id}/" - ) - - request = self.factory.get( - f"/users/self/workflows/engagements/{self.user_with_activity_engagement__engagement.id}/details/" - f"{self.user_with_activity_engagement__detail.id}/" - ) - - request.user = self.user_with_activity_engagement - response = self.view(request, self.user_with_activity_engagement__engagement.id) - # self.assertEqual(response.data["detail"].length(), 0) - self.assertEqual(response.status_code, 204) - def test_post__incomplete_payload(self): """Incomplete JSON payload returns a 400 error.""" user = UserFactory() @@ -1430,28 +1394,25 @@ def test_patch__valid_payload_with_schema_existing_response_fails(self): ) self.assertEqual(response.status_code, 400) - def test_get__user_has_engagement_details_delete(self): - """A user can delete their own engagement details.""" - + def test_get__user_has_engagement_detail_delete(self): + """Delete engagement details for the requesting user.""" request = self.factory.get( f"/users/self/workflows/engagements/{self.user_with_activity_engagement__engagement.id}/details/" + f"{self.user_with_activity_engagement__detail.id}/" ) + request.user = self.user_with_activity_engagement response = self.view(request, self.user_with_activity_engagement__engagement.id) self.assertEqual(response.status_code, 200) + # self.assertEqual(response.data[0]["detail"].length(), 1) - for result in response.data: - self.assertCountEqual( - list(result.keys()), - ["detail", "step", "user_responses", "started", "finished"], - ) - self.assertEqual( - result["detail"], - f"http://testserver/api/workflow_system/users/self/workflows/engagements/" - f"{self.user_with_activity_engagement__engagement.id}/details/" - f"{self.user_with_activity_engagement__detail.id}/", - ) + self.assertEqual( + response.data[0]["detail"], + f"http://testserver/api/workflow_system/users/self/workflows/engagements/" + f"{self.user_with_activity_engagement__engagement.id}/details/" + f"{self.user_with_activity_engagement__detail.id}/", + ) request = self.factory.delete( f"http://testserver/api/workflow_system/users/self/workflows/engagements/" @@ -1459,6 +1420,12 @@ def test_get__user_has_engagement_details_delete(self): f"{self.user_with_activity_engagement__detail.id}/" ) - response = self.view(request, self.user_with_activity_engagement__engagement.id) + request = self.factory.get( + f"/users/self/workflows/engagements/{self.user_with_activity_engagement__engagement.id}/details/" + f"{self.user_with_activity_engagement__detail.id}/" + ) - self.assertFalse(response.data["detail"]) + request.user = self.user_with_activity_engagement + response = self.view(request, self.user_with_activity_engagement__engagement.id) + # self.assertEqual(response.data["detail"].length(), 0) + self.assertEqual(response.status_code, 204) From 89afd4c1e209759e2d0881c8fe7a063bd61265d4 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 4 Nov 2021 14:52:42 +0000 Subject: [PATCH 11/11] Fix up unit test for deleting an engagement detail. --- .../user/workflows/test_engagement_detail.py | 53 +++++++++++-------- .../views/user/workflows/engagement_detail.py | 1 + 2 files changed, 32 insertions(+), 22 deletions(-) diff --git a/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py b/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py index f918666..5f6466d 100644 --- a/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py +++ b/django_workflow_system/api/tests/views/user/workflows/test_engagement_detail.py @@ -518,6 +518,9 @@ def test_post_survey_cant_start_on_second_workflow(self): class TestWorkflowCollectionEngagementDetailView(TestCase): def setUp(self): self.view = WorkflowCollectionEngagementDetailView.as_view() + + # There are times when we will want to call the collection level view as part of a test. + self.collection_view = WorkflowCollectionEngagementDetailsView.as_view() self.factory = APIRequestFactory() self.single_activity_collection: WorkflowCollection = WorkflowCollectionFactory( **{ @@ -1394,38 +1397,44 @@ def test_patch__valid_payload_with_schema_existing_response_fails(self): ) self.assertEqual(response.status_code, 400) - def test_get__user_has_engagement_detail_delete(self): - """Delete engagement details for the requesting user.""" + def test_user_can_delete_personal_engagement_detail(self): + """A user can delete their own CollectionEngagementDetail resources.""" + + # Step 1: Ensure there is 1 engagement detail on the engagement that can be deleted. request = self.factory.get( - f"/users/self/workflows/engagements/{self.user_with_activity_engagement__engagement.id}/details/" - f"{self.user_with_activity_engagement__detail.id}/" + f"/users/self/workflows/engagements/{self.user_with_engagement__engagement.id}/details/" + ) + request.user = self.user_with_engagement + response = self.collection_view( + request, self.user_with_engagement__engagement.id ) - - request.user = self.user_with_activity_engagement - response = self.view(request, self.user_with_activity_engagement__engagement.id) self.assertEqual(response.status_code, 200) - # self.assertEqual(response.data[0]["detail"].length(), 1) + self.assertEqual(len(response.data), 1) - self.assertEqual( - response.data[0]["detail"], + # Step 2: Attempt to delete the engagment detail. + request = self.factory.delete( f"http://testserver/api/workflow_system/users/self/workflows/engagements/" - f"{self.user_with_activity_engagement__engagement.id}/details/" - f"{self.user_with_activity_engagement__detail.id}/", + f"{self.user_with_engagement__engagement.id}/details/" + f"{self.user_with_engagement__detail.id}/" ) - request = self.factory.delete( - f"http://testserver/api/workflow_system/users/self/workflows/engagements/" - f"{self.user_with_activity_engagement__engagement.id}/details/" - f"{self.user_with_activity_engagement__detail.id}/" + request.user = self.user_with_engagement + response = self.view( + request, + self.user_with_engagement__engagement.id, + self.user_with_engagement__detail.id, ) + self.assertEqual(response.status_code, 204) + # Step 3: Verify the engagement detail was deleted. request = self.factory.get( - f"/users/self/workflows/engagements/{self.user_with_activity_engagement__engagement.id}/details/" - f"{self.user_with_activity_engagement__detail.id}/" + f"/users/self/workflows/engagements/{self.user_with_engagement__engagement.id}/details/" + ) + request.user = self.user_with_engagement + response = self.collection_view( + request, self.user_with_engagement__engagement.id ) - request.user = self.user_with_activity_engagement - response = self.view(request, self.user_with_activity_engagement__engagement.id) - # self.assertEqual(response.data["detail"].length(), 0) - self.assertEqual(response.status_code, 204) + self.assertEqual(response.status_code, 200) + self.assertEqual(len(response.data), 0) diff --git a/django_workflow_system/api/views/user/workflows/engagement_detail.py b/django_workflow_system/api/views/user/workflows/engagement_detail.py index a844965..430bdc1 100644 --- a/django_workflow_system/api/views/user/workflows/engagement_detail.py +++ b/django_workflow_system/api/views/user/workflows/engagement_detail.py @@ -380,6 +380,7 @@ def patch(self, request, engagement_id, id): return Response(data=data, status=status.HTTP_200_OK) def delete(self, request, engagement_id, id): + # TODO: Need to handle case where a request is received to delete a detail that does not belong to the user. """Delete a WorkflowCollectionEngagementDetail associated with a given WorkflowEngagement for current user.""" engagement_detail = WorkflowCollectionEngagementDetail.objects.get( id=id,