test_ops_service.py 578 B

1234567891011121314151617181920
  1. import time
  2. from ops.service import RepeatedTask
  3. def test_repeated_task_snapshot_includes_recent_runs() -> None:
  4. task = RepeatedTask("demo", lambda: None, interval_seconds=1)
  5. task.start()
  6. deadline = time.time() + 2.5
  7. while time.time() < deadline:
  8. snapshot = task.snapshot()
  9. if snapshot["run_count"] >= 1:
  10. break
  11. time.sleep(0.05)
  12. task.stop()
  13. snapshot = task.snapshot()
  14. assert snapshot["run_count"] >= 1
  15. assert len(snapshot["recent_runs"]) >= 1
  16. assert snapshot["recent_runs"][-1]["status"] == "completed"