2022-10-06 13:15:22 +02:00
|
|
|
""" Test du module date_week_transition """
|
|
|
|
|
|
|
|
from django.test import TestCase
|
|
|
|
from datetime import datetime
|
|
|
|
import pytz
|
|
|
|
|
|
|
|
from ultron.tools.date_week_transition import (
|
2022-10-07 11:24:39 +02:00
|
|
|
is_valid_season,
|
2022-10-06 13:15:22 +02:00
|
|
|
from_date_to_week_number,
|
|
|
|
from_week_number_to_date,
|
|
|
|
get_number_of_weeks_between,
|
|
|
|
)
|
|
|
|
|
|
|
|
import pendulum
|
|
|
|
|
|
|
|
|
|
|
|
class URLTestCase(TestCase):
|
|
|
|
|
2022-10-07 11:24:39 +02:00
|
|
|
def test_is_valid_season(self):
|
|
|
|
self.assertEqual(is_valid_season("2022-2023"), True)
|
|
|
|
self.assertEqual(is_valid_season("2022-2024"), False)
|
|
|
|
self.assertEqual(is_valid_season("2024-2023"), False)
|
|
|
|
self.assertEqual(is_valid_season("1358-5682"), False)
|
|
|
|
self.assertEqual(is_valid_season("fgkrs-gkml"), False)
|
|
|
|
self.assertEqual(is_valid_season("drgnldsjgklfdtngl"), False)
|
|
|
|
self.assertEqual(is_valid_season("12675353878354"), False)
|
|
|
|
|
2022-10-06 13:15:22 +02:00
|
|
|
def test_from_week_number_to_date(self):
|
|
|
|
timezone = pytz.timezone("UTC")
|
|
|
|
|
|
|
|
start_date = datetime(2022, 10, 3, 0, 0, 0, tzinfo=pytz.UTC)
|
|
|
|
end_date = datetime(2022, 10, 9, 0, 0, 0, tzinfo=pytz.UTC)
|
|
|
|
self.assertEqual(from_week_number_to_date("2022-2023", 6), (start_date, end_date))
|
|
|
|
|
|
|
|
start_date = datetime(2023, 1, 30, 0, 0, 0, tzinfo=pytz.UTC)
|
|
|
|
end_date = datetime(2023, 2, 5, 0, 0, 0, tzinfo=pytz.UTC)
|
|
|
|
self.assertEqual(from_week_number_to_date("2022-2023", 22), (start_date, end_date))
|
|
|
|
|
|
|
|
start_date = datetime(2023, 7, 3, 0, 0, 0, tzinfo=pytz.UTC)
|
|
|
|
end_date = datetime(2023, 7, 9, 0, 0, 0, tzinfo=pytz.UTC)
|
|
|
|
self.assertEqual(from_week_number_to_date("2022-2023", 44), (start_date, end_date))
|
|
|
|
|
|
|
|
def test_from_date_to_week_number(self):
|
2022-10-07 14:56:31 +02:00
|
|
|
self.assertEqual(from_date_to_week_number(pendulum.date(2022, 9, 1)), ("2022-2023", 1))
|
|
|
|
self.assertEqual(from_date_to_week_number(pendulum.date(2023, 2, 5)), ("2022-2023", 22))
|
|
|
|
self.assertEqual(from_date_to_week_number(pendulum.date(2023, 7, 5)), ("2022-2023", 44))
|
2022-10-06 13:15:22 +02:00
|
|
|
|
|
|
|
def test_get_number_of_weeks_between(self):
|
|
|
|
self.assertEqual(get_number_of_weeks_between(pendulum.date(2022, 9, 1), pendulum.date(2022, 9, 4)), 0)
|
|
|
|
self.assertEqual(get_number_of_weeks_between(pendulum.date(2022, 9, 1), pendulum.date(2023, 2, 5)), 22)
|
|
|
|
self.assertEqual(get_number_of_weeks_between(pendulum.date(2022, 9, 1), pendulum.date(2023, 7, 5)), 44)
|
|
|
|
self.assertEqual(get_number_of_weeks_between(pendulum.date(2023, 2, 5), pendulum.date(2023, 7, 5)), 22)
|