Write an API with Django Rest Framework

The API built using DRF needs:

  • Router – connect requests to ViewSet
  • ViewSet – What am I getting from the database and displaying?
  • Serializer – How am I turning the data into a JSON object
from rest_framework import APITestCase

class TestMyModelViewset(APITestCase):
  def setUp(self):
     self.url = reverse('mymodel-list')
     self.instances = [MyModel() for i in range(3)]
     for item in self.instances:
         item.save()

  def test_list_view(self):
    response = self.client.get(self.url, format='json')
    self.assertEqual(response.status_code, 200)
    self.assertEqual(len(response.data), 3)

  def test_can_create(self):
    data = ('name': 'test name', 'category': 1)
    response = self.client.post(self.url, data, format='json')
    self.assertEqual(response.status_code, 201)

  def test_detail_view(self):
    sample_id = MyModel.objects.first().id
    detail_url = self.url + '/' + str(sample_id)
    response = self.client.get(detail_url, format='json')
    self.assertEqual(response.status_code, 200)

 

 

Leave a comment