From 2db58790b1a74d64bd9ffc94418f5e83600009c0 Mon Sep 17 00:00:00 2001 From: JasonHomeWorkstationUbuntu Date: Wed, 21 Oct 2020 17:17:33 +1100 Subject: [PATCH] Added DELETE option (Not Finished) --- src/puppies/tests/test_views.py | 44 ++++++++++++++++----------------- src/puppies/views.py | 5 +++- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/src/puppies/tests/test_views.py b/src/puppies/tests/test_views.py index daeb068..5c2d1ea 100644 --- a/src/puppies/tests/test_views.py +++ b/src/puppies/tests/test_views.py @@ -26,28 +26,7 @@ class GetAllPuppiesTest(TestCase): def test_get_all_puppies(self): # get API response - response = client.get(reverse('get_post_puppies')) - # get data from db - puppies = Puppy.objects.all() - serializer = PuppySerializer(puppies, many=True) - self.assertEqual(response.data, serializer.data) - self.assertEqual(response.status_code, status.HTTP_200_OK) - -class GetSinglePuppyTest(TestCase): - """ Test module for GET single puppy API """ - - def setUp(self): - self.casper = Puppy.objects.create( - name='Casper', age=3, breed='Bull Dog', color='Black') - self.muffin = Puppy.objects.create( - name='Muffin', age=1, breed='Gradane', color='Brown') - self.rambo = Puppy.objects.create( - name='Rambo', age=2, breed='Labrador', color='Black') - self.ricky = Puppy.objects.create( - name='Ricky', age=6, breed='Labrador', color='Brown') - - def test_get_valid_single_puppy(self): - response = client.get( + response = client.get(reverse('get_post_puppies'))return Response({}) reverse('get_delete_update_puppy', kwargs={'pk': self.rambo.pk})) puppy = Puppy.objects.get(pk=self.rambo.pk) serializer = PuppySerializer(puppy) @@ -135,3 +114,24 @@ class UpdateSinglePuppyTest(TestCase): data=json.dumps(self.invalid_payload), content_type='application/json') self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + +class DeleteSinglePuppyTest(TestCase): + """ Test module for deleting an existing puppy record + To delete a single record, an ID is required + """ + + def setUp(self): + self.casper = Puppy.objects.create( + name='Casper', age=3, breed='Bull Dog', color='Black') + self.muffin = Puppy.objects.create( + name='Muffy', age=1, breed='Gradane', color='Brown') + + def test_valid_delete_puppy(self): + response = client.delete( + reverse('get_delete_update_puppy', kwargs={'pk': self.muffin.pk})) + self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + + def test_invalid_delete_puppy(self): + response = client.delete( + reverse('get_delete_update_puppy', kwargs={'pk': 30})) + self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) \ No newline at end of file diff --git a/src/puppies/views.py b/src/puppies/views.py index 791cace..dbb19d6 100644 --- a/src/puppies/views.py +++ b/src/puppies/views.py @@ -24,7 +24,10 @@ def get_delete_update_puppy(request, pk): return Response(serializer.data) # delete a single puppy elif request.method == 'DELETE': - return Response({}) + # return Response({}) + puppy.delete() + return Response(status=status.HTTP_204_NO_CONTENT) + # update details of a single puppy elif request.method == 'PUT':