diff --git a/tests/test_name_generator.py b/tests/test_name_generator.py new file mode 100644 index 0000000..e64363d --- /dev/null +++ b/tests/test_name_generator.py @@ -0,0 +1,10 @@ +from __future__ import annotations + +from ariadne.utils.name_generator import NameGenerator + + +def test_name_generator_returns_none_after_exhausting_attempts(monkeypatch) -> None: + generator = NameGenerator(max_attempts=2) + monkeypatch.setattr(NameGenerator, "generate", lambda self: "already-used") + + assert generator.unique({"already-used"}) is None diff --git a/tests/test_pod_cleaner.py b/tests/test_pod_cleaner.py index 6c4d313..cb1f54a 100644 --- a/tests/test_pod_cleaner.py +++ b/tests/test_pod_cleaner.py @@ -35,3 +35,15 @@ def test_clean_finished_pods_handles_failure(monkeypatch) -> None: 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