orgstate / tests /test_core_decisions.py
Legal-i's picture
Initial OrgState deploy via Stage 150 free-tier stack
d2d1903 verified
"""
Real correctness tests for core.decisions — the evidence-label -> recommendation
mapping and the DecisionItem dataclass.
"""
from datetime import date
from core.decisions import DecisionItem, recommendation_for_issue
def _ev(label):
return {"label": label, "summary": "", "truth_type": "hard_truth", "confidence": 0.85}
def test_inventory_drop_maps_to_replenishment_recommendation():
rec = recommendation_for_issue("branch", [_ev("inventory_availability_drop")])
assert "inventory" in rec.lower()
assert "7 days" in rec
def test_backlog_increase_maps_to_warehouse_capacity_review():
rec = recommendation_for_issue("warehouse", [_ev("backlog_increase")])
assert "warehouse capacity" in rec.lower()
assert "72 hours" in rec
def test_sla_response_increase_maps_to_service_team_review():
rec = recommendation_for_issue("team", [_ev("sla_response_increase")])
assert "service team" in rec.lower()
def test_unknown_evidence_falls_back_to_generic_owner_assignment():
rec = recommendation_for_issue("process", [_ev("some_unmapped_label")])
assert "operations owner" in rec.lower()
def test_empty_evidence_falls_back_to_generic_recommendation():
rec = recommendation_for_issue("branch", [])
assert "operations owner" in rec.lower()
def test_first_matching_label_wins_when_multiple_present():
# inventory check is evaluated before backlog in the current policy
rec = recommendation_for_issue(
"warehouse", [_ev("inventory_availability_drop"), _ev("backlog_increase")]
)
assert "inventory" in rec.lower()
def test_decision_item_constructs_with_defaults():
item = DecisionItem(
decision_id="d1",
issue_id="i1",
entity_id="route_14",
created_at=date(2026, 5, 15),
title="Review route_14 drift",
urgency=0.8,
recommendation="...",
confidence=0.84,
)
assert item.evidence == []
assert item.status == "open"