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