def test_build_multi_build_with_deps_dir_inter_module(self): parent_dir = join(self.MULTI_BUILD_TEST_DATA_DIR, "with-deps-inter-module") manifest_path = join(parent_dir, "lambda1", "build.gradle") lambda1_source = join(parent_dir, "lambda1") self.builder.build( lambda1_source, self.artifacts_dir, self.scratch_dir, manifest_path, runtime=self.runtime, dependencies_dir=self.dependencies_dir, ) lambda1_expected_files = [ join("aws", "lambdabuilders", "Lambda1_Main.class"), join("lib", "annotations-2.1.0.jar"), join("lib", "common.jar"), ] dependencies_expected_files = [ join("lib", "annotations-2.1.0.jar"), join("lib", "common.jar"), ] self.assertTrue( does_folder_contain_all_files(self.artifacts_dir, lambda1_expected_files)) self.assertTrue( does_folder_contain_all_files(self.dependencies_dir, dependencies_expected_files))
def test_build_single_build_with_deps_resources_exclude_test_jars_deps_dir_without_combine_dependencies(self): source_dir = join(self.SINGLE_BUILD_TEST_DATA_DIR, "with-deps") manifest_path = join(source_dir, "pom.xml") self.builder.build( source_dir, self.artifacts_dir, self.scratch_dir, manifest_path, runtime=self.runtime, dependencies_dir=self.dependencies_dir, combine_dependencies=False, ) artifact_expected_files = [ join("aws", "lambdabuilders", "Main.class"), join("some_data.txt"), ] dependencies_expected_files = [ join("lib", "software.amazon.awssdk.annotations-2.1.0.jar"), ] self.assertTrue(does_folder_contain_all_files(self.artifacts_dir, artifact_expected_files)) self.assertTrue(does_folder_contain_all_files(self.dependencies_dir, dependencies_expected_files)) self.assertFalse(does_folder_contain_file(self.artifacts_dir, join("lib", "junit-4.12.jar"))) self.assert_src_dir_not_touched(source_dir)
def validate_function_build(self): self.setUp() # re-initialize folders function_source_dir = join(self.SINGLE_BUILD_TEST_DATA_DIR, "with-layer-deps") function_manifest_path = join(function_source_dir, "build.gradle") self.builder.build( function_source_dir, self.artifacts_dir, self.scratch_dir, function_manifest_path, runtime=self.runtime, is_building_layer=False, ) artifact_expected_files = [ join("aws", "lambdabuilders", "Main.class"), ] artifact_not_expected_files = [ join("lib", "com.amazonaws.aws-lambda-java-core-1.2.0.jar"), join("lib", "common-layer-1.0.jar"), ] self.assertTrue( does_folder_contain_all_files(self.artifacts_dir, artifact_expected_files)) self.assertTrue( folder_should_not_contain_files(self.artifacts_dir, artifact_not_expected_files))
def test_build_single_build_no_deps(self): source_dir = join(self.SINGLE_BUILD_TEST_DATA_DIR, "no-deps") manifest_path = join(source_dir, "pom.xml") self.builder.build(source_dir, self.artifacts_dir, self.scratch_dir, manifest_path, runtime=self.runtime) expected_files = [join("aws", "lambdabuilders", "Main.class"), join("some_data.txt")] self.assertTrue(does_folder_contain_all_files(self.artifacts_dir, expected_files)) self.assertFalse(does_folder_contain_file(self.artifacts_dir, join("lib"))) self.assert_src_dir_not_touched(source_dir)
def test_build_single_build_with_deps_dir_wtihout_combine_dependencies( self): source_dir = join(self.SINGLE_BUILD_TEST_DATA_DIR, "with-deps") manifest_path = join(source_dir, "build.gradle") self.builder.build( source_dir, self.artifacts_dir, self.scratch_dir, manifest_path, runtime=self.runtime, dependencies_dir=self.dependencies_dir, combine_dependencies=False, ) artifact_expected_files = [join("aws", "lambdabuilders", "Main.class")] dependencies_expected_files = [join("lib", "annotations-2.1.0.jar")] self.assertTrue( does_folder_contain_all_files(self.artifacts_dir, artifact_expected_files)) self.assertTrue( does_folder_contain_all_files(self.dependencies_dir, dependencies_expected_files))
def test_build_single_build_with_resources(self): source_dir = join(self.SINGLE_BUILD_TEST_DATA_DIR, "with-resources") manifest_path = join(source_dir, "build.gradle") self.builder.build(source_dir, self.artifacts_dir, self.scratch_dir, manifest_path, runtime=self.runtime) expected_files = [ join("aws", "lambdabuilders", "Main.class"), join("some_data.txt"), join("lib", "annotations-2.1.0.jar"), ] self.assertTrue( does_folder_contain_all_files(self.artifacts_dir, expected_files))
def validate_layer_build(self): layer_source_dir = join(self.SINGLE_BUILD_TEST_DATA_DIR, "layer") layer_manifest_path = join(layer_source_dir, "pom.xml") self.builder.build( layer_source_dir, self.artifacts_dir, self.scratch_dir, layer_manifest_path, runtime=self.runtime, is_building_layer=True, ) artifact_expected_files = [ join("lib", "com.amazonaws.aws-lambda-java-core-1.2.0.jar"), join("lib", "common-layer-1.0.jar"), ] self.assertTrue(does_folder_contain_all_files(self.artifacts_dir, artifact_expected_files)) self.assert_src_dir_not_touched(layer_source_dir)
def test_build_single_build_with_deps_gradlew(self): source_dir = join(self.SINGLE_BUILD_TEST_DATA_DIR, "with-deps-gradlew") manifest_path = join(source_dir, "build.gradle") self.builder.build( source_dir, self.artifacts_dir, self.scratch_dir, manifest_path, runtime=self.runtime, executable_search_paths=[source_dir], ) expected_files = [ join("aws", "lambdabuilders", "Main.class"), join("lib", "annotations-2.1.0.jar") ] self.assertTrue( does_folder_contain_all_files(self.artifacts_dir, expected_files))
def test_build_single_build_with_test_deps_test_jars_not_included(self): source_dir = join(self.SINGLE_BUILD_TEST_DATA_DIR, "with-test-deps") manifest_path = join(source_dir, "build.gradle") self.builder.build(source_dir, self.artifacts_dir, self.scratch_dir, manifest_path, runtime=self.runtime) expected_files = [ join("aws", "lambdabuilders", "Main.class"), join("lib", "annotations-2.1.0.jar") ] self.assertTrue( does_folder_contain_all_files(self.artifacts_dir, expected_files)) self.assertFalse( does_folder_contain_file(self.artifacts_dir, join("lib", "s3-2.1.0.jar")))
def test_build_multi_build_with_deps_lambda2(self): parent_dir = join(self.MULTI_BUILD_TEST_DATA_DIR, "with-deps") manifest_path = join(parent_dir, "lambda2", "build.gradle") lambda2_source = join(parent_dir, "lambda2") self.builder.build(lambda2_source, self.artifacts_dir, self.scratch_dir, manifest_path, runtime=self.runtime) lambda2_expected_files = [ join("aws", "lambdabuilders", "Lambda2_Main.class"), join("lib", "annotations-2.1.0.jar"), ] self.assertTrue( does_folder_contain_all_files(self.artifacts_dir, lambda2_expected_files))