From 8683b616344ce17f56b3bd2159ee4cf57ce4fb08 Mon Sep 17 00:00:00 2001 From: Wilton Wang Date: Wed, 1 Dec 2021 14:28:39 -0800 Subject: [PATCH 1/2] Added Create Directory before Copy --- aws_lambda_builders/actions.py | 1 + 1 file changed, 1 insertion(+) diff --git a/aws_lambda_builders/actions.py b/aws_lambda_builders/actions.py index a661518ad..d9025a537 100644 --- a/aws_lambda_builders/actions.py +++ b/aws_lambda_builders/actions.py @@ -136,6 +136,7 @@ def execute(self): if os.path.isdir(dependencies_source): copytree(dependencies_source, new_destination) else: + os.makedirs(os.path.dirname(dependencies_source), exist_ok=True) shutil.copy2(dependencies_source, new_destination) From 7f151faa45b9fd8c6966ce1b6676cf8522dc57f8 Mon Sep 17 00:00:00 2001 From: Wilton Wang Date: Wed, 1 Dec 2021 14:33:07 -0800 Subject: [PATCH 2/2] Updated Unit Test --- tests/unit/test_actions.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/unit/test_actions.py b/tests/unit/test_actions.py index 388c69f84..0178c1a38 100644 --- a/tests/unit/test_actions.py +++ b/tests/unit/test_actions.py @@ -62,12 +62,16 @@ def test_must_copy(self, copytree_mock): class TestCopyDependenciesAction_execute(TestCase): + @patch("aws_lambda_builders.actions.os.makedirs") + @patch("aws_lambda_builders.actions.os.path.dirname") @patch("aws_lambda_builders.actions.shutil.copy2") @patch("aws_lambda_builders.actions.copytree") @patch("aws_lambda_builders.actions.os.path.isdir") @patch("aws_lambda_builders.actions.os.listdir") @patch("aws_lambda_builders.actions.os.path.join") - def test_must_copy(self, path_mock, listdir_mock, isdir_mock, copytree_mock, copy2_mock): + def test_must_copy( + self, path_mock, listdir_mock, isdir_mock, copytree_mock, copy2_mock, dirname_mock, makedirs_mock + ): source_dir = "source" artifact_dir = "artifact" dest_dir = "dest" @@ -75,6 +79,7 @@ def test_must_copy(self, path_mock, listdir_mock, isdir_mock, copytree_mock, cop listdir_mock.side_effect = [[1], [1, 2, 3]] path_mock.side_effect = ["dir1", "dir2", "file1", "file2"] isdir_mock.side_effect = [True, False] + dirname_mock.side_effect = ["parent_dir_1"] action = CopyDependenciesAction(source_dir, artifact_dir, dest_dir) action.execute() @@ -82,6 +87,7 @@ def test_must_copy(self, path_mock, listdir_mock, isdir_mock, copytree_mock, cop listdir_mock.assert_any_call(artifact_dir) copytree_mock.assert_called_once_with("dir1", "dir2") copy2_mock.assert_called_once_with("file1", "file2") + makedirs_mock.assert_called_once_with("parent_dir_1", exist_ok=True) class TestMoveDependenciesAction_execute(TestCase):