Files
manage/backend/tests/test_observability.py

38 lines
1.1 KiB
Python

"""Tests for observability metrics helpers."""
import time
from prometheus_client import REGISTRY
from media_library_viewer_api.observability import record_backup_run
def _metric_samples(metric_name):
return {
tuple(s.labels.values()): s.value
for family in REGISTRY.collect()
for s in family.samples
if s.name == metric_name
}
def test_record_backup_run_increments_counter():
record_backup_run("job-a", "success", success=True)
record_backup_run("job-a", "failure")
record_backup_run("job-b", "success", success=True)
samples = _metric_samples("manage_backup_runs_total")
assert samples[("job-a", "success")] >= 1.0
assert samples[("job-a", "failure")] >= 1.0
assert samples[("job-b", "success")] >= 1.0
def test_record_backup_run_sets_last_success_timestamp():
before = time.time()
record_backup_run("job-ts", "success", success=True)
after = time.time()
samples = _metric_samples("manage_backup_runs_last_success_timestamp")
value = samples[("job-ts",)]
assert before <= value <= after