From 4a25186844c5fc439f670e4ec3cae5902fd544a4 Mon Sep 17 00:00:00 2001 From: Chirag Gupta <103719146+chiruu12@users.noreply.github.com> Date: Mon, 5 Oct 2026 03:38:34 +0530 Subject: [PATCH] fix(data-classes): handle keyword arguments in CaseInsensitiveDict.update --- .../utilities/data_classes/common.py | 2 +- .../required_dependencies/test_common.py | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 tests/unit/data_classes/required_dependencies/test_common.py diff --git a/aws_lambda_powertools/utilities/data_classes/common.py b/aws_lambda_powertools/utilities/data_classes/common.py index 3b9171b286d..c8908eda9ce 100644 --- a/aws_lambda_powertools/utilities/data_classes/common.py +++ b/aws_lambda_powertools/utilities/data_classes/common.py @@ -61,7 +61,7 @@ def update(self, data=None, **kwargs): if isinstance(data, Mapping): data = data.items() super().update((k.lower(), v) for k, v in data) - super().update((k.lower(), v) for k, v in kwargs) + super().update((k.lower(), v) for k, v in kwargs.items()) def __contains__(self, k): return super().__contains__(k.lower()) diff --git a/tests/unit/data_classes/required_dependencies/test_common.py b/tests/unit/data_classes/required_dependencies/test_common.py new file mode 100644 index 00000000000..2a2ad1f0f93 --- /dev/null +++ b/tests/unit/data_classes/required_dependencies/test_common.py @@ -0,0 +1,19 @@ +from __future__ import annotations + +from aws_lambda_powertools.utilities.data_classes.common import CaseInsensitiveDict + + +def test_case_insensitive_dict_init_with_kwargs(): + headers = CaseInsensitiveDict({"Content-Type": "application/json"}, X_Trace_Id="abc") + + assert headers == {"content-type": "application/json", "x_trace_id": "abc"} + assert headers["x_trace_id"] == "abc" + + +def test_case_insensitive_dict_update_with_kwargs(): + headers = CaseInsensitiveDict({"Host": "example.com"}) + headers.update(ab="1", User_Agent="test") + + assert headers["AB"] == "1" + assert headers["user_agent"] == "test" + assert len(headers) == 3