ariadne/tests/test_pod_cleaner.py
2026-04-21 04:54:41 -03:00

50 lines
1.7 KiB
Python

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
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