From 648b6b6af07dee4bc133f5b94b011c67fc78c535 Mon Sep 17 00:00:00 2001 From: TitouanDor Date: Tue, 23 Jun 2026 15:30:13 +0200 Subject: [PATCH] modification des tests --- club/api.py | 12 ++-- club/tests/test_club_membership_controller.py | 72 +++++++++++-------- 2 files changed, 48 insertions(+), 36 deletions(-) diff --git a/club/api.py b/club/api.py index 8115e92b..e3f4e440 100644 --- a/club/api.py +++ b/club/api.py @@ -79,10 +79,10 @@ class ClubMembershipController(ControllerBase): memberships = Membership.objects.ongoing().filter( start_date__gte=filters.since_date, end_date__isnull=True ) - if filters.clubs_id is None: - return memberships.order_by("start_date") + if filters.clubs_id: + memberships = memberships.filter(club_id__in=filters.clubs_id) - return memberships.filter(club_id__in=filters.clubs_id) + return memberships.order_by("start_date") @route.get( "/former", @@ -97,7 +97,7 @@ class ClubMembershipController(ControllerBase): start_date__lt=filters.since_date, end_date__gte=filters.since_date, ) - if filters.clubs_id is None: - return memberships.order_by("start_date") + if filters.clubs_id: + memberships = memberships.filter(club_id__in=filters.clubs_id) - return memberships.filter(club_id__in=filters.clubs_id) + return memberships.order_by("start_date") diff --git a/club/tests/test_club_membership_controller.py b/club/tests/test_club_membership_controller.py index 73268634..406494b7 100644 --- a/club/tests/test_club_membership_controller.py +++ b/club/tests/test_club_membership_controller.py @@ -1,8 +1,9 @@ -from datetime import date +from datetime import timedelta from django.contrib.auth.models import Permission from django.test import TestCase from django.urls import reverse +from django.utils.timezone import localdate from model_bakery import baker from club.models import Club, ClubRole, Membership @@ -28,64 +29,68 @@ class TestMembershipAPI(TestCase): club=cls.clubs[0], user=subscriber_user.make(), role=cls.roles[0], - start_date=date(2025, 1, 1), - end_date=None, + start_date=localdate() - timedelta(weeks=1), ), # on going Membership.objects.create( club=cls.clubs[1], user=subscriber_user.make(), role=cls.roles[1], - start_date=date(2026, 5, 1), - end_date=None, + start_date=localdate() - timedelta(days=1), ), # former Membership.objects.create( club=cls.clubs[1], user=subscriber_user.make(), role=cls.roles[2], - start_date=date(2024, 6, 1), - end_date=date(2025, 8, 1), + start_date=localdate() - timedelta(weeks=2), + end_date=localdate() - timedelta(days=6), ), # on going Membership.objects.create( club=cls.clubs[2], user=subscriber_user.make(), role=cls.roles[0], - start_date=date(2024, 1, 1), - end_date=None, + start_date=localdate() - timedelta(weeks=3), ), # former Membership.objects.create( club=cls.clubs[1], user=subscriber_user.make(), role=cls.roles[2], - start_date=date(2025, 6, 1), - end_date=date(2025, 8, 1), + start_date=localdate() - timedelta(days=4), + end_date=localdate() - timedelta(days=3), ), # on going Membership.objects.create( club=cls.clubs[2], user=subscriber_user.make(), role=cls.roles[0], - start_date=date(2026, 6, 6), - end_date=None, + start_date=localdate() - timedelta(days=1), ), # former Membership.objects.create( club=cls.clubs[0], user=subscriber_user.make(), role=cls.roles[0], - start_date=date(2020, 1, 1), - end_date=date(2025, 6, 8), + start_date=localdate() - timedelta(weeks=6), + end_date=localdate() - timedelta(days=3), ), # former Membership.objects.create( club=cls.clubs[2], user=subscriber_user.make(), role=cls.roles[0], - start_date=date(2020, 1, 1), - end_date=date(2025, 6, 8), + start_date=localdate() - timedelta(weeks=8), + end_date=localdate() - timedelta(days=6), + ), + # former + Membership.objects.create( + club=cls.clubs[1], + user=subscriber_user.make(), + role=cls.roles[0], + start_date=localdate() - timedelta(weeks=8), + end_date=localdate() - timedelta(weeks=7, days=5), ), ] @@ -94,10 +99,11 @@ class TestNewMembershipAPI(TestMembershipAPI): def test_new_membership_one_club(self): assert self.user.has_perm("club.view_club") self.client.force_login(self.user) - since_date = date(2025, 1, 1) + since_date = localdate() - timedelta(weeks=1) arg = {"since_date": since_date, "clubs_id": self.clubs[0].id} url = reverse("api:get_new_clubs_members_since_date") - response = self.client.get(url, arg) + with self.assertNumQueries(8): + response = self.client.get(url, arg) assert response.status_code == 200 data = response.json() @@ -108,13 +114,14 @@ class TestNewMembershipAPI(TestMembershipAPI): def test_new_membership_multiple_club(self): assert self.user.has_perm("club.view_club") self.client.force_login(self.user) - since_date = date(2025, 1, 1) + since_date = localdate() - timedelta(weeks=1) arg = { "since_date": since_date, "clubs_id": [self.clubs[0].id, self.clubs[1].id], } url = reverse("api:get_new_clubs_members_since_date") - response = self.client.get(url, arg) + with self.assertNumQueries(11): + response = self.client.get(url, arg) assert response.status_code == 200 data = response.json() @@ -125,10 +132,11 @@ class TestNewMembershipAPI(TestMembershipAPI): def test_new_membership_all_clubs(self): assert self.user.has_perm("club.view_club") self.client.force_login(self.user) - since_date = date(2025, 1, 1) + since_date = localdate() - timedelta(weeks=1) arg = {"since_date": since_date} url = reverse("api:get_new_clubs_members_since_date") - response = self.client.get(url, arg) + with self.assertNumQueries(14): + response = self.client.get(url, arg) assert response.status_code == 200 data = response.json() @@ -145,10 +153,12 @@ class TestFormerMembershipAPI(TestMembershipAPI): def test_former_membership_one_club(self): assert self.user.has_perm("club.view_club") self.client.force_login(self.user) - since_date = date(2025, 1, 1) + since_date = localdate() - timedelta(weeks=1) arg = {"since_date": since_date, "clubs_id": self.clubs[1].id} url = reverse("api:get_former_clubs_members_since_date") - response = self.client.get(url, arg) + with self.assertNumQueries(8): + response = self.client.get(url, arg) + assert response.status_code == 200 data = response.json() @@ -159,13 +169,14 @@ class TestFormerMembershipAPI(TestMembershipAPI): def test_new_membership_multiple_club(self): assert self.user.has_perm("club.view_club") self.client.force_login(self.user) - since_date = date(2025, 1, 1) + since_date = localdate() - timedelta(weeks=1) arg = { "since_date": since_date, "clubs_id": [self.clubs[1].id, self.clubs[0].id], } url = reverse("api:get_former_clubs_members_since_date") - response = self.client.get(url, arg) + with self.assertNumQueries(11): + response = self.client.get(url, arg) assert response.status_code == 200 data = response.json() @@ -176,17 +187,18 @@ class TestFormerMembershipAPI(TestMembershipAPI): def test_new_membership_all_clubs(self): assert self.user.has_perm("club.view_club") self.client.force_login(self.user) - since_date = date(2025, 1, 1) + since_date = localdate() - timedelta(weeks=1) arg = {"since_date": since_date} url = reverse("api:get_former_clubs_members_since_date") - response = self.client.get(url, arg) + with self.assertNumQueries(14): + response = self.client.get(url, arg) assert response.status_code == 200 data = response.json() membership_ids = [e["id"] for e in data] expected_ids = [ - self.memberships[6].id, self.memberships[7].id, + self.memberships[6].id, self.memberships[2].id, ] assert membership_ids == expected_ids