modification des tests

This commit is contained in:
TitouanDor
2026-06-23 15:30:13 +02:00
parent 73ae7666c1
commit 648b6b6af0
2 changed files with 48 additions and 36 deletions
+6 -6
View File
@@ -79,10 +79,10 @@ class ClubMembershipController(ControllerBase):
memberships = Membership.objects.ongoing().filter( memberships = Membership.objects.ongoing().filter(
start_date__gte=filters.since_date, end_date__isnull=True start_date__gte=filters.since_date, end_date__isnull=True
) )
if filters.clubs_id is None: if filters.clubs_id:
return memberships.order_by("start_date") 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( @route.get(
"/former", "/former",
@@ -97,7 +97,7 @@ class ClubMembershipController(ControllerBase):
start_date__lt=filters.since_date, start_date__lt=filters.since_date,
end_date__gte=filters.since_date, end_date__gte=filters.since_date,
) )
if filters.clubs_id is None: if filters.clubs_id:
return memberships.order_by("start_date") memberships = memberships.filter(club_id__in=filters.clubs_id)
return memberships.filter(club_id__in=filters.clubs_id) return memberships.order_by("start_date")
+42 -30
View File
@@ -1,8 +1,9 @@
from datetime import date from datetime import timedelta
from django.contrib.auth.models import Permission from django.contrib.auth.models import Permission
from django.test import TestCase from django.test import TestCase
from django.urls import reverse from django.urls import reverse
from django.utils.timezone import localdate
from model_bakery import baker from model_bakery import baker
from club.models import Club, ClubRole, Membership from club.models import Club, ClubRole, Membership
@@ -28,64 +29,68 @@ class TestMembershipAPI(TestCase):
club=cls.clubs[0], club=cls.clubs[0],
user=subscriber_user.make(), user=subscriber_user.make(),
role=cls.roles[0], role=cls.roles[0],
start_date=date(2025, 1, 1), start_date=localdate() - timedelta(weeks=1),
end_date=None,
), ),
# on going # on going
Membership.objects.create( Membership.objects.create(
club=cls.clubs[1], club=cls.clubs[1],
user=subscriber_user.make(), user=subscriber_user.make(),
role=cls.roles[1], role=cls.roles[1],
start_date=date(2026, 5, 1), start_date=localdate() - timedelta(days=1),
end_date=None,
), ),
# former # former
Membership.objects.create( Membership.objects.create(
club=cls.clubs[1], club=cls.clubs[1],
user=subscriber_user.make(), user=subscriber_user.make(),
role=cls.roles[2], role=cls.roles[2],
start_date=date(2024, 6, 1), start_date=localdate() - timedelta(weeks=2),
end_date=date(2025, 8, 1), end_date=localdate() - timedelta(days=6),
), ),
# on going # on going
Membership.objects.create( Membership.objects.create(
club=cls.clubs[2], club=cls.clubs[2],
user=subscriber_user.make(), user=subscriber_user.make(),
role=cls.roles[0], role=cls.roles[0],
start_date=date(2024, 1, 1), start_date=localdate() - timedelta(weeks=3),
end_date=None,
), ),
# former # former
Membership.objects.create( Membership.objects.create(
club=cls.clubs[1], club=cls.clubs[1],
user=subscriber_user.make(), user=subscriber_user.make(),
role=cls.roles[2], role=cls.roles[2],
start_date=date(2025, 6, 1), start_date=localdate() - timedelta(days=4),
end_date=date(2025, 8, 1), end_date=localdate() - timedelta(days=3),
), ),
# on going # on going
Membership.objects.create( Membership.objects.create(
club=cls.clubs[2], club=cls.clubs[2],
user=subscriber_user.make(), user=subscriber_user.make(),
role=cls.roles[0], role=cls.roles[0],
start_date=date(2026, 6, 6), start_date=localdate() - timedelta(days=1),
end_date=None,
), ),
# former # former
Membership.objects.create( Membership.objects.create(
club=cls.clubs[0], club=cls.clubs[0],
user=subscriber_user.make(), user=subscriber_user.make(),
role=cls.roles[0], role=cls.roles[0],
start_date=date(2020, 1, 1), start_date=localdate() - timedelta(weeks=6),
end_date=date(2025, 6, 8), end_date=localdate() - timedelta(days=3),
), ),
# former # former
Membership.objects.create( Membership.objects.create(
club=cls.clubs[2], club=cls.clubs[2],
user=subscriber_user.make(), user=subscriber_user.make(),
role=cls.roles[0], role=cls.roles[0],
start_date=date(2020, 1, 1), start_date=localdate() - timedelta(weeks=8),
end_date=date(2025, 6, 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): def test_new_membership_one_club(self):
assert self.user.has_perm("club.view_club") assert self.user.has_perm("club.view_club")
self.client.force_login(self.user) 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} arg = {"since_date": since_date, "clubs_id": self.clubs[0].id}
url = reverse("api:get_new_clubs_members_since_date") 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 assert response.status_code == 200
data = response.json() data = response.json()
@@ -108,13 +114,14 @@ class TestNewMembershipAPI(TestMembershipAPI):
def test_new_membership_multiple_club(self): def test_new_membership_multiple_club(self):
assert self.user.has_perm("club.view_club") assert self.user.has_perm("club.view_club")
self.client.force_login(self.user) self.client.force_login(self.user)
since_date = date(2025, 1, 1) since_date = localdate() - timedelta(weeks=1)
arg = { arg = {
"since_date": since_date, "since_date": since_date,
"clubs_id": [self.clubs[0].id, self.clubs[1].id], "clubs_id": [self.clubs[0].id, self.clubs[1].id],
} }
url = reverse("api:get_new_clubs_members_since_date") 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 assert response.status_code == 200
data = response.json() data = response.json()
@@ -125,10 +132,11 @@ class TestNewMembershipAPI(TestMembershipAPI):
def test_new_membership_all_clubs(self): def test_new_membership_all_clubs(self):
assert self.user.has_perm("club.view_club") assert self.user.has_perm("club.view_club")
self.client.force_login(self.user) self.client.force_login(self.user)
since_date = date(2025, 1, 1) since_date = localdate() - timedelta(weeks=1)
arg = {"since_date": since_date} arg = {"since_date": since_date}
url = reverse("api:get_new_clubs_members_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 assert response.status_code == 200
data = response.json() data = response.json()
@@ -145,10 +153,12 @@ class TestFormerMembershipAPI(TestMembershipAPI):
def test_former_membership_one_club(self): def test_former_membership_one_club(self):
assert self.user.has_perm("club.view_club") assert self.user.has_perm("club.view_club")
self.client.force_login(self.user) 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} arg = {"since_date": since_date, "clubs_id": self.clubs[1].id}
url = reverse("api:get_former_clubs_members_since_date") 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 assert response.status_code == 200
data = response.json() data = response.json()
@@ -159,13 +169,14 @@ class TestFormerMembershipAPI(TestMembershipAPI):
def test_new_membership_multiple_club(self): def test_new_membership_multiple_club(self):
assert self.user.has_perm("club.view_club") assert self.user.has_perm("club.view_club")
self.client.force_login(self.user) self.client.force_login(self.user)
since_date = date(2025, 1, 1) since_date = localdate() - timedelta(weeks=1)
arg = { arg = {
"since_date": since_date, "since_date": since_date,
"clubs_id": [self.clubs[1].id, self.clubs[0].id], "clubs_id": [self.clubs[1].id, self.clubs[0].id],
} }
url = reverse("api:get_former_clubs_members_since_date") 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 assert response.status_code == 200
data = response.json() data = response.json()
@@ -176,17 +187,18 @@ class TestFormerMembershipAPI(TestMembershipAPI):
def test_new_membership_all_clubs(self): def test_new_membership_all_clubs(self):
assert self.user.has_perm("club.view_club") assert self.user.has_perm("club.view_club")
self.client.force_login(self.user) self.client.force_login(self.user)
since_date = date(2025, 1, 1) since_date = localdate() - timedelta(weeks=1)
arg = {"since_date": since_date} arg = {"since_date": since_date}
url = reverse("api:get_former_clubs_members_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 assert response.status_code == 200
data = response.json() data = response.json()
membership_ids = [e["id"] for e in data] membership_ids = [e["id"] for e in data]
expected_ids = [ expected_ids = [
self.memberships[6].id,
self.memberships[7].id, self.memberships[7].id,
self.memberships[6].id,
self.memberships[2].id, self.memberships[2].id,
] ]
assert membership_ids == expected_ids assert membership_ids == expected_ids