Skip to content

Commit 3e4d498

Browse files
authored
fix(data-classes): handle keyword arguments in CaseInsensitiveDict.update (#8518)
1 parent 556478f commit 3e4d498

2 files changed

Lines changed: 20 additions & 1 deletion

File tree

‎aws_lambda_powertools/utilities/data_classes/common.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def update(self, data=None, **kwargs):
6161
if isinstance(data, Mapping):
6262
data = data.items()
6363
super().update((k.lower(), v) for k, v in data)
64-
super().update((k.lower(), v) for k, v in kwargs)
64+
super().update((k.lower(), v) for k, v in kwargs.items())
6565

6666
def __contains__(self, k):
6767
return super().__contains__(k.lower())
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from __future__ import annotations
2+
3+
from aws_lambda_powertools.utilities.data_classes.common import CaseInsensitiveDict
4+
5+
6+
def test_case_insensitive_dict_init_with_kwargs():
7+
headers = CaseInsensitiveDict({"Content-Type": "application/json"}, X_Trace_Id="abc")
8+
9+
assert headers == {"content-type": "application/json", "x_trace_id": "abc"}
10+
assert headers["x_trace_id"] == "abc"
11+
12+
13+
def test_case_insensitive_dict_update_with_kwargs():
14+
headers = CaseInsensitiveDict({"Host": "example.com"})
15+
headers.update(ab="1", User_Agent="test")
16+
17+
assert headers["AB"] == "1"
18+
assert headers["user_agent"] == "test"
19+
assert len(headers) == 3

0 commit comments

Comments
 (0)