Welle 1 · Ausführer: Zertifikats-Zwischenspeicher hieß wie seine Funktion; PVE/PBS mit Rechnernamen
Der erste echte Bericht trug statt der Zertifikate „'function' object is not subscriptable“: def _zertifikate() überschrieb das gleichnamige Dict. Jetzt _zertifikate_stand, mit Test über genau diesen Weg (auf dem Host nachgeprüft: 12 Zertifikate). Proxmox-Host und PBS heißen in der Liste nach ihrem Rechnernamen statt „localhost“. OFFENE-FAEDEN: Welle 1 erledigt, AdGuard-Zugang offen beim User. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
d063f745f6
commit
371dcc7ce3
@@ -78,8 +78,11 @@ def bewerten(z: dict, jetzt: float) -> dict:
|
||||
elif alt:
|
||||
stufe, art, satz = "gelb", "alt", f"ausgeliefert wird noch das alte (bis {_datum(ausgeliefert)})"
|
||||
namen = [n for n in z.get("namen") or [] if n]
|
||||
# Anzeigename: bei Proxmox-Host und PBS der Rechnername (ihr erster Name ist „localhost“), sonst der erste Name.
|
||||
eigener = z.get("inhaber") if z.get("quelle") in WESSEN else None
|
||||
name = eigener or next((n for n in namen if n != "localhost"), None) or z.get("inhaber") or z.get("name")
|
||||
return {"quelle": z.get("quelle"), "wo": QUELLE.get(z.get("quelle"), z.get("quelle")), "gast": z.get("gast"),
|
||||
"name": namen[0] if namen else z.get("inhaber") or z.get("name"), "namen": namen, "datei": z.get("name"),
|
||||
"name": name, "namen": namen, "datei": z.get("name"),
|
||||
"aussteller": z.get("aussteller"), "von": von, "bis": bis, "rest_s": int(rest),
|
||||
"laufzeit_s": int(laufzeit) if laufzeit else None, "stufe": stufe, "art": art, "problem": satz}
|
||||
|
||||
|
||||
@@ -90,12 +90,26 @@ def test_zertifikate_lesen(a, monkeypatch):
|
||||
assert len(befehle) == 2 and "/opt/npmplus/tls/certbot/live/*/fullchain.pem" in befehle[0]
|
||||
|
||||
|
||||
def test_zertifikate_im_bericht_hoechstens_alle_30_minuten(a, monkeypatch):
|
||||
"""Der Weg, den der Bericht nimmt: 25.09.2026 abends hieß der Zwischenspeicher wie die Funktion, und der erste
|
||||
echte Bericht trug statt der Zertifikate „'function' object is not subscriptable“."""
|
||||
gelesen: list[int] = []
|
||||
monkeypatch.setattr(a, "_zertifikate_lesen", lambda gaeste: gelesen.append(len(gaeste)) or [{"quelle": "pve"}])
|
||||
monkeypatch.setattr(a, "_zertifikate_stand", {"zeit": 0.0, "liste": None})
|
||||
assert a._zertifikate([]) == [{"quelle": "pve"}]
|
||||
assert a._zertifikate([]) == [{"quelle": "pve"}] and gelesen == [0] # gemerkt
|
||||
a._zertifikate_stand["zeit"] -= a.ZERTIFIKATE_ALLE_S
|
||||
a._zertifikate([{"vmid": 1}])
|
||||
assert gelesen == [0, 1]
|
||||
|
||||
|
||||
# --- Bewertung -----------------------------------------------------------------------------------------------------
|
||||
|
||||
NPM = {"quelle": "npm", "gast": 101, "name": "npm-11", "von": _utc(2026, 9, 23, 4, 45, 2),
|
||||
"bis": _utc(2026, 9, 29, 20, 45, 1), "aussteller": "Let's Encrypt", "namen": ["git.tobisniceshomelab.ddnsfree.com"]}
|
||||
PVE = {"quelle": "pve", "gast": None, "name": "pve-ssl.pem", "von": _utc(2025, 8, 5, 16, 5, 14),
|
||||
"bis": _utc(2027, 8, 5, 16, 5, 14), "aussteller": "PVE Cluster Manager CA", "inhaber": "pve.fritz.box", "namen": []}
|
||||
"bis": _utc(2027, 8, 5, 16, 5, 14), "aussteller": "PVE Cluster Manager CA", "inhaber": "pve.fritz.box",
|
||||
"namen": ["localhost", "pve", "pve.fritz.box"]}
|
||||
|
||||
|
||||
def test_bewertung_nach_laufzeit():
|
||||
|
||||
Reference in New Issue
Block a user