74 lines
2.3 KiB
Python
74 lines
2.3 KiB
Python
""" Test du module date_week_transition """
|
|
|
|
from django.test import TestCase
|
|
from datetime import datetime
|
|
import pytz
|
|
|
|
from jarvis.tools.date_week_transition import (
|
|
from_date_to_week_number,
|
|
from_week_number_to_date,
|
|
get_number_of_weeks_between,
|
|
)
|
|
|
|
import pendulum
|
|
|
|
|
|
class FunctionTestCase(TestCase):
|
|
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):
|
|
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)
|
|
)
|
|
|
|
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,
|
|
)
|