Coverage for tasks/tests/test_api.py: 100%

24 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-05-18 16:35 +0000

1from datetime import date 

2import pytest 

3from django.urls import reverse 

4from rest_framework.test import APIClient 

5from tasks.models import Task 

6 

7@pytest.fixture 

8def api_client(): 

9 return APIClient() 

10 

11@pytest.mark.django_db 

12def test_create_task(api_client): 

13 url = reverse("task-list") # If you're using a DRF viewset with basename "task" 

14 data = { 

15 "title": "Test Task", 

16 "due_date": date.today(), 

17 } 

18 

19 response = api_client.post(url, data, format="json") 

20 assert response.status_code == 201 

21 assert Task.objects.count() == 1 

22 assert Task.objects.first().title == "Test Task" 

23 

24@pytest.mark.django_db 

25def test_get_tasks(api_client): 

26 Task.objects.create(title="Task 1", due_date= date.today()) 

27 Task.objects.create(title="Task 2", due_date= date.today()) 

28 url = reverse("task-list") 

29 response = api_client.get(url) 

30 assert response.status_code == 200 

31 assert len(response.data) == 2