Fix imprecision on get_semester util function

This commit is contained in:
Julien Constant 2023-09-07 13:25:30 +02:00
parent 79e497a251
commit abe98ace07
2 changed files with 27 additions and 4 deletions

View File

@ -26,7 +26,7 @@ from django.utils.timezone import now
from club.models import Membership from club.models import Membership
from core.models import User, Group, Page, AnonymousUser from core.models import User, Group, Page, AnonymousUser
from core.markdown import markdown from core.markdown import markdown
from core.utils import get_start_of_semester from core.utils import get_semester, get_start_of_semester
from sith import settings from sith import settings
""" """
@ -621,6 +621,25 @@ class UserIsInGroupTest(TestCase):
class UtilsTest(TestCase): class UtilsTest(TestCase):
def test_get_semester(self):
autumn_month, autumn_day = settings.SITH_SEMESTER_START_AUTUMN
spring_month, spring_day = settings.SITH_SEMESTER_START_SPRING
t1_autumn_day = date(2025, 1, 4) # between 1st January and 15 February
t2_autumn_day = date(2024, 9, 1) # between 15 August and 31 December
t3_autumn_day = date(2024, autumn_month, autumn_day) # on 15 August
t1_spring_day = date(2023, 3, 1) # between 15 February and 15 August
t2_spring_day = date(2023, spring_month, spring_day) # on 15 February
self.assertEqual(get_semester(t1_autumn_day), "A24")
self.assertEqual(get_semester(t2_autumn_day), "A24")
self.assertEqual(get_semester(t3_autumn_day), "A24")
self.assertEqual(get_semester(t1_spring_day), "P23")
self.assertEqual(get_semester(t2_spring_day), "P23")
def test_get_start_of_semester(self): def test_get_start_of_semester(self):
autumn_month, autumn_day = settings.SITH_SEMESTER_START_AUTUMN autumn_month, autumn_day = settings.SITH_SEMESTER_START_AUTUMN
spring_month, spring_day = settings.SITH_SEMESTER_START_SPRING spring_month, spring_day = settings.SITH_SEMESTER_START_SPRING

View File

@ -80,10 +80,14 @@ def get_start_of_semester(today=date.today()) -> date:
def get_semester(d=date.today()): def get_semester(d=date.today()):
start = get_start_of_semester(d) start = get_start_of_semester(d)
if start.month <= 6:
return "P" + str(start.year)[-2:] if (
else: start.month == settings.SITH_SEMESTER_START_AUTUMN[0]
and start.day == settings.SITH_SEMESTER_START_AUTUMN[1]
):
return "A" + str(start.year)[-2:] return "A" + str(start.year)[-2:]
else:
return "P" + str(start.year)[-2:]
def file_exist(path): def file_exist(path):