Account for the cadence in all the messages
Some checks failed
Test, Build and Publish / test (pull_request) Failing after 23s
Test, Build and Publish / build-and-push-images (pull_request) Has been skipped

This commit is contained in:
Marc Di Luzio 2024-09-22 14:20:47 +01:00
parent 2ad7ed2ff2
commit 7491a4d2f8
5 changed files with 109 additions and 40 deletions

View file

@ -1,4 +1,6 @@
import matchy.util as util
from datetime import datetime, timedelta
import pytest
def test_iterate_all_shifts():
@ -50,3 +52,51 @@ def test_randomized():
assert util.randomised(string)() == "foo"
assert util.randomised(list)() in list()
@pytest.mark.parametrize(
"weekday, hour, start, expected",
[
pytest.param(
0, 0, datetime(2024, 9, 22),
datetime(2024, 9, 23), id="tomorrow"
),
pytest.param(
4, 16, datetime(2024, 9, 22),
datetime(2024, 9, 27, 16), id="complicated"
),
],
)
def test_get_next_datetime(weekday, hour, start, expected):
value = util.get_next_datetime(weekday, hour, start)
assert value == expected
@pytest.mark.parametrize(
"weekday, hour, start, cadence, cadence_start, expected",
[
pytest.param(
0, 0, datetime(2024, 9, 22),
1, datetime(2024, 9, 22),
datetime(2024, 9, 23), id="tomorrow"
),
pytest.param(
0, 0, datetime(2024, 9, 22),
2, datetime(2024, 9, 22),
datetime(2024, 9, 23), id="every-other"
),
pytest.param(
0, 0, datetime(2024, 9, 22),
2, datetime(2024, 9, 14),
datetime(2024, 9, 30), id="every-other-before"
),
pytest.param(
0, 0, datetime(2024, 9, 22),
3, datetime(2024, 9, 14),
datetime(2024, 10, 7), id="every-third"
),
],
)
def test_get_next_datetime_with_cadence(weekday, hour, start, expected, cadence, cadence_start):
value = util.get_next_datetime_with_cadence(weekday, hour, start, cadence, cadence_start)
assert value == expected