dimanche 10 janvier 2021

Why does create_task in testing case for DRF not work?

so I'm very new to writing test cases and I'm confused as to why my test in failing. Here is the view:

from rest_framework import generics, filters
from todo import models
from .serializers import TaskSerializer
from django_filters.rest_framework import DjangoFilterBackend

#lists, creates and filters tasks
class ListTask(generics.ListCreateAPIView):
    queryset = models.Task.objects.all()
    serializer_class = TaskSerializer
    filter_backends = [DjangoFilterBackend, filters.SearchFilter]
    filterset_fields = ['date']
    search_fields = ['description']

Here is the test view:

from django.test import TestCase

from rest_framework.test import APITestCase, APIRequestFactory
from rest_framework import status

from todo.views import ListTask, DetailTask

class ListTaskViewTest(APITestCase):

    def setUp(self):
        self.data = {'title':'Any title', 'description': 'Any description', 'Completed':False, 'date':'Any date'}
        self.factory = APIRequestFactory()

    def test_create_task(self):
        response = self.create_task()

        expected_code = status.HTTP_201_CREATED
        self.assertEqual(response.status_code, expected_code)

        response = self.client.get('')
        expected_data = {'id':1, 'title': 'supermarket', 'description':'buy fruit','completed':False}

        self.assertEqual(len(response.data), 1)
        entry = response.data[0]
        self.assertEqual(entry, expected_data)

Why does create_task not work and what should I replace it with? I thought since I had ListCreateAPIView I could use it for my test but it seems I cannot. Any help would be very useful.

Aucun commentaire:

Enregistrer un commentaire