diff --git a/cumulusci/core/utils.py b/cumulusci/core/utils.py index 88cd570657..16e643d494 100644 --- a/cumulusci/core/utils.py +++ b/cumulusci/core/utils.py @@ -142,6 +142,11 @@ def process_list_of_pairs_dict_arg(arg): except TypeError as e: raise TaskOptionsError(e) from e +def process_none_arg(arg): + if arg == "None": + return None + else: + return arg def decode_to_unicode(content): """decode ISO-8859-1 to unicode, when using sf api""" diff --git a/cumulusci/tasks/create_package_version.py b/cumulusci/tasks/create_package_version.py index ac958df95b..7990717fdd 100644 --- a/cumulusci/tasks/create_package_version.py +++ b/cumulusci/tasks/create_package_version.py @@ -27,7 +27,7 @@ ) from cumulusci.core.github import get_version_id_from_tag from cumulusci.core.sfdx import convert_sfdx_source -from cumulusci.core.utils import process_bool_arg +from cumulusci.core.utils import process_bool_arg, process_none_arg from cumulusci.core.versions import PackageType, PackageVersionNumber, VersionTypeEnum from cumulusci.salesforce_api.package_zip import ( BasePackageZipBuilder, @@ -168,7 +168,7 @@ def _init_options(self, kwargs): namespace=self.options.get("namespace") or self.project_config.project__package__namespace, version_name=self.options.get("version_name") or "Release", - version_base=self.options.get("version_base"), + version_base=process_none_arg(self.options.get("version_base")), version_type=self.options.get("version_type") or VersionTypeEnum("build"), ) self.options["skip_validation"] = process_bool_arg( @@ -226,7 +226,9 @@ def _run_task(self): context=self.context, ) - ancestor_id = self._resolve_ancestor_id(self.options.get("ancestor_id")) + ancestor_id = self._resolve_ancestor_id( + process_none_arg(self.options.get("ancestor_id")) + ) self.request_id = self._create_version_request( self.package_id, diff --git a/cumulusci/tests/test_utils.py b/cumulusci/tests/test_utils.py index 74d872e7d4..dc68890602 100644 --- a/cumulusci/tests/test_utils.py +++ b/cumulusci/tests/test_utils.py @@ -655,3 +655,15 @@ def test_get_git_config_error(self, Command): assert utils.get_git_config("user.email") is None p.run.assert_called_once() + + def test_process_none_arg__none(self): + none_value = utils.process_none_arg(None) + assert none_value is None + + def test_process_none_arg__none_str(self): + none_value = utils.process_none_arg("None") + assert none_value is None + + def test_process_none_arg__not_none_str(self): + some_value = utils.process_none_arg("Value") + assert some_value == "Value" \ No newline at end of file