From 96ec183b999d26d12f37e912170fa3a353c8d613 Mon Sep 17 00:00:00 2001 From: jeff ngo Date: Wed, 29 Apr 2020 13:46:52 -0700 Subject: [PATCH 1/2] PYT-868 Lua to Python - Change plugin config to expect optional lua name field --- .bumpversion.cfg | 2 +- .../python/dlpx/virtualization/common/VERSION | 2 +- .../main/python/dlpx/virtualization/VERSION | 2 +- .../python/dlpx/virtualization/libs/VERSION | 2 +- .../dlpx/virtualization/platform/VERSION | 2 +- .../dlpx/virtualization/_internal/VERSION | 2 +- .../virtualization/_internal/commands/build.py | 3 +++ .../plugin_config_schema.json | 4 ++++ .../plugin_config_schema_no_id_validation.json | 4 ++++ .../_internal/commands/test_build.py | 11 +++++++++++ .../dlpx/virtualization/_internal/conftest.py | 12 +++++++++++- .../_internal/test_plugin_validator.py | 18 ++++++++++++++++++ 12 files changed, 57 insertions(+), 7 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 67fb44d8..0603ae1b 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 2.0.0-internal-2 +current_version = 2.1.0-internal-0 commit = False tag = False parse = (?P\d+)\.(?P\d+)\.(?P\d+)(\-(?P[a-z]+)\-(?P\d+))? diff --git a/common/src/main/python/dlpx/virtualization/common/VERSION b/common/src/main/python/dlpx/virtualization/common/VERSION index 62178d2d..27043605 100644 --- a/common/src/main/python/dlpx/virtualization/common/VERSION +++ b/common/src/main/python/dlpx/virtualization/common/VERSION @@ -1 +1 @@ -2.0.0-internal-2 \ No newline at end of file +2.1.0-internal-0 \ No newline at end of file diff --git a/dvp/src/main/python/dlpx/virtualization/VERSION b/dvp/src/main/python/dlpx/virtualization/VERSION index 62178d2d..27043605 100644 --- a/dvp/src/main/python/dlpx/virtualization/VERSION +++ b/dvp/src/main/python/dlpx/virtualization/VERSION @@ -1 +1 @@ -2.0.0-internal-2 \ No newline at end of file +2.1.0-internal-0 \ No newline at end of file diff --git a/libs/src/main/python/dlpx/virtualization/libs/VERSION b/libs/src/main/python/dlpx/virtualization/libs/VERSION index 62178d2d..27043605 100644 --- a/libs/src/main/python/dlpx/virtualization/libs/VERSION +++ b/libs/src/main/python/dlpx/virtualization/libs/VERSION @@ -1 +1 @@ -2.0.0-internal-2 \ No newline at end of file +2.1.0-internal-0 \ No newline at end of file diff --git a/platform/src/main/python/dlpx/virtualization/platform/VERSION b/platform/src/main/python/dlpx/virtualization/platform/VERSION index 62178d2d..27043605 100644 --- a/platform/src/main/python/dlpx/virtualization/platform/VERSION +++ b/platform/src/main/python/dlpx/virtualization/platform/VERSION @@ -1 +1 @@ -2.0.0-internal-2 \ No newline at end of file +2.1.0-internal-0 \ No newline at end of file diff --git a/tools/src/main/python/dlpx/virtualization/_internal/VERSION b/tools/src/main/python/dlpx/virtualization/_internal/VERSION index 62178d2d..27043605 100644 --- a/tools/src/main/python/dlpx/virtualization/_internal/VERSION +++ b/tools/src/main/python/dlpx/virtualization/_internal/VERSION @@ -1 +1 @@ -2.0.0-internal-2 \ No newline at end of file +2.1.0-internal-0 \ No newline at end of file diff --git a/tools/src/main/python/dlpx/virtualization/_internal/commands/build.py b/tools/src/main/python/dlpx/virtualization/_internal/commands/build.py index 79c353a5..82d6cd80 100644 --- a/tools/src/main/python/dlpx/virtualization/_internal/commands/build.py +++ b/tools/src/main/python/dlpx/virtualization/_internal/commands/build.py @@ -214,6 +214,9 @@ def prepare_upload_artifact(plugin_config_content, src_dir, schemas, manifest): if plugin_config_content.get('externalVersion'): artifact['externalVersion'] = plugin_config_content['externalVersion'] + if plugin_config_content.get('luaName'): + artifact['luaName'] = plugin_config_content['luaName'] + return artifact diff --git a/tools/src/main/python/dlpx/virtualization/_internal/validation_schemas/plugin_config_schema.json b/tools/src/main/python/dlpx/virtualization/_internal/validation_schemas/plugin_config_schema.json index 5d49e478..cf1ab003 100644 --- a/tools/src/main/python/dlpx/virtualization/_internal/validation_schemas/plugin_config_schema.json +++ b/tools/src/main/python/dlpx/virtualization/_internal/validation_schemas/plugin_config_schema.json @@ -50,6 +50,10 @@ "buildNumber": { "type": "string", "pattern": "^([0-9]+\\.)*[0-9]*[1-9][0-9]*(\\.[0-9]+)*$" + }, + "luaName": { + "type": "string", + "pattern": "^[a-z0-9_:-]+$" } }, "additionalProperties": false, diff --git a/tools/src/main/python/dlpx/virtualization/_internal/validation_schemas/plugin_config_schema_no_id_validation.json b/tools/src/main/python/dlpx/virtualization/_internal/validation_schemas/plugin_config_schema_no_id_validation.json index 703382fa..62fd92df 100644 --- a/tools/src/main/python/dlpx/virtualization/_internal/validation_schemas/plugin_config_schema_no_id_validation.json +++ b/tools/src/main/python/dlpx/virtualization/_internal/validation_schemas/plugin_config_schema_no_id_validation.json @@ -49,6 +49,10 @@ "buildNumber": { "type": "string", "pattern": "^([0-9]+\\.)*[0-9]*[1-9][0-9]*(\\.[0-9]+)*$" + }, + "luaName": { + "type": "string", + "pattern": "^[a-z0-9_:-]+$" } }, "additionalProperties": false, diff --git a/tools/src/test/python/dlpx/virtualization/_internal/commands/test_build.py b/tools/src/test/python/dlpx/virtualization/_internal/commands/test_build.py index 7e4271b1..36608887 100644 --- a/tools/src/test/python/dlpx/virtualization/_internal/commands/test_build.py +++ b/tools/src/test/python/dlpx/virtualization/_internal/commands/test_build.py @@ -651,3 +651,14 @@ def test_build_number_parameter(plugin_config_content, src_dir, plugin_config_content, src_dir, schema_content, {}) assert expected == upload_artifact['buildNumber'] + + @staticmethod + @pytest.mark.parametrize('lua_name, expected', [ + pytest.param('lua-toolkit-1', 'lua-toolkit-1'), + pytest.param(None, None) + ]) + def test_lua_name_parameter(plugin_config_content, src_dir, + schema_content, expected): + upload_artifact = build.prepare_upload_artifact( + plugin_config_content, src_dir, schema_content, {}) + assert expected == upload_artifact.get('luaName') diff --git a/tools/src/test/python/dlpx/virtualization/_internal/conftest.py b/tools/src/test/python/dlpx/virtualization/_internal/conftest.py index 28ccaef1..c3d89473 100644 --- a/tools/src/test/python/dlpx/virtualization/_internal/conftest.py +++ b/tools/src/test/python/dlpx/virtualization/_internal/conftest.py @@ -171,7 +171,7 @@ def artifact_file_created(): @pytest.fixture def plugin_config_content(plugin_id, plugin_name, external_version, language, host_types, plugin_type, entry_point, src_dir, - schema_file, manual_discovery, build_number): + schema_file, manual_discovery, build_number, lua_name): """ This fixutre creates the dict expected in the properties yaml file the customer must provide for the build and compile commands. @@ -216,6 +216,9 @@ def plugin_config_content(plugin_id, plugin_name, external_version, language, if build_number: config['buildNumber'] = build_number + if lua_name: + config['luaName'] = lua_name + return config @@ -274,6 +277,11 @@ def build_number(): return '2.0.0' +@pytest.fixture +def lua_name(): + return 'lua-toolkit-1' + + @pytest.fixture def artifact_manual_discovery(): return True @@ -561,6 +569,7 @@ def basic_artifact_content(engine_api, virtual_source_definition, 'engineApi': engine_api, 'rootSquashEnabled': True, 'buildNumber': '2', + 'luaName': 'lua-toolkit-1', 'sourceCode': 'UEsFBgAAAAAAAAAAAAAAAAAAAAAAAA==', 'manifest': {} } @@ -608,6 +617,7 @@ def artifact_content(engine_api, virtual_source_definition, 'sourceCode': 'UEsFBgAAAAAAAAAAAAAAAAAAAAAAAA==', 'rootSquashEnabled': True, 'buildNumber': '2', + 'luaName': 'lua-toolkit-1', 'manifest': {} } diff --git a/tools/src/test/python/dlpx/virtualization/_internal/test_plugin_validator.py b/tools/src/test/python/dlpx/virtualization/_internal/test_plugin_validator.py index 52722bd4..1a7e8eeb 100644 --- a/tools/src/test/python/dlpx/virtualization/_internal/test_plugin_validator.py +++ b/tools/src/test/python/dlpx/virtualization/_internal/test_plugin_validator.py @@ -171,3 +171,21 @@ def test_plugin_build_number_format(src_dir, plugin_config_file, except exceptions.SchemaValidationError as err_info: message = err_info.message assert expected in message + + @staticmethod + @mock.patch('os.path.isabs', return_value=False) + @pytest.mark.parametrize('lua_name, expected', [ + ('lua toolkit', "'lua toolkit' does not match"), + ('!lua#toolkit', "'!lua#toolkit' does not match"), + (None, "should never get here") + ]) + def test_plugin_lua_name_format(src_dir, plugin_config_file, + plugin_config_content, expected): + try: + validator = PluginValidator.from_config_content( + plugin_config_file, plugin_config_content, + const.PLUGIN_CONFIG_SCHEMA) + validator.validate_plugin_config() + except exceptions.SchemaValidationError as err_info: + message = err_info.message + assert expected in message From 7738c1551f72b8fdb9bd5b8f5c7e87a2c7021c56 Mon Sep 17 00:00:00 2001 From: jeff ngo Date: Wed, 29 Apr 2020 14:07:41 -0700 Subject: [PATCH 2/2] fixed test_get_version --- .../python/dlpx/virtualization/_internal/test_package_util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/src/test/python/dlpx/virtualization/_internal/test_package_util.py b/tools/src/test/python/dlpx/virtualization/_internal/test_package_util.py index 7a563d02..055325a9 100644 --- a/tools/src/test/python/dlpx/virtualization/_internal/test_package_util.py +++ b/tools/src/test/python/dlpx/virtualization/_internal/test_package_util.py @@ -10,7 +10,7 @@ class TestPackageUtil: @staticmethod def test_get_version(): - assert package_util.get_version() == '2.0.0-internal-2' + assert package_util.get_version() == '2.1.0-internal-0' @staticmethod def test_get_virtualization_api_version():