diff --git a/src/yunohost/app.py b/src/yunohost/app.py index 4ec043687..4abaaecca 100644 --- a/src/yunohost/app.py +++ b/src/yunohost/app.py @@ -2429,7 +2429,7 @@ class YunoHostArgumentFormatParser(object): if not question.optional and question.default is None: raise YunohostError('app_argument_required', name=question.name) else: - question.value = self.default_value if question.default is None else question.default + question.value = getattr(self, "default_value", None) if question.default is None else question.default # we have an answer, do some post checks if question.value is not None: diff --git a/src/yunohost/tests/test_apps_arguments_parsing.py b/src/yunohost/tests/test_apps_arguments_parsing.py index 7b835c410..1ea73cc0a 100644 --- a/src/yunohost/tests/test_apps_arguments_parsing.py +++ b/src/yunohost/tests/test_apps_arguments_parsing.py @@ -1011,14 +1011,14 @@ def test_parse_args_in_yunohost_format_app_no_apps(): _parse_args_in_yunohost_format(answers, questions) -@pytest.mark.skip # XXX should work def test_parse_args_in_yunohost_format_app_no_apps_optional(): apps = [] questions = [{"name": "some_app", "type": "app", "optional": True}] answers = {} + expected_result = OrderedDict({"some_app": (None, "app")}) with patch.object(app, "app_list", return_value={"apps": apps}): - assert _parse_args_in_yunohost_format(answers, questions) == [] + assert _parse_args_in_yunohost_format(answers, questions) == expected_result def test_parse_args_in_yunohost_format_app():