From 991493403b4345071e5f575ae7bb5e421f1df11f Mon Sep 17 00:00:00 2001 From: Joel Scheuner Date: Fri, 6 Jan 2023 16:06:49 +0100 Subject: [PATCH 1/2] Add lambda permission behavior test --- tests/integration/awslambda/test_lambda.py | 27 +++++++++++++++++++ .../awslambda/test_lambda.snapshot.json | 8 ++++++ 2 files changed, 35 insertions(+) diff --git a/tests/integration/awslambda/test_lambda.py b/tests/integration/awslambda/test_lambda.py index 58fa26df8c367..d0b7fd04bead2 100644 --- a/tests/integration/awslambda/test_lambda.py +++ b/tests/integration/awslambda/test_lambda.py @@ -680,6 +680,33 @@ def test_lambda_url_invocation_exception(self, lambda_client, create_lambda_func assert result.status_code == 502 +@pytest.mark.skip(reason="Not yet implemented") +class TestLambdaPermissions: + @pytest.mark.aws_validated + def test_lambda_permission_url_invocation( + self, create_lambda_function, lambda_client, snapshot + ): + + function_name = f"test-function-{short_uid()}" + create_lambda_function( + func_name=function_name, + zip_file=testutil.create_zip_file(TEST_LAMBDA_URL, get_content=True), + runtime=Runtime.nodejs14_x, + handler="lambda_url.handler", + ) + url_config = lambda_client.create_function_url_config( + FunctionName=function_name, + AuthType="NONE", + ) + + # Intentionally missing add_permission for invoking lambda function + + url = url_config["FunctionUrl"] + result = safe_requests.post(url, data="text", headers={"Content-Type": "text/plain"}) + assert result.status_code == 403 + snapshot.match("lambda_url_invocation_missing_permission", result.text) + + class TestLambdaFeatures: @pytest.fixture( params=[("python3.9", TEST_LAMBDA_PYTHON_ECHO), ("nodejs16.x", TEST_LAMBDA_NODEJS_ECHO)], diff --git a/tests/integration/awslambda/test_lambda.snapshot.json b/tests/integration/awslambda/test_lambda.snapshot.json index 22466bd537efd..c477e0fd92c21 100644 --- a/tests/integration/awslambda/test_lambda.snapshot.json +++ b/tests/integration/awslambda/test_lambda.snapshot.json @@ -2175,5 +2175,13 @@ } } } + }, + "tests/integration/awslambda/test_lambda.py::TestLambdaPermissions::test_lambda_permission_url_invocation": { + "recorded-date": "06-01-2023, 16:03:25", + "recorded-content": { + "lambda_url_invocation_missing_permission": { + "Message": "Forbidden" + } + } } } From 3b7a568f0483954711b88a1d47370aef02fd32c4 Mon Sep 17 00:00:00 2001 From: Joel Scheuner Date: Tue, 10 Jan 2023 09:12:45 +0100 Subject: [PATCH 2/2] Bump nodejs lambda runtime --- tests/integration/awslambda/test_lambda.py | 2 +- tests/integration/awslambda/test_lambda.snapshot.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/integration/awslambda/test_lambda.py b/tests/integration/awslambda/test_lambda.py index d0b7fd04bead2..57e758bdd038d 100644 --- a/tests/integration/awslambda/test_lambda.py +++ b/tests/integration/awslambda/test_lambda.py @@ -691,7 +691,7 @@ def test_lambda_permission_url_invocation( create_lambda_function( func_name=function_name, zip_file=testutil.create_zip_file(TEST_LAMBDA_URL, get_content=True), - runtime=Runtime.nodejs14_x, + runtime=Runtime.nodejs18_x, handler="lambda_url.handler", ) url_config = lambda_client.create_function_url_config( diff --git a/tests/integration/awslambda/test_lambda.snapshot.json b/tests/integration/awslambda/test_lambda.snapshot.json index c477e0fd92c21..21922856666d5 100644 --- a/tests/integration/awslambda/test_lambda.snapshot.json +++ b/tests/integration/awslambda/test_lambda.snapshot.json @@ -2177,7 +2177,7 @@ } }, "tests/integration/awslambda/test_lambda.py::TestLambdaPermissions::test_lambda_permission_url_invocation": { - "recorded-date": "06-01-2023, 16:03:25", + "recorded-date": "10-01-2023, 09:11:18", "recorded-content": { "lambda_url_invocation_missing_permission": { "Message": "Forbidden"