ariadne/tests/test_pod_cleaner.py

38 lines
1.2 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