"""Unit tests for the schedule due-check (pure, no DB).""" from datetime import datetime, timedelta, timezone from types import SimpleNamespace from steward.ansible.scheduler import is_due NOW = datetime(2026, 6, 16, 12, 0, 0, tzinfo=timezone.utc) def _sched(enabled=True, last=None, interval=3600): return SimpleNamespace(enabled=enabled, last_run_at=last, interval_seconds=interval) def test_never_run_is_due(): assert is_due(_sched(last=None), NOW) is True def test_disabled_is_never_due(): assert is_due(_sched(enabled=False, last=None), NOW) is False def test_due_when_interval_elapsed(): assert is_due(_sched(last=NOW - timedelta(seconds=3600), interval=3600), NOW) is True assert is_due(_sched(last=NOW - timedelta(seconds=3700), interval=3600), NOW) is True def test_not_due_before_interval(): assert is_due(_sched(last=NOW - timedelta(seconds=1800), interval=3600), NOW) is False