20 lines
547 B
Python
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
|