-
Использование дельты времени для допуска:
from datetime import datetime, timedelta def assert_datetime_within_tolerance(dt1, dt2, tolerance): assert abs(dt1 - dt2) <= tolerance, f"Datetimes not within tolerance: {dt1} and {dt2}" # Usage example dt1 = datetime(2022, 1, 1, 12, 0, 0) dt2 = datetime(2022, 1, 1, 12, 0, 5) tolerance = timedelta(seconds=10) assert_datetime_within_tolerance(dt1, dt2, tolerance)
-
Использование пользовательской функции для допуска:
from datetime import datetime def assert_datetime_within_tolerance(dt1, dt2, tolerance_seconds): assert abs(dt1 - dt2).total_seconds() <= tolerance_seconds, f"Datetimes not within tolerance: {dt1} and {dt2}" # Usage example dt1 = datetime(2022, 1, 1, 12, 0, 0) dt2 = datetime(2022, 1, 1, 12, 0, 8) tolerance_seconds = 10 assert_datetime_within_tolerance(dt1, dt2, tolerance_seconds)
-
Использование такой библиотеки, как
pytest
со встроенными утверждениями допуска по дате и времени:from datetime import datetime import pytest # Usage example dt1 = datetime(2022, 1, 1, 12, 0, 0) dt2 = datetime(2022, 1, 1, 12, 0, 12) tolerance_seconds = 10 pytest.approx(dt1.timestamp(), abs=tolerance_seconds) == dt2.timestamp()