Skip to content

Commit

Permalink
set queryStringParameters to None in API GW invocation event if no qu…
Browse files Browse the repository at this point in the history
…ery params present (#5893)
  • Loading branch information
jops-wtakase committed Apr 21, 2022
1 parent 402a079 commit 4553d47
Show file tree
Hide file tree
Showing 2 changed files with 92 additions and 2 deletions.
4 changes: 2 additions & 2 deletions localstack/services/awslambda/lambda_api.py
Expand Up @@ -615,8 +615,8 @@ def construct_invocation_event(
"body": data,
"isBase64Encoded": is_base64_encoded,
"httpMethod": method,
"queryStringParameters": query_string_params,
"multiValueQueryStringParameters": multi_value_dict_for_list(query_string_params),
"queryStringParameters": query_string_params or None,
"multiValueQueryStringParameters": multi_value_dict_for_list(query_string_params) or None,
}


Expand Down
90 changes: 90 additions & 0 deletions tests/unit/services/awslambda/test_lambda_api.py
@@ -0,0 +1,90 @@
from localstack.services.awslambda.lambda_api import construct_invocation_event


class TestLambdaApi:
def test_construct_invocation_event(self):
tt = [
{
"method": "GET",
"path": "http://localhost.localstack.cloud",
"headers": {},
"data": None,
"query_string_params": None,
"is_base64_encoded": False,
"expected": {
"path": "http://localhost.localstack.cloud",
"headers": {},
"multiValueHeaders": {},
"body": None,
"isBase64Encoded": False,
"httpMethod": "GET",
"queryStringParameters": None,
"multiValueQueryStringParameters": None,
},
},
{
"method": "GET",
"path": "http://localhost.localstack.cloud",
"headers": {},
"data": None,
"query_string_params": {},
"is_base64_encoded": False,
"expected": {
"path": "http://localhost.localstack.cloud",
"headers": {},
"multiValueHeaders": {},
"body": None,
"isBase64Encoded": False,
"httpMethod": "GET",
"queryStringParameters": None,
"multiValueQueryStringParameters": None,
},
},
{
"method": "GET",
"path": "http://localhost.localstack.cloud",
"headers": {},
"data": None,
"query_string_params": {"foo": "bar"},
"is_base64_encoded": False,
"expected": {
"path": "http://localhost.localstack.cloud",
"headers": {},
"multiValueHeaders": {},
"body": None,
"isBase64Encoded": False,
"httpMethod": "GET",
"queryStringParameters": {"foo": "bar"},
"multiValueQueryStringParameters": {"foo": ("bar",)},
},
},
{
"method": "GET",
"path": "http://localhost.localstack.cloud?baz=qux",
"headers": {},
"data": None,
"query_string_params": {"foo": "bar"},
"is_base64_encoded": False,
"expected": {
"path": "http://localhost.localstack.cloud?baz=qux",
"headers": {},
"multiValueHeaders": {},
"body": None,
"isBase64Encoded": False,
"httpMethod": "GET",
"queryStringParameters": {"foo": "bar"},
"multiValueQueryStringParameters": {"foo": ("bar",)},
},
},
]

for t in tt:
result = construct_invocation_event(
t["method"],
t["path"],
t["headers"],
t["data"],
t["query_string_params"],
t["is_base64_encoded"],
)
assert result == t["expected"]

0 comments on commit 4553d47

Please sign in to comment.