from datetime import time from pytest import approx, mark from libretime_shared.datetime import ( time_fromisoformat, time_in_milliseconds, time_in_seconds, ) def test_time_in_seconds(): value = time(hour=0, minute=3, second=34, microsecond=649600) assert time_in_seconds(value) == approx(214.65, abs=0.009) def test_time_in_milliseconds(): value = time(hour=0, minute=0, second=0, microsecond=500000) assert time_in_milliseconds(value) == 500 @mark.parametrize( "payload, expected", [ ("00:00:00.500000", time(microsecond=500000)), ("00:04:30.092540", time(minute=4, second=30, microsecond=92540)), ("00:04:30", time(minute=4, second=30)), ], ) def test_time_fromisoformat(payload, expected): assert time_fromisoformat(payload) == expected