Skip to content

Commit 7fbd9fc

Browse files
committed
fix: address PR feedback for Bedrock Agent parameters with commas
- Change @cached_property to @Property for resolved_query_string_parameters - Simplify the functional test by directly returning the query parameter - Remove redundant unit test
1 parent 3460955 commit 7fbd9fc

File tree

4 files changed

+4
-41
lines changed

4 files changed

+4
-41
lines changed

aws_lambda_powertools/utilities/data_classes/bedrock_agent_event.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ def query_string_parameters(self) -> dict[str, str]:
112112
parameters = self.get("parameters") or []
113113
return {x["name"]: x["value"] for x in parameters}
114114

115-
@cached_property
115+
@property
116116
def resolved_query_string_parameters(self) -> dict[str, list[str]]:
117117
"""
118118
Override the base implementation to prevent splitting parameter values by commas.

aws_lambda_powertools/utilities/data_classes/common.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ def query_string_parameters(self) -> dict[str, str]:
168168
def multi_value_query_string_parameters(self) -> dict[str, list[str]]:
169169
return self.get("multiValueQueryStringParameters") or {}
170170

171-
@cached_property
171+
@property
172172
def resolved_query_string_parameters(self) -> dict[str, list[str]]:
173173
"""
174174
This property determines the appropriate query string parameter to be used

tests/functional/event_handler/_pydantic/test_bedrock_agent.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -348,13 +348,10 @@ def handler() -> Optional[Dict]:
348348
def test_bedrock_agent_with_comma_parameters():
349349
# GIVEN a Bedrock Agent resolver
350350
app = BedrockAgentResolver()
351-
received_query = None
352351

353352
@app.post("/sql-query", description="Run a SQL query")
354353
def run_sql_query(query: Annotated[str, Query()]):
355-
nonlocal received_query
356-
received_query = query
357-
return {"result": "Query executed"}
354+
return {"result": query}
358355

359356
# WHEN calling the event handler with a parameter containing commas
360357
event = {
@@ -384,7 +381,5 @@ def run_sql_query(query: Annotated[str, Query()]):
384381
result = app(event, {})
385382

386383
# THEN the parameter with commas should be correctly passed to the handler
387-
assert received_query == "SELECT a.source_name, b.thing FROM table"
388-
assert result["response"]["httpStatusCode"] == 200
389384
body = json.loads(result["response"]["responseBody"]["application/json"]["body"])
390-
assert body["result"] == "Query executed"
385+
assert body["result"] == "SELECT a.source_name, b.thing FROM table"

tests/unit/data_classes/required_dependencies/test_bedrock_agent_event.py

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -62,35 +62,3 @@ def test_bedrock_agent_event_with_post():
6262
assert properties[1].name == raw_properties[1]["name"]
6363
assert properties[1].type == raw_properties[1]["type"]
6464
assert properties[1].value == raw_properties[1]["value"]
65-
66-
67-
def test_bedrock_agent_event_with_comma_parameters():
68-
event = {
69-
"actionGroup": "TestActionGroup",
70-
"messageVersion": "1.0",
71-
"sessionId": "12345678912345",
72-
"sessionAttributes": {},
73-
"promptSessionAttributes": {},
74-
"inputText": "Run a SQL query",
75-
"agent": {
76-
"alias": "TEST",
77-
"name": "test",
78-
"version": "1",
79-
"id": "test123",
80-
},
81-
"httpMethod": "POST",
82-
"apiPath": "/sql-query",
83-
"parameters": [
84-
{
85-
"name": "query",
86-
"type": "string",
87-
"value": "SELECT a.source_name, b.thing FROM table",
88-
},
89-
],
90-
}
91-
92-
parsed_event = BedrockAgentEvent(event)
93-
94-
assert parsed_event.query_string_parameters["query"] == "SELECT a.source_name, b.thing FROM table"
95-
assert parsed_event.resolved_query_string_parameters["query"] == ["SELECT a.source_name, b.thing FROM table"]
96-
assert len(parsed_event.resolved_query_string_parameters["query"]) == 1

0 commit comments

Comments
 (0)