From ec2b52464fa69b162e91faa88faf11ce65a04d0c Mon Sep 17 00:00:00 2001 From: Van Hecke Adiel <adiel.van-hecke@student-cs.fr> Date: Thu, 21 Nov 2024 15:44:48 +0100 Subject: [PATCH] testBorrowing --- Borrowing/tests.py | 55 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/Borrowing/tests.py b/Borrowing/tests.py index 7ce503c..44874ea 100644 --- a/Borrowing/tests.py +++ b/Borrowing/tests.py @@ -1,3 +1,56 @@ from django.test import TestCase +from django.urls import reverse +from django.contrib.auth.models import User +from object.models import Object, ObjectCategory +from Communities.models import Community, CommunityMembership +from .models import BorrowRequest -# Create your tests here. +class BorrowingViewTests(TestCase): + def setUp(self): + # Créer un utilisateur et le connecter + self.user = User.objects.create_user(username="testuser", password="password123") + self.client.login(username="testuser", password="password123") + + # Créer une catégorie d'objet + self.category = ObjectCategory.objects.create(name="Electronics") + + # Créer des objets pour les tests + self.lender = User.objects.create_user(username="lender", password="password123") + self.community = Community.objects.create(name="Community1", postal_code=12345, administrator=self.lender) + + CommunityMembership.objects.create(user=self.user, community=self.community, role='member') + CommunityMembership.objects.create(user=self.lender, community=self.community, role='admin') + + self.object1 = Object.objects.create( + description="Laptop", + objectCategory=self.category, + id_lender=self.lender + ) + self.object2 = Object.objects.create( + description="Tablet", + objectCategory=self.category, + id_lender=self.lender + ) + + def test_borrowing_page_loads(self): + """Test que la page borrowing charge correctement.""" + response = self.client.get(reverse("borrow")) + self.assertEqual(response.status_code, 200) + self.assertTemplateUsed(response, "Borrowing/borrowing.html") + self.assertIn("objects", response.context) + + def test_borrow_request_creation(self): + """Test que l'utilisateur peut faire une demande de prêt.""" + response = self.client.post(reverse("borrow"), { + "item": self.object1.id + }) + self.assertEqual(response.status_code, 200) + self.assertTrue(BorrowRequest.objects.filter(id_object=self.object1, id_borrower=self.user).exists()) + + def test_filtered_objects(self): + """Test que les objets déjà demandés ne sont pas affichés.""" + BorrowRequest.objects.create(id_object=self.object1, id_borrower=self.user, is_finished=False) + response = self.client.get(reverse("borrow")) + filtered_objects = response.context["filtered_objects"] + self.assertNotIn(self.object1, filtered_objects) + self.assertIn(self.object2, filtered_objects) \ No newline at end of file -- GitLab