from __future__ import annotations from datetime import datetime, timezone from ariadne.metrics.metrics import ( record_schedule_state, record_task_run, set_access_request_counts, set_cluster_state_metrics, ) def test_record_task_run_accepts_missing_duration() -> None: record_task_run("demo", "ok", None) def test_record_task_run_records_duration() -> None: record_task_run("demo", "ok", 1.5) def test_record_schedule_state_tracks_success_and_failure() -> None: record_schedule_state("demo", 10.0, 8.0, 20.0, True) record_schedule_state("demo", 11.0, None, None, False) def test_set_access_request_counts() -> None: set_access_request_counts({"pending": 2, "approved": 1}) def test_set_cluster_state_metrics() -> None: set_cluster_state_metrics(datetime.now(timezone.utc), 4, 3, 12.0, 1) def test_set_cluster_state_metrics_allows_missing_values() -> None: set_cluster_state_metrics(datetime.now(timezone.utc), None, None, None, None)