slo-tracker/tests/test_slo_tracker.py
2025-06-02 09:00:00 +00:00

20 lines
547 B
Python

from unittest.mock import MagicMock, patch
from slo_tracker import evaluate_slo
def make_prom(value):
prom = MagicMock()
prom.custom_query.return_value = [{"value": [0, str(value)]}]
return prom
def test_slo_ok():
slo = {"name": "test", "query": "up", "target": 0.99}
result = evaluate_slo(make_prom(0.999), slo, "7d")
assert result["ok"] is True
def test_slo_burning():
slo = {"name": "test", "query": "up", "target": 0.99}
result = evaluate_slo(make_prom(0.985), slo, "7d")
assert result["ok"] is False