Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Update aws_lambda_builders to 1.4.0 #2903

Merged
merged 5 commits into from
May 25, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion requirements/base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ docker~=4.2.0
dateparser~=0.7
requests==2.23.0
serverlessrepo==0.1.10
aws_lambda_builders==1.3.0
aws_lambda_builders==1.4.0
tomlkit==0.7.0
watchdog==2.1.2
8 changes: 4 additions & 4 deletions requirements/reproducible-linux.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ attrs==20.3.0 \
--hash=sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6 \
--hash=sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700
# via jsonschema
aws-lambda-builders==1.3.0 \
--hash=sha256:1e1d66173f19a1c40e3db96588bdea07a5bd16cd98d9d20ea2088dca2e7299d7 \
--hash=sha256:a84521eea781967eb0a146c746b27195d29e7ac0d896d0dfb27608c53400eebb \
--hash=sha256:d19724b51939bf9a8d78364b9ad63d8a7aa958942a963e19e6eff096c02b05d2
aws-lambda-builders==1.4.0 \
--hash=sha256:3f885433bb71bae653b520e3cf4c31fe5f5b977cb770d42c631af155cd60fd2b \
--hash=sha256:5d4e4ecb3d3290f0eec1f62b7b0d9d6b91160ae71447d95899eede392d05f75f \
--hash=sha256:d32f79cf67b189a7598793f69797f284b2eb9a9fada562175b1e854187f95aed
# via aws-sam-cli (setup.py)
aws-sam-translator==1.35.0 \
--hash=sha256:2f8904fd4a631752bc441a8fd928c444ed98ceb86b94d25ed7b84982e2eff1cd \
Expand Down
115 changes: 66 additions & 49 deletions tests/integration/buildcmd/test_build_cmd.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,22 +89,25 @@ class TestBuildCommand_PythonFunctions(BuildIntegBase):

@parameterized.expand(
[
("python2.7", False),
("python3.6", False),
("python3.7", False),
("python3.8", False),
("python2.7", "use_container"),
("python3.6", "use_container"),
("python3.7", "use_container"),
("python3.8", "use_container"),
("python2.7", "Python", False),
("python3.6", "Python", False),
("python3.7", "Python", False),
("python3.8", "Python", False),
# numpy 1.20.3 (in PythonPEP600/requirements.txt) only support python 3.7+
("python3.7", "PythonPEP600", False),
("python3.8", "PythonPEP600", False),
("python2.7", "Python", "use_container"),
("python3.6", "Python", "use_container"),
("python3.7", "Python", "use_container"),
("python3.8", "Python", "use_container"),
]
)
@pytest.mark.flaky(reruns=3)
def test_with_default_requirements(self, runtime, use_container):
def test_with_default_requirements(self, runtime, codeuri, use_container):
if use_container and SKIP_DOCKER_TESTS:
self.skipTest(SKIP_DOCKER_MESSAGE)

overrides = {"Runtime": runtime, "CodeUri": "Python", "Handler": "main.handler"}
overrides = {"Runtime": runtime, "CodeUri": codeuri, "Handler": "main.handler"}
cmdlist = self.get_command_list(use_container=use_container, parameter_overrides=overrides)

LOG.info("Running Command: {}".format(cmdlist))
Expand Down Expand Up @@ -334,7 +337,11 @@ def _prepare_application_environment(self):
class TestBuildCommand_Java(BuildIntegBase):
EXPECTED_FILES_PROJECT_MANIFEST_GRADLE = {"aws", "lib", "META-INF"}
EXPECTED_FILES_PROJECT_MANIFEST_MAVEN = {"aws", "lib"}
EXPECTED_DEPENDENCIES = {"annotations-2.1.0.jar", "aws-lambda-java-core-1.1.0.jar"}
EXPECTED_GRADLE_DEPENDENCIES = {"annotations-2.1.0.jar", "aws-lambda-java-core-1.1.0.jar"}
EXPECTED_MAVEN_DEPENDENCIES = {
"software.amazon.awssdk.annotations-2.1.0.jar",
"com.amazonaws.aws-lambda-java-core-1.1.0.jar",
}

FUNCTION_LOGICAL_ID = "Function"
USING_GRADLE_PATH = os.path.join("Java", "gradle")
Expand All @@ -344,60 +351,70 @@ class TestBuildCommand_Java(BuildIntegBase):

@parameterized.expand(
[
("java8", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java8", USING_GRADLEW_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java8", USING_GRADLE_KOTLIN_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java8", USING_MAVEN_PATH, EXPECTED_FILES_PROJECT_MANIFEST_MAVEN),
("java8", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java8.al2", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java8.al2", USING_GRADLEW_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java8.al2", USING_GRADLE_KOTLIN_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java8.al2", USING_MAVEN_PATH, EXPECTED_FILES_PROJECT_MANIFEST_MAVEN),
("java8.al2", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java11", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java11", USING_GRADLEW_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java11", USING_GRADLE_KOTLIN_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java11", USING_MAVEN_PATH, EXPECTED_FILES_PROJECT_MANIFEST_MAVEN),
("java11", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java8", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE, EXPECTED_GRADLE_DEPENDENCIES),
("java8", USING_GRADLEW_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE, EXPECTED_GRADLE_DEPENDENCIES),
("java8", USING_GRADLE_KOTLIN_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE, EXPECTED_GRADLE_DEPENDENCIES),
("java8", USING_MAVEN_PATH, EXPECTED_FILES_PROJECT_MANIFEST_MAVEN, EXPECTED_MAVEN_DEPENDENCIES),
("java8", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE, EXPECTED_GRADLE_DEPENDENCIES),
("java8.al2", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE, EXPECTED_GRADLE_DEPENDENCIES),
("java8.al2", USING_GRADLEW_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE, EXPECTED_GRADLE_DEPENDENCIES),
(
"java8.al2",
USING_GRADLE_KOTLIN_PATH,
EXPECTED_FILES_PROJECT_MANIFEST_GRADLE,
EXPECTED_GRADLE_DEPENDENCIES,
),
("java8.al2", USING_MAVEN_PATH, EXPECTED_FILES_PROJECT_MANIFEST_MAVEN, EXPECTED_MAVEN_DEPENDENCIES),
("java8.al2", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE, EXPECTED_GRADLE_DEPENDENCIES),
("java11", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE, EXPECTED_GRADLE_DEPENDENCIES),
("java11", USING_GRADLEW_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE, EXPECTED_GRADLE_DEPENDENCIES),
("java11", USING_GRADLE_KOTLIN_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE, EXPECTED_GRADLE_DEPENDENCIES),
("java11", USING_MAVEN_PATH, EXPECTED_FILES_PROJECT_MANIFEST_MAVEN, EXPECTED_MAVEN_DEPENDENCIES),
("java11", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE, EXPECTED_GRADLE_DEPENDENCIES),
]
)
@skipIf(SKIP_DOCKER_TESTS, SKIP_DOCKER_MESSAGE)
@pytest.mark.flaky(reruns=3)
def test_building_java_in_container(self, runtime, code_path, expected_files):
self._test_with_building_java(runtime, code_path, expected_files, "use_container")
def test_building_java_in_container(self, runtime, code_path, expected_files, expected_dependencies):
self._test_with_building_java(runtime, code_path, expected_files, expected_dependencies, "use_container")

@parameterized.expand(
[
("java8", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java8", USING_GRADLEW_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java8", USING_GRADLE_KOTLIN_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java8", USING_MAVEN_PATH, EXPECTED_FILES_PROJECT_MANIFEST_MAVEN),
("java8", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java8.al2", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java8.al2", USING_GRADLEW_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java8.al2", USING_GRADLE_KOTLIN_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java8.al2", USING_MAVEN_PATH, EXPECTED_FILES_PROJECT_MANIFEST_MAVEN),
("java8.al2", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java8", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE, EXPECTED_GRADLE_DEPENDENCIES),
("java8", USING_GRADLEW_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE, EXPECTED_GRADLE_DEPENDENCIES),
("java8", USING_GRADLE_KOTLIN_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE, EXPECTED_GRADLE_DEPENDENCIES),
("java8", USING_MAVEN_PATH, EXPECTED_FILES_PROJECT_MANIFEST_MAVEN, EXPECTED_MAVEN_DEPENDENCIES),
("java8", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE, EXPECTED_GRADLE_DEPENDENCIES),
("java8.al2", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE, EXPECTED_GRADLE_DEPENDENCIES),
("java8.al2", USING_GRADLEW_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE, EXPECTED_GRADLE_DEPENDENCIES),
(
"java8.al2",
USING_GRADLE_KOTLIN_PATH,
EXPECTED_FILES_PROJECT_MANIFEST_GRADLE,
EXPECTED_GRADLE_DEPENDENCIES,
),
("java8.al2", USING_MAVEN_PATH, EXPECTED_FILES_PROJECT_MANIFEST_MAVEN, EXPECTED_MAVEN_DEPENDENCIES),
("java8.al2", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE, EXPECTED_GRADLE_DEPENDENCIES),
]
)
@pytest.mark.flaky(reruns=3)
def test_building_java8_in_process(self, runtime, code_path, expected_files):
self._test_with_building_java(runtime, code_path, expected_files, False)
def test_building_java8_in_process(self, runtime, code_path, expected_files, expected_dependencies):
self._test_with_building_java(runtime, code_path, expected_files, expected_dependencies, False)

@parameterized.expand(
[
("java11", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java11", USING_GRADLEW_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java11", USING_GRADLE_KOTLIN_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java11", USING_MAVEN_PATH, EXPECTED_FILES_PROJECT_MANIFEST_MAVEN),
("java11", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE),
("java11", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE, EXPECTED_GRADLE_DEPENDENCIES),
("java11", USING_GRADLEW_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE, EXPECTED_GRADLE_DEPENDENCIES),
("java11", USING_GRADLE_KOTLIN_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE, EXPECTED_GRADLE_DEPENDENCIES),
("java11", USING_MAVEN_PATH, EXPECTED_FILES_PROJECT_MANIFEST_MAVEN, EXPECTED_MAVEN_DEPENDENCIES),
("java11", USING_GRADLE_PATH, EXPECTED_FILES_PROJECT_MANIFEST_GRADLE, EXPECTED_GRADLE_DEPENDENCIES),
]
)
@pytest.mark.flaky(reruns=3)
def test_building_java11_in_process(self, runtime, code_path, expected_files):
self._test_with_building_java(runtime, code_path, expected_files, False)
def test_building_java11_in_process(self, runtime, code_path, expected_files, expected_dependencies):
self._test_with_building_java(runtime, code_path, expected_files, expected_dependencies, False)

def _test_with_building_java(self, runtime, code_path, expected_files, use_container):
def _test_with_building_java(self, runtime, code_path, expected_files, expected_dependencies, use_container):
if use_container and SKIP_DOCKER_TESTS:
self.skipTest(SKIP_DOCKER_MESSAGE)

Expand All @@ -411,7 +428,7 @@ def _test_with_building_java(self, runtime, code_path, expected_files, use_conta
run_command(cmdlist, cwd=self.working_dir)

self._verify_built_artifact(
self.default_build_dir, self.FUNCTION_LOGICAL_ID, expected_files, self.EXPECTED_DEPENDENCIES
self.default_build_dir, self.FUNCTION_LOGICAL_ID, expected_files, expected_dependencies
)

self._verify_resource_property(
Expand Down
Empty file.
19 changes: 19 additions & 0 deletions tests/integration/testdata/buildcmd/PythonPEP600/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import numpy


# from cryptography.fernet import Fernet


def handler(event, context):
# Try using some of the modules to make sure they work & don't crash the process
# print(Fernet.generate_key())

return {"pi": "{0:.2f}".format(numpy.pi)}


def first_function_handler(event, context):
return "Hello World"


def second_function_handler(event, context):
return "Hello Mars"
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# These are some hard packages to build. Using them here helps us verify that building works on various platforms

# these dependency versions use PEP600
numpy==1.20.3
greenlet==1.1.0
sqlalchemy==1.4.15