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]):
|
def fetch_new_club_members(self, filters: Query[MembershipFilterSchema]):
|
||||||
"""give all the members of all clubs that have joined since a given date"""
|
"""give all the members of all clubs that have joined since a given date"""
|
||||||
memberships = Membership.objects.ongoing().filter(
|
memberships = (
|
||||||
start_date__gte=filters.since_date, end_date__isnull=True
|
Membership.objects.ongoing()
|
||||||
|
.filter(start_date__gte=filters.since_date, end_date__isnull=True)
|
||||||
|
.select_related("user", "role")
|
||||||
)
|
)
|
||||||
if filters.clubs_id:
|
if filters.clubs_id:
|
||||||
memberships = memberships.filter(club_id__in=filters.clubs_id)
|
memberships = memberships.filter(club_id__in=filters.clubs_id)
|
||||||
@@ -96,7 +98,7 @@ class ClubMembershipController(ControllerBase):
|
|||||||
memberships = Membership.objects.filter(
|
memberships = Membership.objects.filter(
|
||||||
start_date__lt=filters.since_date,
|
start_date__lt=filters.since_date,
|
||||||
end_date__gte=filters.since_date,
|
end_date__gte=filters.since_date,
|
||||||
)
|
).select_related("user", "role")
|
||||||
if filters.clubs_id:
|
if filters.clubs_id:
|
||||||
memberships = memberships.filter(club_id__in=filters.clubs_id)
|
memberships = memberships.filter(club_id__in=filters.clubs_id)
|
||||||
|
|
||||||
|
|||||||
@@ -96,14 +96,17 @@ class TestMembershipAPI(TestCase):
|
|||||||
|
|
||||||
|
|
||||||
class TestNewMembershipAPI(TestMembershipAPI):
|
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):
|
def test_new_membership_one_club(self):
|
||||||
assert self.user.has_perm("club.view_club")
|
|
||||||
self.client.force_login(self.user)
|
self.client.force_login(self.user)
|
||||||
since_date = localdate() - timedelta(weeks=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")
|
with self.assertNumQueries(6):
|
||||||
with self.assertNumQueries(8):
|
response = self.client.get(self.url, query_params=arg)
|
||||||
response = self.client.get(url, arg)
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
data = response.json()
|
data = response.json()
|
||||||
|
|
||||||
@@ -112,16 +115,14 @@ class TestNewMembershipAPI(TestMembershipAPI):
|
|||||||
assert membership_ids == expected_ids
|
assert membership_ids == expected_ids
|
||||||
|
|
||||||
def test_new_membership_multiple_club(self):
|
def test_new_membership_multiple_club(self):
|
||||||
assert self.user.has_perm("club.view_club")
|
|
||||||
self.client.force_login(self.user)
|
self.client.force_login(self.user)
|
||||||
since_date = localdate() - timedelta(weeks=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")
|
with self.assertNumQueries(7):
|
||||||
with self.assertNumQueries(11):
|
response = self.client.get(self.url, query_params=arg)
|
||||||
response = self.client.get(url, arg)
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
data = response.json()
|
data = response.json()
|
||||||
|
|
||||||
@@ -130,13 +131,11 @@ class TestNewMembershipAPI(TestMembershipAPI):
|
|||||||
assert membership_ids == expected_ids
|
assert membership_ids == expected_ids
|
||||||
|
|
||||||
def test_new_membership_all_clubs(self):
|
def test_new_membership_all_clubs(self):
|
||||||
assert self.user.has_perm("club.view_club")
|
|
||||||
self.client.force_login(self.user)
|
self.client.force_login(self.user)
|
||||||
since_date = localdate() - timedelta(weeks=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")
|
with self.assertNumQueries(8):
|
||||||
with self.assertNumQueries(14):
|
response = self.client.get(self.url, query_params=arg)
|
||||||
response = self.client.get(url, arg)
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
data = response.json()
|
data = response.json()
|
||||||
|
|
||||||
@@ -150,14 +149,17 @@ class TestNewMembershipAPI(TestMembershipAPI):
|
|||||||
|
|
||||||
|
|
||||||
class TestFormerMembershipAPI(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):
|
def test_former_membership_one_club(self):
|
||||||
assert self.user.has_perm("club.view_club")
|
|
||||||
self.client.force_login(self.user)
|
self.client.force_login(self.user)
|
||||||
since_date = localdate() - timedelta(weeks=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")
|
with self.assertNumQueries(6):
|
||||||
with self.assertNumQueries(8):
|
response = self.client.get(self.url, query_params=arg)
|
||||||
response = self.client.get(url, arg)
|
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
data = response.json()
|
data = response.json()
|
||||||
@@ -167,16 +169,14 @@ class TestFormerMembershipAPI(TestMembershipAPI):
|
|||||||
assert membership_ids == expected_ids
|
assert membership_ids == expected_ids
|
||||||
|
|
||||||
def test_new_membership_multiple_club(self):
|
def test_new_membership_multiple_club(self):
|
||||||
assert self.user.has_perm("club.view_club")
|
|
||||||
self.client.force_login(self.user)
|
self.client.force_login(self.user)
|
||||||
since_date = localdate() - timedelta(weeks=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")
|
with self.assertNumQueries(7):
|
||||||
with self.assertNumQueries(11):
|
response = self.client.get(self.url, query_params=arg)
|
||||||
response = self.client.get(url, arg)
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
data = response.json()
|
data = response.json()
|
||||||
|
|
||||||
@@ -185,13 +185,11 @@ class TestFormerMembershipAPI(TestMembershipAPI):
|
|||||||
assert membership_ids == expected_ids
|
assert membership_ids == expected_ids
|
||||||
|
|
||||||
def test_new_membership_all_clubs(self):
|
def test_new_membership_all_clubs(self):
|
||||||
assert self.user.has_perm("club.view_club")
|
|
||||||
self.client.force_login(self.user)
|
self.client.force_login(self.user)
|
||||||
since_date = localdate() - timedelta(weeks=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")
|
with self.assertNumQueries(8):
|
||||||
with self.assertNumQueries(14):
|
response = self.client.get(self.url, query_params=arg)
|
||||||
response = self.client.get(url, arg)
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
data = response.json()
|
data = response.json()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user