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