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
« 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
5from ..models import Todo
8class TodoModelTest(APITestCase):
9 @classmethod
10 def setUpTestData(cls):
11 cls.todo = Todo.objects.create(title="First Todo", body="A body of text here")
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
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
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