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 core.models import User, Group, Page, AnonymousUser
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
"""
@ -621,6 +621,25 @@ class UserIsInGroupTest(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):
autumn_month, autumn_day = settings.SITH_SEMESTER_START_AUTUMN
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()):
start = get_start_of_semester(d)
if start.month <= 6:
return "P" + str(start.year)[-2:]
else:
if (
start.month == settings.SITH_SEMESTER_START_AUTUMN[0]
and start.day == settings.SITH_SEMESTER_START_AUTUMN[1]
):
return "A" + str(start.year)[-2:]
else:
return "P" + str(start.year)[-2:]
def file_exist(path):