Django
Testing Django
TestCase, client, and testing views
Testing Django
# tasks/tests.py
from django.test import TestCase, Client
from django.contrib.auth import get_user_model
from .models import Project, Task
class TaskViewTests(TestCase):
def setUp(self):
self.client = Client()
self.user = get_user_model().objects.create_user("ada", password="test-pass-123")
self.project = Project.objects.create(name="Sprint 1", owner=self.user)
def test_task_list_requires_login(self):
response = self.client.get("/tasks/")
self.assertEqual(response.status_code, 302)
def test_create_task(self):
self.client.login(username="ada", password="test-pass-123")
response = self.client.post("/tasks/new/", {
"project": self.project.pk,
"title": "Write docs",
"priority": "med",
})
self.assertEqual(Task.objects.count(), 1)
python manage.py test tasks