From 25e8a39cad8ea398835e2a211f1488709af144a6 Mon Sep 17 00:00:00 2001 From: Wilton Wang Date: Tue, 24 Aug 2021 02:05:54 -0700 Subject: [PATCH 1/5] Added New Parameters --- aws_lambda_builders/builder.py | 12 ++++++++++++ aws_lambda_builders/workflow.py | 12 ++++++++++++ tests/unit/test_builder.py | 8 ++++++++ 3 files changed, 32 insertions(+) diff --git a/aws_lambda_builders/builder.py b/aws_lambda_builders/builder.py index 9a9a3d04d..eee363474 100644 --- a/aws_lambda_builders/builder.py +++ b/aws_lambda_builders/builder.py @@ -64,6 +64,8 @@ def build( options=None, executable_search_paths=None, mode=None, + download_dependencies=True, + dependencies_folder=None ): """ Actually build the code by running workflows @@ -105,6 +107,14 @@ def build( :type mode: str :param mode: Optional, Mode the build should produce + + :type mode: bool + :param download_dependencies: + Optional, Should download dependencies when building + + :type mode: str + :param dependencies_folder: + Optional, Path to folder the dependencies should be downloaded to """ if not os.path.exists(scratch_dir): @@ -120,6 +130,8 @@ def build( options=options, executable_search_paths=executable_search_paths, mode=mode, + download_dependencies=download_dependencies, + dependencies_folder=dependencies_folder ) return workflow.run() diff --git a/aws_lambda_builders/workflow.py b/aws_lambda_builders/workflow.py index 42263085b..f4603fa40 100644 --- a/aws_lambda_builders/workflow.py +++ b/aws_lambda_builders/workflow.py @@ -140,6 +140,8 @@ def __init__( optimizations=None, options=None, mode=BuildMode.RELEASE, + download_dependencies=True, + dependencies_folder=None ): """ Initialize the builder with given arguments. These arguments together form the "public API" that each @@ -182,6 +184,14 @@ def __init__( :type mode: str :param mode: Optional, Mode the build should produce + + :type mode: bool + :param download_dependencies: + Optional, Should download dependencies when building + + :type mode: str + :param dependencies_folder: + Optional, Path to folder the dependencies should be downloaded to """ self.source_dir = source_dir @@ -193,6 +203,8 @@ def __init__( self.options = options self.executable_search_paths = executable_search_paths self.mode = mode + self.download_dependencies = download_dependencies + self.dependencies_folder = dependencies_folder # Actions are registered by the subclasses as they seem fit self.actions = [] diff --git a/tests/unit/test_builder.py b/tests/unit/test_builder.py index 08148158c..265c59d99 100644 --- a/tests/unit/test_builder.py +++ b/tests/unit/test_builder.py @@ -82,6 +82,8 @@ def __init__( options=None, executable_search_paths=None, mode=None, + download_dependencies=True, + dependencies_folder=None, ): super(MyWorkflow, self).__init__( source_dir, @@ -93,6 +95,8 @@ def __init__( options=options, executable_search_paths=executable_search_paths, mode=mode, + download_dependencies=download_dependencies, + dependencies_folder=dependencies_folder, ) # Don't load any other workflows. The above class declaration will automatically load the workflow into registry @@ -136,6 +140,8 @@ def test_with_mocks(self, scratch_dir_exists, get_workflow_mock, importlib_mock, options="options", executable_search_paths="executable_search_paths", mode=None, + download_dependencies=False, + dependencies_folder="dependency_folder", ) workflow_cls.assert_called_with( @@ -148,6 +154,8 @@ def test_with_mocks(self, scratch_dir_exists, get_workflow_mock, importlib_mock, options="options", executable_search_paths="executable_search_paths", mode=None, + download_dependencies=False, + dependencies_folder="dependency_folder" ) workflow_instance.run.assert_called_once() os_mock.path.exists.assert_called_once_with("scratch_dir") From e262c10736c507fa983c9ce7778dc7e132b2ad43 Mon Sep 17 00:00:00 2001 From: Wilton Wang Date: Tue, 24 Aug 2021 02:33:46 -0700 Subject: [PATCH 2/5] Formatted with Black --- aws_lambda_builders/builder.py | 4 ++-- aws_lambda_builders/workflow.py | 2 +- tests/unit/test_builder.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/aws_lambda_builders/builder.py b/aws_lambda_builders/builder.py index eee363474..9805e7cf2 100644 --- a/aws_lambda_builders/builder.py +++ b/aws_lambda_builders/builder.py @@ -65,7 +65,7 @@ def build( executable_search_paths=None, mode=None, download_dependencies=True, - dependencies_folder=None + dependencies_folder=None, ): """ Actually build the code by running workflows @@ -131,7 +131,7 @@ def build( executable_search_paths=executable_search_paths, mode=mode, download_dependencies=download_dependencies, - dependencies_folder=dependencies_folder + dependencies_folder=dependencies_folder, ) return workflow.run() diff --git a/aws_lambda_builders/workflow.py b/aws_lambda_builders/workflow.py index f4603fa40..e0b728f37 100644 --- a/aws_lambda_builders/workflow.py +++ b/aws_lambda_builders/workflow.py @@ -141,7 +141,7 @@ def __init__( options=None, mode=BuildMode.RELEASE, download_dependencies=True, - dependencies_folder=None + dependencies_folder=None, ): """ Initialize the builder with given arguments. These arguments together form the "public API" that each diff --git a/tests/unit/test_builder.py b/tests/unit/test_builder.py index 265c59d99..01af34c26 100644 --- a/tests/unit/test_builder.py +++ b/tests/unit/test_builder.py @@ -155,7 +155,7 @@ def test_with_mocks(self, scratch_dir_exists, get_workflow_mock, importlib_mock, executable_search_paths="executable_search_paths", mode=None, download_dependencies=False, - dependencies_folder="dependency_folder" + dependencies_folder="dependency_folder", ) workflow_instance.run.assert_called_once() os_mock.path.exists.assert_called_once_with("scratch_dir") From 334c430f6293caf2742df41c9e3be5fc066bca07 Mon Sep 17 00:00:00 2001 From: Wilton Wang Date: Tue, 24 Aug 2021 13:21:12 -0700 Subject: [PATCH 3/5] Updated dependencies_folder to dependencies_dir --- aws_lambda_builders/builder.py | 6 +++--- aws_lambda_builders/workflow.py | 6 +++--- tests/unit/test_builder.py | 8 ++++---- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/aws_lambda_builders/builder.py b/aws_lambda_builders/builder.py index 9805e7cf2..f11187f2b 100644 --- a/aws_lambda_builders/builder.py +++ b/aws_lambda_builders/builder.py @@ -65,7 +65,7 @@ def build( executable_search_paths=None, mode=None, download_dependencies=True, - dependencies_folder=None, + dependencies_dir=None, ): """ Actually build the code by running workflows @@ -113,7 +113,7 @@ def build( Optional, Should download dependencies when building :type mode: str - :param dependencies_folder: + :param dependencies_dir: Optional, Path to folder the dependencies should be downloaded to """ @@ -131,7 +131,7 @@ def build( executable_search_paths=executable_search_paths, mode=mode, download_dependencies=download_dependencies, - dependencies_folder=dependencies_folder, + dependencies_dir=dependencies_dir, ) return workflow.run() diff --git a/aws_lambda_builders/workflow.py b/aws_lambda_builders/workflow.py index e0b728f37..83e9aa765 100644 --- a/aws_lambda_builders/workflow.py +++ b/aws_lambda_builders/workflow.py @@ -141,7 +141,7 @@ def __init__( options=None, mode=BuildMode.RELEASE, download_dependencies=True, - dependencies_folder=None, + dependencies_dir=None, ): """ Initialize the builder with given arguments. These arguments together form the "public API" that each @@ -190,7 +190,7 @@ def __init__( Optional, Should download dependencies when building :type mode: str - :param dependencies_folder: + :param dependencies_dir: Optional, Path to folder the dependencies should be downloaded to """ @@ -204,7 +204,7 @@ def __init__( self.executable_search_paths = executable_search_paths self.mode = mode self.download_dependencies = download_dependencies - self.dependencies_folder = dependencies_folder + self.dependencies_dir = dependencies_dir # Actions are registered by the subclasses as they seem fit self.actions = [] diff --git a/tests/unit/test_builder.py b/tests/unit/test_builder.py index 01af34c26..2c040b7f3 100644 --- a/tests/unit/test_builder.py +++ b/tests/unit/test_builder.py @@ -83,7 +83,7 @@ def __init__( executable_search_paths=None, mode=None, download_dependencies=True, - dependencies_folder=None, + dependencies_dir=None, ): super(MyWorkflow, self).__init__( source_dir, @@ -96,7 +96,7 @@ def __init__( executable_search_paths=executable_search_paths, mode=mode, download_dependencies=download_dependencies, - dependencies_folder=dependencies_folder, + dependencies_dir=dependencies_dir, ) # Don't load any other workflows. The above class declaration will automatically load the workflow into registry @@ -141,7 +141,7 @@ def test_with_mocks(self, scratch_dir_exists, get_workflow_mock, importlib_mock, executable_search_paths="executable_search_paths", mode=None, download_dependencies=False, - dependencies_folder="dependency_folder", + dependencies_dir="dependency_folder", ) workflow_cls.assert_called_with( @@ -155,7 +155,7 @@ def test_with_mocks(self, scratch_dir_exists, get_workflow_mock, importlib_mock, executable_search_paths="executable_search_paths", mode=None, download_dependencies=False, - dependencies_folder="dependency_folder", + dependencies_dir="dependency_folder", ) workflow_instance.run.assert_called_once() os_mock.path.exists.assert_called_once_with("scratch_dir") From fb3266b91f6a50ffc9355712d731612c30eff608 Mon Sep 17 00:00:00 2001 From: Wilton Wang Date: Fri, 27 Aug 2021 03:45:53 -0700 Subject: [PATCH 4/5] Addded JSON RPC Parameters --- aws_lambda_builders/__main__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/aws_lambda_builders/__main__.py b/aws_lambda_builders/__main__.py index b4fc80cfa..d29839893 100644 --- a/aws_lambda_builders/__main__.py +++ b/aws_lambda_builders/__main__.py @@ -124,6 +124,8 @@ def main(): # pylint: disable=too-many-statements optimizations=params["optimizations"], options=params["options"], mode=params.get("mode", None), + download_dependencies=params.get("download_dependencies", True), + dependencies_dir=params.get("dependencies_dir", None), ) # Return a success response From e48670a7feda650d1e4bc59670ca4886f31c4835 Mon Sep 17 00:00:00 2001 From: Wilton Wang Date: Fri, 27 Aug 2021 03:51:28 -0700 Subject: [PATCH 5/5] Added Dependency Parameters to Functional Tests --- tests/functional/test_cli.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/functional/test_cli.py b/tests/functional/test_cli.py index e937cf23a..6f2b4fe5b 100644 --- a/tests/functional/test_cli.py +++ b/tests/functional/test_cli.py @@ -77,6 +77,8 @@ def test_run_hello_workflow_with_backcompat(self, flavor, protocol_version): "runtime": "ignored", "optimizations": {}, "options": {}, + "download_dependencies": False, + "dependencies_dir": "/ignored-dep", }, } @@ -138,6 +140,8 @@ def test_run_hello_workflow_incompatible(self, flavor): "optimizations": {}, "options": {}, "executable_search_paths": [str(pathlib.Path(sys.executable).parent)], + "download_dependencies": False, + "dependencies_dir": "/ignored-dep", }, } )