waechter: Werkzeugfehler eines Jobs bis zum naechsten Lauf ausblenden
Heute stand ein schon behobener web_extract-Fehler des News-Jobs bis zum naechsten Lauf (morgen 07:00) im Cockpit. Neuer Knopf "Ausblenden bis zum naechsten Lauf": MC2 merkt sich den Lauf in /srv/models/mc2-quittiert.json, der Waechter blendet genau diesen Lauf aus. Hat der naechste Lauf wieder Fehler, erscheint der Hinweis erneut. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
4cd856bd34
commit
b0c9549a29
@@ -139,3 +139,28 @@ def test_abgestuerzte_pruefung_wird_ein_gelber_befund(monkeypatch, tmp_path):
|
||||
hinweise = waechter._stand["hinweise"]
|
||||
assert "pruefung:pruefe_hermes_jobs" in hinweise
|
||||
assert "neues Format" in hinweise["pruefung:pruefe_hermes_jobs"]["text"]
|
||||
|
||||
|
||||
def test_ausblenden_gilt_bis_zum_naechsten_lauf(monkeypatch, tmp_path):
|
||||
"""24.09.2026: Ein behobener Werkzeugfehler (z. B. web_extract im News-Job) soll sich
|
||||
ausblenden lassen — kommt aber wieder, sobald ein neuer Lauf erneut Fehler hat."""
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
monkeypatch.setattr(waechter, "QUITTIERT_PATH", tmp_path / "mc2-quittiert.json")
|
||||
heute = (datetime.now() - timedelta(hours=2)).isoformat(timespec="seconds")
|
||||
lauf = {"started_at": heute}
|
||||
monkeypatch.setattr(waechter, "_hermes_jobs", lambda: [{"id": "news", "name": "Daily News Report",
|
||||
"enabled": True, "last_status": "ok"}])
|
||||
monkeypatch.setattr(waechter, "_letzter_lauf", lambda jid: lauf)
|
||||
monkeypatch.setattr(waechter, "_errors_log_ende", lambda: [])
|
||||
monkeypatch.setattr(waechter, "werkzeugfehler_im_lauf", lambda zeilen, jid, start: (2, "web_extract: Fehler"))
|
||||
|
||||
befunde = waechter.pruefe_hermes_jobs()
|
||||
assert [b.id for b in befunde] == ["job:news:werkzeug"]
|
||||
assert any(a["id"] == "ausblenden" and a["lauf"] == heute for a in befunde[0].aktionen)
|
||||
|
||||
waechter.quittieren("job:news:werkzeug", heute)
|
||||
assert waechter.pruefe_hermes_jobs() == []
|
||||
|
||||
lauf["started_at"] = (datetime.now() - timedelta(minutes=5)).isoformat(timespec="seconds")
|
||||
assert [b.id for b in waechter.pruefe_hermes_jobs()] == ["job:news:werkzeug"]
|
||||
|
||||
Reference in New Issue
Block a user