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

1"""Module for testing the Weekday value object.""" 

2 

3from datetime import datetime, timedelta 

4 

5import pytest 

6 

7from kwai_core.domain.value_objects.weekday import Weekday 

8 

9 

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) 

14 

15 

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) 

31 

32 assert weekday == result, "This weekday should be a monday"