From 80f6cd78d11bc320320d47883b3805b533aee9e3 Mon Sep 17 00:00:00 2001 From: Scott Bailey <72747501+rbailey-godaddy@users.noreply.github.com> Date: Tue, 1 Aug 2023 17:42:12 -0400 Subject: [PATCH] AWSLambda: Don't report undefined working directory (#6585) --- moto/awslambda/models.py | 16 +++++++-------- tests/test_awslambda/test_lambda.py | 31 +++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 8 deletions(-) diff --git a/moto/awslambda/models.py b/moto/awslambda/models.py index 3fe4ffaae..8a09ef9a9 100644 --- a/moto/awslambda/models.py +++ b/moto/awslambda/models.py @@ -201,16 +201,16 @@ class ImageConfig: def __init__(self, config: Dict[str, Any]) -> None: self.cmd = config.get("Command", []) self.entry_point = config.get("EntryPoint", []) - self.working_directory = config.get("WorkingDirectory", "") + self.working_directory = config.get("WorkingDirectory", None) def response(self) -> Dict[str, Any]: - return dict( - { - "Command": self.cmd, - "EntryPoint": self.entry_point, - "WorkingDirectory": self.working_directory, - } - ) + content = { + "Command": self.cmd, + "EntryPoint": self.entry_point, + } + if self.working_directory is not None: + content["WorkingDirectory"] = self.working_directory + return dict(content) class Permission(CloudFormationModel): diff --git a/tests/test_awslambda/test_lambda.py b/tests/test_awslambda/test_lambda.py index 93f716126..842af314b 100644 --- a/tests/test_awslambda/test_lambda.py +++ b/tests/test_awslambda/test_lambda.py @@ -228,6 +228,37 @@ def test_create_function_from_image(): assert result["Configuration"]["ImageConfigResponse"]["ImageConfig"] == image_config +@mock_lambda +def test_create_function_from_image_default_working_directory(): + conn = boto3.client("lambda", _lambda_region) + function_name = str(uuid4())[0:6] + image_uri = f"{ACCOUNT_ID}.dkr.ecr.us-east-1.amazonaws.com/testlambdaecr:prod" + image_config = { + "EntryPoint": [ + "python", + ], + "Command": [ + "/opt/app.py", + ], + } + conn.create_function( + FunctionName=function_name, + Role=get_role_name(), + Code={"ImageUri": image_uri}, + Description="test lambda function", + ImageConfig=image_config, + PackageType="Image", + Timeout=3, + MemorySize=128, + Publish=True, + ) + + result = conn.get_function(FunctionName=function_name) + + assert "ImageConfigResponse" in result["Configuration"] + assert result["Configuration"]["ImageConfigResponse"]["ImageConfig"] == image_config + + @mock_lambda def test_create_function_error_bad_architecture(): conn = boto3.client("lambda", _lambda_region)