code
🧩 Syntax:
from django.test import TestCase
from django.urls import reverse
from django.contrib.auth import get_user_model
from wepynaire.tips.models import Category, Tip
User = get_user_model()
class TestTipsHomeView(TestCase):
def setUp(self):
self.python_category = Category.objects.create(name="My first tip")
self.author = User.objects.create_user(username="testuser", password="mySuperPassword.77")
self.tips = [
Tip.objects.create(
title="Mon premier tip de test",
author=self.author,
image="tips/images/astuce-decimal.png",
)
]
def test_view_returns_ok(self):
""" Vérifie que l'appel à home retourne du 200 """
# 1. Setup du test
# 2. Appel de la fonction à tester
response = self.client.get(reverse('home'))
# 3. Vérification de la répponse
self.assertEqual(response.status_code, 200)
def test_view_renders_home_template(self):
""" Vérifie que l'appel à home retourne le template home/template """
# 1. Setup du test
# 2. Appel de la fonction à tester
response = self.client.get(reverse('home'))
# 3. Vérification de la répponse
self.assertTemplateUsed("tips/home.html")
def test_home_view_has_four_tips_in_context(self):
# 1. Setup du test
# 2. Appel de la fonction à tester
response = self.client.get(reverse('home'))
# 3. Vérification de la répponse
self.assertIn("tips", response.context)
self.assertEqual(len(response.context["tips"]), 1)
class TestTipsDetailView(TestCase):
...