mirror of
https://github.com/ae-utbm/sith.git
synced 2026-06-28 02:38:44 +00:00
ajout modif demandées
This commit is contained in:
+5
-3
@@ -76,8 +76,10 @@ class ClubMembershipController(ControllerBase):
|
||||
)
|
||||
def fetch_new_club_members(self, filters: Query[MembershipFilterSchema]):
|
||||
"""give all the members of all clubs that have joined since a given date"""
|
||||
memberships = Membership.objects.ongoing().filter(
|
||||
start_date__gte=filters.since_date, end_date__isnull=True
|
||||
memberships = (
|
||||
Membership.objects.ongoing()
|
||||
.filter(start_date__gte=filters.since_date, end_date__isnull=True)
|
||||
.select_related("user", "role")
|
||||
)
|
||||
if filters.clubs_id:
|
||||
memberships = memberships.filter(club_id__in=filters.clubs_id)
|
||||
@@ -96,7 +98,7 @@ class ClubMembershipController(ControllerBase):
|
||||
memberships = Membership.objects.filter(
|
||||
start_date__lt=filters.since_date,
|
||||
end_date__gte=filters.since_date,
|
||||
)
|
||||
).select_related("user", "role")
|
||||
if filters.clubs_id:
|
||||
memberships = memberships.filter(club_id__in=filters.clubs_id)
|
||||
|
||||
|
||||
@@ -96,14 +96,17 @@ class TestMembershipAPI(TestCase):
|
||||
|
||||
|
||||
class TestNewMembershipAPI(TestMembershipAPI):
|
||||
@classmethod
|
||||
def setUpTestData(cls):
|
||||
super().setUpTestData()
|
||||
cls.url = reverse("api:get_new_clubs_members_since_date")
|
||||
|
||||
def test_new_membership_one_club(self):
|
||||
assert self.user.has_perm("club.view_club")
|
||||
self.client.force_login(self.user)
|
||||
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")
|
||||
with self.assertNumQueries(8):
|
||||
response = self.client.get(url, arg)
|
||||
with self.assertNumQueries(6):
|
||||
response = self.client.get(self.url, query_params=arg)
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
|
||||
@@ -112,16 +115,14 @@ class TestNewMembershipAPI(TestMembershipAPI):
|
||||
assert membership_ids == expected_ids
|
||||
|
||||
def test_new_membership_multiple_club(self):
|
||||
assert self.user.has_perm("club.view_club")
|
||||
self.client.force_login(self.user)
|
||||
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")
|
||||
with self.assertNumQueries(11):
|
||||
response = self.client.get(url, arg)
|
||||
with self.assertNumQueries(7):
|
||||
response = self.client.get(self.url, query_params=arg)
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
|
||||
@@ -130,13 +131,11 @@ class TestNewMembershipAPI(TestMembershipAPI):
|
||||
assert membership_ids == expected_ids
|
||||
|
||||
def test_new_membership_all_clubs(self):
|
||||
assert self.user.has_perm("club.view_club")
|
||||
self.client.force_login(self.user)
|
||||
since_date = localdate() - timedelta(weeks=1)
|
||||
arg = {"since_date": since_date}
|
||||
url = reverse("api:get_new_clubs_members_since_date")
|
||||
with self.assertNumQueries(14):
|
||||
response = self.client.get(url, arg)
|
||||
with self.assertNumQueries(8):
|
||||
response = self.client.get(self.url, query_params=arg)
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
|
||||
@@ -150,14 +149,17 @@ class TestNewMembershipAPI(TestMembershipAPI):
|
||||
|
||||
|
||||
class TestFormerMembershipAPI(TestMembershipAPI):
|
||||
@classmethod
|
||||
def setUpTestData(cls):
|
||||
super().setUpTestData()
|
||||
cls.url = reverse("api:get_former_clubs_members_since_date")
|
||||
|
||||
def test_former_membership_one_club(self):
|
||||
assert self.user.has_perm("club.view_club")
|
||||
self.client.force_login(self.user)
|
||||
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")
|
||||
with self.assertNumQueries(8):
|
||||
response = self.client.get(url, arg)
|
||||
with self.assertNumQueries(6):
|
||||
response = self.client.get(self.url, query_params=arg)
|
||||
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
@@ -167,16 +169,14 @@ class TestFormerMembershipAPI(TestMembershipAPI):
|
||||
assert membership_ids == expected_ids
|
||||
|
||||
def test_new_membership_multiple_club(self):
|
||||
assert self.user.has_perm("club.view_club")
|
||||
self.client.force_login(self.user)
|
||||
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")
|
||||
with self.assertNumQueries(11):
|
||||
response = self.client.get(url, arg)
|
||||
with self.assertNumQueries(7):
|
||||
response = self.client.get(self.url, query_params=arg)
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
|
||||
@@ -185,13 +185,11 @@ class TestFormerMembershipAPI(TestMembershipAPI):
|
||||
assert membership_ids == expected_ids
|
||||
|
||||
def test_new_membership_all_clubs(self):
|
||||
assert self.user.has_perm("club.view_club")
|
||||
self.client.force_login(self.user)
|
||||
since_date = localdate() - timedelta(weeks=1)
|
||||
arg = {"since_date": since_date}
|
||||
url = reverse("api:get_former_clubs_members_since_date")
|
||||
with self.assertNumQueries(14):
|
||||
response = self.client.get(url, arg)
|
||||
with self.assertNumQueries(8):
|
||||
response = self.client.get(self.url, query_params=arg)
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user