From b2c7c9bd01a446d4c2de62a4053175a09404b04d Mon Sep 17 00:00:00 2001 From: Ankit-cs Date: Thu, 15 Oct 2026 20:37:21 +0530 Subject: [PATCH] fix(kubernetes): missing kubernetes_kind or attribute_path errors are dropped Related to #404 --- src/tirith/providers/kubernetes/handler.py | 10 ++++++++-- .../kubernetes/test_missing_arguments.py | 15 +++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 tests/providers/kubernetes/test_missing_arguments.py diff --git a/src/tirith/providers/kubernetes/handler.py b/src/tirith/providers/kubernetes/handler.py index 7a038b37..d0ac4a57 100644 --- a/src/tirith/providers/kubernetes/handler.py +++ b/src/tirith/providers/kubernetes/handler.py @@ -8,9 +8,15 @@ def get_value(provider_args: Dict, input_data: Union[Dict, List], outputs: list) attribute_path: str = provider_args.get("attribute_path", "") if target_kind is None: - return create_result_dict(value=ProviderError(severity_value=99), err="kubernetes_kind must be provided") + outputs.append( + create_result_dict(value=ProviderError(severity_value=99), err="kubernetes_kind must be provided") + ) + return outputs if attribute_path == "": - return create_result_dict(value=ProviderError(severity_value=99), err="attribute_path must be provided") + outputs.append( + create_result_dict(value=ProviderError(severity_value=99), err="attribute_path must be provided") + ) + return outputs kubernetes_resources = input_data is_kind_found = False diff --git a/tests/providers/kubernetes/test_missing_arguments.py b/tests/providers/kubernetes/test_missing_arguments.py new file mode 100644 index 00000000..39410f1b --- /dev/null +++ b/tests/providers/kubernetes/test_missing_arguments.py @@ -0,0 +1,15 @@ +from tirith.providers.kubernetes.handler import provide + + +def test_missing_kubernetes_kind(): + result = provide({"operation_type": "attribute", "attribute_path": "spec"}, [{"kind": "Pod", "spec": {}}]) + assert len(result) == 1 + assert result[0]["err"] == "kubernetes_kind must be provided" + assert result[0]["value"].severity_value == 99 + + +def test_missing_attribute_path(): + result = provide({"operation_type": "attribute", "kubernetes_kind": "Pod"}, [{"kind": "Pod", "spec": {}}]) + assert len(result) == 1 + assert result[0]["err"] == "attribute_path must be provided" + assert result[0]["value"].severity_value == 99