Coverage for todos/tests/test_models.py: 100.00%

22 statements  

« prev     ^ index     » next       coverage.py v7.8.2, created at 2025-05-31 12:10 -0700

1from django.urls import reverse 

2from rest_framework import status 

3from rest_framework.test import APITestCase 

4 

5from ..models import Todo 

6 

7 

8class TodoModelTest(APITestCase): 

9 @classmethod 

10 def setUpTestData(cls): 

11 cls.todo = Todo.objects.create(title="First Todo", body="A body of text here") 

12 

13 def test_model_content(self): 

14 self.assertEqual(self.todo.title, "First Todo") 1d

15 self.assertEqual(self.todo.body, "A body of text here") 1d

16 self.assertEqual(str(self.todo), "First Todo") 1d

17 

18 def test_api_listview(self): 

19 response = self.client.get(reverse("todo_list")) 1b

20 self.assertEqual(response.status_code, status.HTTP_200_OK) 1b

21 self.assertEqual(Todo.objects.count(), 1) 1b

22 self.assertContains(response, self.todo) 1b

23 

24 def test_api_detailview(self): 

25 response = self.client.get( 1c

26 reverse("todo_detail", kwargs={"pk": self.todo.id}), format="json" 

27 ) 

28 self.assertEqual(response.status_code, status.HTTP_200_OK) 1c

29 self.assertEqual(Todo.objects.count(), 1) 1c

30 self.assertContains(response, "First Todo") 1c