Coverage for src/tests/core/domain/value_objects/test_weekday.py: 100%
10 statements
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
1"""Module for testing the Weekday value object."""
3from datetime import datetime, timedelta
5import pytest
7from kwai_core.domain.value_objects.weekday import Weekday
10def first_monday(year, month):
11 """Get the first monday of a month."""
12 day = (8 - datetime(year, month, 1).weekday()) % 7
13 return datetime(year, month, day)
16@pytest.mark.parametrize(
17 "test_input, result",
18 [
19 (first_monday(2023, 1), Weekday.MONDAY),
20 (first_monday(2023, 1) + timedelta(days=1), Weekday.TUESDAY),
21 (first_monday(2023, 1) + timedelta(days=2), Weekday.WEDNESDAY),
22 (first_monday(2023, 1) + timedelta(days=3), Weekday.THURSDAY),
23 (first_monday(2023, 1) + timedelta(days=4), Weekday.FRIDAY),
24 (first_monday(2023, 1) + timedelta(days=5), Weekday.SATURDAY),
25 (first_monday(2023, 1) + timedelta(days=6), Weekday.SUNDAY),
26 ],
27)
28def test_create_weekday(test_input, result):
29 """Test the creation of a weekday."""
30 weekday = Weekday.create_from_date(test_input)
32 assert weekday == result, "This weekday should be a monday"