2026-01-20 23:03:04 -03:00
|
|
|
from __future__ import annotations
|
|
|
|
|
|
|
|
|
|
import ariadne.services.pod_cleaner as pod_cleaner
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_clean_finished_pods(monkeypatch) -> None:
|
|
|
|
|
calls = {"delete": []}
|
|
|
|
|
|
|
|
|
|
def fake_get_json(path: str):
|
|
|
|
|
if "Succeeded" in path:
|
|
|
|
|
return {"items": [{"metadata": {"namespace": "ns", "name": "ok"}}]}
|
|
|
|
|
return {"items": [{"metadata": {"namespace": "ns", "name": "fail"}}]}
|
|
|
|
|
|
|
|
|
|
def fake_delete_json(path: str):
|
|
|
|
|
calls["delete"].append(path)
|
|
|
|
|
return {"ok": True}
|
|
|
|
|
|
|
|
|
|
monkeypatch.setattr(pod_cleaner, "get_json", fake_get_json)
|
|
|
|
|
monkeypatch.setattr(pod_cleaner, "delete_json", fake_delete_json)
|
|
|
|
|
|
|
|
|
|
summary = pod_cleaner.clean_finished_pods()
|
|
|
|
|
assert summary.deleted == 2
|
|
|
|
|
assert summary.failures == 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_clean_finished_pods_handles_failure(monkeypatch) -> None:
|
|
|
|
|
def fake_get_json(_path: str):
|
|
|
|
|
return {"items": [{"metadata": {"namespace": "ns", "name": "bad"}}]}
|
|
|
|
|
|
|
|
|
|
def fake_delete_json(_path: str):
|
|
|
|
|
raise RuntimeError("boom")
|
|
|
|
|
|
|
|
|
|
monkeypatch.setattr(pod_cleaner, "get_json", fake_get_json)
|
|
|
|
|
monkeypatch.setattr(pod_cleaner, "delete_json", fake_delete_json)
|
|
|
|
|
|
|
|
|
|
summary = pod_cleaner.clean_finished_pods()
|
|
|
|
|
assert summary.failures == 2
|
2026-04-21 04:54:41 -03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_clean_finished_pods_skips_missing_identifiers(monkeypatch) -> None:
|
|
|
|
|
def fake_get_json(_path: str):
|
|
|
|
|
return {"items": [{"metadata": {"namespace": "ns"}}, {"metadata": {"name": "pod"}}, {"metadata": "bad"}]}
|
|
|
|
|
|
|
|
|
|
monkeypatch.setattr(pod_cleaner, "get_json", fake_get_json)
|
|
|
|
|
monkeypatch.setattr(pod_cleaner, "delete_json", lambda _path: None)
|
|
|
|
|
|
|
|
|
|
summary = pod_cleaner.clean_finished_pods()
|
|
|
|
|
assert summary.skipped == 6
|
|
|
|
|
assert summary.deleted == 0
|