diff --git a/backend/letters/tests.py b/backend/letters/tests.py index dc1c015..986cc7f 100644 --- a/backend/letters/tests.py +++ b/backend/letters/tests.py @@ -55,13 +55,14 @@ class LetterAPITest(APITestCase): def test_create_draft_letter_api(self): """Test API can successfully create a basic draft letter.""" payload = { + "public_id": "4281edcc-5459-4ff2-bb5e-669fb44e0757", "type": "KEPT", "encrypted_content": "enc_xyz==", "encrypted_metadata": "enc_meta==", "encrypted_dek": "enc_dek==", } - response = self.client.post(self.url, payload) + response = self.client.put(self.url + payload["public_id"] + "/", payload) self.assertEqual(response.status_code, 201) self.assertEqual(Letter.objects.count(), 1) self.assertEqual(Letter.objects.get().status, "DRAFT") diff --git a/backend/letters/views.py b/backend/letters/views.py index cf6137f..6d8e771 100644 --- a/backend/letters/views.py +++ b/backend/letters/views.py @@ -17,10 +17,11 @@ class LetterView(generics.ListCreateAPIView): def put(self, request, public_id): serializer = self.get_serializer(data=request.data) + serializer.is_valid(raise_exception=True) letter, created = Letter.objects.update_or_create( - public_id=public_id, user=request.user, defaults=serializer.validated_data + public_id=public_id, user=self.request.user, defaults=serializer.validated_data ) LetterImage.objects.filter(letter=letter).delete()