Files
TimeTracker/tests/test_time_rounding_param.py
2025-11-14 12:08:50 +01:00

29 lines
1.3 KiB
Python

"""Additional parameterized tests for time rounding utilities."""
import pytest
from app.utils.time_rounding import round_time_duration
@pytest.mark.unit
@pytest.mark.parametrize(
"seconds, interval, method, expected",
[
pytest.param(3720, 5, "nearest", 3600, id="62m->nearest-5m=60m"),
pytest.param(3780, 5, "nearest", 3900, id="63m->nearest-5m=65m"),
pytest.param(120, 5, "nearest", 0, id="2m->nearest-5m=0"),
pytest.param(180, 5, "nearest", 300, id="3m->nearest-5m=5m"),
pytest.param(3720, 15, "up", 4500, id="62m->up-15m=75m"),
pytest.param(3600, 15, "up", 3600, id="60m->up-15m=60m"),
pytest.param(3660, 15, "up", 4500, id="61m->up-15m=75m"),
pytest.param(3720, 15, "down", 3600, id="62m->down-15m=60m"),
pytest.param(4440, 15, "down", 3600, id="74m->down-15m=60m"),
pytest.param(4500, 15, "down", 4500, id="75m->down-15m=75m"),
pytest.param(3720, 60, "nearest", 3600, id="62m->nearest-60m=60m"),
pytest.param(5400, 60, "nearest", 7200, id="90m->nearest-60m=120m"),
pytest.param(5340, 60, "nearest", 3600, id="89m->nearest-60m=60m"),
],
)
def test_round_time_duration_parametrized(seconds, interval, method, expected):
assert round_time_duration(seconds, interval, method) == expected