Skip to content

Commit a7d3266

Browse files
committed
test: add Delivery Excellence scorecard coverage
1 parent d8c5a7e commit a7d3266

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

tests/test_scorecard.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
from __future__ import annotations
2+
3+
from sourceos_syncd.reports import snapshot
4+
from sourceos_syncd.scorecard import evaluate_scorecard, validate_scorecard
5+
6+
7+
def test_scorecard_ready_for_healthy_snapshot():
8+
report = snapshot()
9+
scorecard = evaluate_scorecard(report)
10+
assert scorecard["schema"] == "sourceos.delivery-scorecard/v1alpha1"
11+
assert scorecard["component"] == "sourceos-syncd"
12+
assert scorecard["status"] in {"ready", "watch"}
13+
assert 0 <= scorecard["score"] <= 100
14+
assert validate_scorecard(scorecard) == []
15+
16+
17+
def test_scorecard_blocks_contract_errors():
18+
report = snapshot()
19+
del report["identity"]["node_id_hash"]
20+
scorecard = evaluate_scorecard(report)
21+
assert scorecard["status"] == "blocked"
22+
assert any(gate["id"] == "contract.valid" and gate["status"] == "fail" for gate in scorecard["gates"])
23+
24+
25+
def test_scorecard_warns_on_unattested_state():
26+
report = snapshot()
27+
scorecard = evaluate_scorecard(report)
28+
assert scorecard["dimensions"]["attestation_signed"] is False
29+
assert scorecard["score"] <= 95
30+
31+
32+
def test_scorecard_validation_catches_bad_score():
33+
report = snapshot()
34+
scorecard = evaluate_scorecard(report)
35+
scorecard["score"] = 101
36+
errors = validate_scorecard(scorecard)
37+
assert any("score" in error for error in errors)

0 commit comments

Comments
 (0)