同步 incidents 相容欄位寫入
All checks were successful
CD Pipeline / deploy (push) Successful in 56s

This commit is contained in:
OoO
2026-05-12 23:31:33 +08:00
parent 539dea12c5
commit caa6263872
4 changed files with 159 additions and 2 deletions

View File

@@ -40,3 +40,53 @@ def test_auto_heal_code_fix_writes_audit(monkeypatch):
assert result.success is True
assert calls
assert calls[0][2].action == "CODE_FIX"
def test_incident_model_keeps_legacy_and_current_columns():
from database.manager import Base
columns = set(Base.metadata.tables["incidents"].columns.keys())
assert {
"error_traceback",
"traceback_str",
"playbook_id",
"matched_playbook_id",
"resolved_at",
} <= columns
def test_auto_heal_status_update_backfills_dual_playbook_columns(monkeypatch):
from services.auto_heal_service import AutoHealResult, AutoHealService
captured = {}
class Session:
def execute(self, stmt, params):
captured["sql"] = str(stmt)
captured["params"] = params
def commit(self):
captured["committed"] = True
def rollback(self):
captured["rolled_back"] = True
def close(self):
captured["closed"] = True
monkeypatch.setattr("services.auto_heal_service.get_session", lambda: Session())
svc = AutoHealService()
svc._update_incident_status(
{"incident_id": 123, "matched_playbook_id": 77},
AutoHealResult(True, "ALERT_ONLY", "ok"),
)
assert "matched_playbook_id" in captured["sql"]
assert "playbook_id" in captured["sql"]
assert "resolved_at" in captured["sql"]
assert captured["params"]["status"] == "closed"
assert captured["params"]["playbook_id"] == 77
assert captured["params"]["incident_id"] == 123
assert captured["committed"] is True