diff --git a/src/rougail/cli/__main__.py b/src/rougail/cli/__main__.py index 088cace..3ac9ec5 100644 --- a/src/rougail/cli/__main__.py +++ b/src/rougail/cli/__main__.py @@ -83,6 +83,7 @@ def _main(arguments, do_not_print): def load_cmd_user_data(rougailconfig, arguments): rougailconfig.generate_config() cmd_config = rougailconfig.config + cmd_config.information.set("description_type", "path_and_description") origin_prop = cmd_config.property.default("read_write", "append") cmd_config.property.setdefault( frozenset(origin_prop | {"not_for_commandline"}), "read_write", "append" @@ -111,7 +112,7 @@ def load_cmd_user_data(rougailconfig, arguments): if isinstance(warning, dict): for w, var in warning.items(): if var: - warn(UserWarning(f'unable to load "{var.option.impl_get_display_name(var)}", {str(w)}')) + warn(UserWarning(_('unable to load {0}, {1}').format(var.option.impl_get_display_name(var, with_quote=True), w))) else: warn(w) else: @@ -177,27 +178,25 @@ def manage_warnings(warnings): def load_user_data(rougailconfig): - layer_datas = {} + layer_datas = [] if not rougailconfig["cli.load_config"]: return None, None, None, {"errors": [], "warnings": []} try: user_data_names = rougailconfig["step.user_data"] except PropertiesOptionError: user_data_names = [] - has_layers = rougailconfig["cli.layers"] - if has_layers: - layers = [[ud] for ud in user_data_names] - last_layers = len(layers) - 1 - else: - layers = [user_data_names] - last_layers = 0 if rougailconfig["tiramisu_cache"]: load_from_tiramisu_cache = rougailconfig["cli.load_from_tiramisu_cache"] else: load_from_tiramisu_cache = False rougail = Rougail(rougailconfig, load_from_tiramisu_cache=load_from_tiramisu_cache) - layer_name = "_".join(layers[-1]) - subconfig = rougail.run(name=layer_name) + has_layers = rougailconfig["cli.layers"] + last_layers = len(user_data_names) - 1 + if has_layers and user_data_names: + layer_name = user_data_names[-1] + else: + layer_name = None + subconfig = metaconfig = rougail.run(name=layer_name) try: read_write = set() read_only = set() @@ -210,87 +209,112 @@ def load_user_data(rougailconfig): read_only |= modes read_write |= modes if read_write: - subconfig.property.setdefault( - frozenset(subconfig.property.default("read_write", "append") | read_write), "read_write", "append" + metaconfig.property.setdefault( + frozenset(metaconfig.property.default("read_write", "append") | read_write), "read_write", "append" ) - subconfig.property.setdefault( - frozenset(subconfig.property.default("read_only", "remove") | (read_write - read_only)), "read_only", "remove" + metaconfig.property.setdefault( + frozenset(metaconfig.property.default("read_only", "remove") | (read_write - read_only)), "read_only", "remove" ) for p in read_write: - subconfig.permissive.add(p) + metaconfig.permissive.add(p) if read_only: - subconfig.property.setdefault( - frozenset(subconfig.property.default("read_only", "append") | read_only), "read_only", "append" + metaconfig.property.setdefault( + frozenset(metaconfig.property.default("read_only", "append") | read_only), "read_only", "append" ) for p in read_only: - subconfig.permissive.add(p) + metaconfig.permissive.add(p) if read_write or read_only: - subconfig.property.read_write() + metaconfig.property.read_write() except: pass - subconfig.information.set("description_type", rougailconfig["cli.description_type"]) - metaconfig = subconfig - if last_layers: - for layer in reversed(layers[:-1]): - layer_name = "_".join(layer) - metaconfig = MetaConfig([metaconfig], name=layer_name) - metaconfig.owner.set(metaconfig.path()) - subconfig = metaconfig + metaconfig.information.set("description_type", rougailconfig["cli.description_type"]) + rougail_user_datas = {} + interactive_user_datas = {} + for ud_idx, user_data_name in enumerate(reversed(user_data_names)): + path = ( + Path(__file__).parent.parent + / ("user_data_" + user_data_name) + / "__init__.py" + ) + if not path.is_file(): + raise Exception( + _('cannot find "user_data" module "{0}"').format(user_data_name) + ) + module = load_modules("rougail.user_data_" + user_data_name, str(path)) + rougail_user_data = module.RougailUserData + has_several_layers = hasattr(rougail_user_data, 'has_several_layers') and rougail_user_data.has_several_layers + if has_layers and has_several_layers: + layers_len = rougail_user_data(None, rougailconfig=rougailconfig).count_layers() + else: + layers_len = 1 + for idx in range(layers_len): + if ud_idx and has_layers: + metaconfig = MetaConfig([metaconfig], name=user_data_name) + if not idx: + has_interactive_user_data = hasattr(rougail_user_data, 'interactive_user_data') and rougail_user_data.interactive_user_data + if has_interactive_user_data: + interactive_user_datas[user_data_name] = rougail_user_data + else: + if interactive_user_datas: + raise Exception(_('interactive user data "{0}" is loader before uninteractive user data "{1}"').format(list(interactive_user_datas), user_data_name)) + rougail_user_datas[user_data_name] = rougail_user_data + root_metaconfig = metaconfig err_warn = {"errors": [], "warnings": []} invalid_user_data_error = rougailconfig["cli.invalid_user_data_error"] unknown_user_data_error = rougailconfig["cli.unknown_user_data_error"] - interactive_user_data = {} - for idx, layer in enumerate(layers): - if idx: - subconfig = subconfig.config("_".join(layer)) - subconfig.owner.set(subconfig.path()) - layer_name = subconfig.path() - # data user - user_data = [] - if has_layers: - layer_datas[layer_name] = {} - for user_data_name in layer: - path = ( - Path(__file__).parent.parent - / ("user_data_" + user_data_name) - / "__init__.py" - ) - if not path.is_file(): - raise Exception( - _('cannot find "user_data" module "{0}"').format(user_data_name) - ) - module = load_modules("rougail.user_data_" + user_data_name, str(path)) - rougail_user_data = module.RougailUserData - if hasattr(rougail_user_data, 'interactive_user_data') and rougail_user_data.interactive_user_data: - interactive_user_data.setdefault(layer_name, {})[user_data_name] = rougail_user_data - continue - elif interactive_user_data: - raise Exception(_('interactive user data "{0}" is loader before uninteractive user data "{1}"').format(list(interactive_user_data), user_data_name)) - for ud in rougail_user_data( + user_datas = [] + for idx, user_data_name in enumerate(reversed(rougail_user_datas)): + rougail_user_data = rougail_user_datas[user_data_name] + if has_layers and idx: + metaconfig = metaconfig.config(user_data_name) + metaconfig.owner.set(metaconfig.path()) + for ud_idx, user_data in enumerate(rougail_user_data( subconfig, rougailconfig=rougailconfig, - ).run(): - if has_layers: - layer_datas[layer_name].setdefault(user_data_name, []).append(ud["source"]) - user_data.append(ud) - if user_data: - new_err_warn = UserData(subconfig).user_data(user_data, invalid_user_data_error=invalid_user_data_error, unknown_user_data_error=unknown_user_data_error) - for level, datas in new_err_warn.items(): - if datas: - err_warn[level].extend(datas) - for layer_name, interactive_user_data in interactive_user_data.items(): - for layer, rougail_user_data in interactive_user_data.items(): - if has_layers and len(layers) > 1: - subconfig = subconfig.config("_".join(layer)) - subconfig.owner.set(subconfig.path()) - for user_data in rougail_user_data( - subconfig, - rougailconfig=rougailconfig, - ).run(): - if has_layers: - layer_datas[layer_name].setdefault(user_data_name, []).append(user_data["source"]) - - return layer_datas, metaconfig, subconfig, err_warn + ).run()): + if has_layers and ud_idx: + metaconfig = metaconfig.config(user_data_name) + metaconfig.owner.set(metaconfig.path()) + if has_layers: + layer_datas.append(user_data["source"]) + new_err_warn = UserData(metaconfig).user_data([user_data], invalid_user_data_error=invalid_user_data_error, unknown_user_data_error=unknown_user_data_error) + for level, datas in new_err_warn.items(): + if datas: + err_warn[level].extend(datas) + else: + user_datas.append(user_data) + if user_datas and not has_layers: + new_err_warn = UserData(metaconfig).user_data(user_datas, invalid_user_data_error=invalid_user_data_error, unknown_user_data_error=unknown_user_data_error) + for level, datas in new_err_warn.items(): + if datas: + err_warn[level].extend(datas) + user_datas = [] + for idx, user_data_name in enumerate(reversed(interactive_user_datas)): + rougail_user_data = interactive_user_datas[user_data_name] + if has_layers and idx: + metaconfig = metaconfig.config(user_data_name) + metaconfig.owner.set(metaconfig.path()) + for ud_idx, user_data in enumerate(rougail_user_data( + subconfig, + rougailconfig=rougailconfig, + ).run()): + if has_layers and ud_idx: + metaconfig = metaconfig.config(user_data_name) + metaconfig.owner.set(metaconfig.path()) + if has_layers: + layer_datas.append(user_data["source"]) + new_err_warn = UserData(metaconfig).user_data([user_data], invalid_user_data_error=invalid_user_data_error, unknown_user_data_error=unknown_user_data_error) + for level, datas in new_err_warn.items(): + if datas: + err_warn[level].extend(datas) + else: + user_datas.append(user_data) + if user_datas and not has_layers: + new_err_warn = UserData(metaconfig).user_data(user_datas, invalid_user_data_error=invalid_user_data_error, unknown_user_data_error=unknown_user_data_error) + for level, datas in new_err_warn.items(): + if datas: + err_warn[level].extend(datas) + return layer_datas, root_metaconfig, subconfig, err_warn def get_output(rougailconfig, metaconfig, config, err_warn, layer_datas): @@ -328,6 +352,5 @@ def main(arguments=None, do_not_print=False): except Exception as err: if print_traceback: import traceback - traceback.print_exc() exit(_("ERROR: {0}").format(err)) diff --git a/tests/cli/result_user_datas_layers.txt b/tests/cli/result_user_datas_layers.txt index d20d6c2..842670e 100644 --- a/tests/cli/result_user_datas_layers.txt +++ b/tests/cli/result_user_datas_layers.txt @@ -2,11 +2,14 @@ │ Variable Modified value │ │ (⏳ Original default value) │ ╰──────────────────────────────────────╯ -╭─────────── Layers ────────────╮ -│ environment variable │ -│ the YAML file "yaml/file.yml" │ -│ Bitwarden │ -╰───────────────────────────────╯ +╭───────────── Layers ─────────────╮ +│ • environment variable │ +│ • the YAML file "yaml/file.yml" │ +│ • the YAML file "yaml/file2.yml" │ +│ • Bitwarden │ +╰──────────────────────────────────╯ Variables: -┗━━ 📓 a description: a yaml value ◀ loaded from the YAML file "yaml/file.yml" - (⏳ my env value ◀ loaded from environment variable ⏳ my_value) +┗━━ 📓 a description: a second yaml value ◀ loaded from the YAML file + "yaml/file2.yml" (⏳ a yaml value ◀ loaded from the YAML file + "yaml/file.yml" ⏳ my env value ◀ loaded from environment variable ⏳ + my_value) diff --git a/tests/cli/yaml/file2.yml b/tests/cli/yaml/file2.yml new file mode 100644 index 0000000..53c1df4 --- /dev/null +++ b/tests/cli/yaml/file2.yml @@ -0,0 +1,2 @@ +--- +my_variable: a second yaml value diff --git a/tests/rougailcli_file/alt_console.txt b/tests/rougailcli_file/alt_console.txt index a66ad5b..952586c 100644 --- a/tests/rougailcli_file/alt_console.txt +++ b/tests/rougailcli_file/alt_console.txt @@ -1 +1 @@ -"\u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n\u2503\u001b[1m \u001b[0m\u001b[1mVariable \u001b[0m\u001b[1m \u001b[0m\u2503\u001b[1m \u001b[0m\u001b[1mDescription \u001b[0m\u001b[1m \u001b[0m\u2503\n\u2521\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2529\n\u2502 \u001b[1mmy_variable\u001b[0m \u2502 A description. \u2502\n\u2502 \u001b[1;7m string \u001b[0m \u001b[1;7m mandatory \u001b[0m \u2502 \u001b[1mDefault\u001b[0m: my_value \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n" \ No newline at end of file +"\u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n\u2503\u001b[1m \u001b[0m\u001b[1mVariable \u001b[0m\u001b[1m \u001b[0m\u2503\u001b[1m \u001b[0m\u001b[1mDescription \u001b[0m\u001b[1m \u001b[0m\u2503\n\u2521\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2529\n\u2502 \u001b[1mmy_variable\u001b[0m \u2502 A description. \u2502\n\u2502 \u001b[1;7m string \u001b[0m \u001b[1;7m mandatory \u001b[0m \u2502 \u001b[1mDefault\u001b[0m: my_value \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\n" \ No newline at end of file diff --git a/tests/rougailcli_file/mix_console.txt b/tests/rougailcli_file/mix_console.txt index 5f1a157..c8cf9f4 100644 --- a/tests/rougailcli_file/mix_console.txt +++ b/tests/rougailcli_file/mix_console.txt @@ -1 +1 @@ -"[cols=\"1a,1a\"]\n|====\n| Variable | Description \n| **my_variable** +\n`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `mandatory` | A description. +\n**Default**: my_value \n|====\n\n" \ No newline at end of file +"[cols=\"1a,1a\"]\n|====\n| Variable | Description \n| **my_variable** +\n`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `mandatory` | A description. +\n**Default**: my_value \n|====" \ No newline at end of file diff --git a/tests/rougailcli_file/symlink_rougailcli.txt b/tests/rougailcli_file/symlink_rougailcli.txt index 8d054fc..a18f852 100644 --- a/tests/rougailcli_file/symlink_rougailcli.txt +++ b/tests/rougailcli_file/symlink_rougailcli.txt @@ -1 +1 @@ -["unable to load \"Main namespace name\", it's a symlink option so we cannot set the value \"doc\", it will be ignored when loading from the YAML file \"symlink_rougailcli.yml\""] \ No newline at end of file +["unable to load \"s\" (Main namespace name), it's a symlink option so we cannot set the value \"doc\", it will be ignored when loading from the YAML file \"symlink_rougailcli.yml\""] \ No newline at end of file diff --git a/tests/rougailcli_file/warnings.txt b/tests/rougailcli_file/warnings.txt index 1dd27d6..a03528c 100644 --- a/tests/rougailcli_file/warnings.txt +++ b/tests/rougailcli_file/warnings.txt @@ -1 +1 @@ -["unable to load \"test mandatories variables before display in JSON\", family \"Export configuration to JSON format\" has property disabled, so cannot access to \"test mandatories variables before display in JSON\", it will be ignored when loading from the YAML file \"warnings.yml\""] \ No newline at end of file +["unable to load \"bitwarden.mock_enable\" (Simulate password generation instead of retrieve them), family \"bitwarden\" (Secrets are in Bitwarden) has property disabled, so cannot access to \"bitwarden.mock_enable\" (Simulate password generation instead of retrieve them), it will be ignored when loading from the YAML file \"warnings.yml\""] \ No newline at end of file diff --git a/tests/rougailcli_file/warnings.yml b/tests/rougailcli_file/warnings.yml index c825a5f..f9907be 100644 --- a/tests/rougailcli_file/warnings.yml +++ b/tests/rougailcli_file/warnings.yml @@ -3,5 +3,5 @@ main_structural_directories: - structures doc: output_format: console -json: - mandatory: true +bitwarden: + mock_enable: true diff --git a/tests/rougailcli_file/warnings2.yml b/tests/rougailcli_file/warnings2.yml index ba662e0..6831ee0 100644 --- a/tests/rougailcli_file/warnings2.yml +++ b/tests/rougailcli_file/warnings2.yml @@ -3,7 +3,7 @@ main_structural_directories: - structures doc: output_format: console -json: - mandatory: true +bitwarden: + mock_enable: true cli: warnings: false diff --git a/tests/rougailcli_file/warnings3.txt b/tests/rougailcli_file/warnings3.txt index c08018e..2d71bb2 100644 --- a/tests/rougailcli_file/warnings3.txt +++ b/tests/rougailcli_file/warnings3.txt @@ -1 +1 @@ -["unable to load \"test mandatories variables before display in JSON\", family \"Export configuration to JSON format\" has property disabled, so cannot access to \"test mandatories variables before display in JSON\", it will be ignored when loading from the YAML file \"warnings3.yml\""] \ No newline at end of file +["unable to load \"bitwarden.mock_enable\" (Simulate password generation instead of retrieve them), family \"bitwarden\" (Secrets are in Bitwarden) has property disabled, so cannot access to \"bitwarden.mock_enable\" (Simulate password generation instead of retrieve them), it will be ignored when loading from the YAML file \"warnings3.yml\""] \ No newline at end of file diff --git a/tests/rougailcli_file/warnings3.yml b/tests/rougailcli_file/warnings3.yml index d5e3d3b..ff0cd69 100644 --- a/tests/rougailcli_file/warnings3.yml +++ b/tests/rougailcli_file/warnings3.yml @@ -4,5 +4,5 @@ main_structural_directories: - structures_warnings doc: output_format: console -json: - mandatory: true +bitwarden: + mock_enable: true diff --git a/tests/rougailcli_file/warnings4.yml b/tests/rougailcli_file/warnings4.yml index 78cf9a9..1b10a1c 100644 --- a/tests/rougailcli_file/warnings4.yml +++ b/tests/rougailcli_file/warnings4.yml @@ -4,7 +4,5 @@ main_structural_directories: - structures_warnings doc: output_format: console -json: - mandatory: true cli: warnings: false diff --git a/tests/rougailcli_file/yaml.txt b/tests/rougailcli_file/yaml.txt index acfd629..e8ff192 100644 --- a/tests/rougailcli_file/yaml.txt +++ b/tests/rougailcli_file/yaml.txt @@ -1 +1 @@ -"{\n \"my_variable\": {\n \"type\": \"variable\",\n \"default\": {\n \"name\": \"Default\",\n \"values\": \"my_value\"\n },\n \"variable_type\": \"string\",\n \"path\": \"my_variable\",\n \"names\": [\n \"my_variable\"\n ],\n \"description\": \"A description.\",\n \"properties\": [\n {\n \"type\": \"property\",\n \"name\": \"mandatory\",\n \"ori_name\": \"mandatory\",\n \"access_control\": false\n }\n ],\n \"gen_examples\": [\n \"my_value\"\n ],\n \"mandatory_without_value\": false\n }\n}" \ No newline at end of file +"{\n \"my_variable\": {\n \"path\": \"my_variable\",\n \"name\": \"my_variable\",\n \"description\": \"A description.\",\n \"properties\": [\n {\n \"type\": \"property\",\n \"name\": \"mandatory\",\n \"ori_name\": \"mandatory\",\n \"access_control\": false\n }\n ],\n \"type\": \"variable\",\n \"default\": {\n \"name\": \"Default\",\n \"values\": \"my_value\"\n },\n \"variable_type\": \"string\"\n }\n}" \ No newline at end of file diff --git a/tests/rougailcli_files/yaml.txt b/tests/rougailcli_files/yaml.txt index acfd629..e8ff192 100644 --- a/tests/rougailcli_files/yaml.txt +++ b/tests/rougailcli_files/yaml.txt @@ -1 +1 @@ -"{\n \"my_variable\": {\n \"type\": \"variable\",\n \"default\": {\n \"name\": \"Default\",\n \"values\": \"my_value\"\n },\n \"variable_type\": \"string\",\n \"path\": \"my_variable\",\n \"names\": [\n \"my_variable\"\n ],\n \"description\": \"A description.\",\n \"properties\": [\n {\n \"type\": \"property\",\n \"name\": \"mandatory\",\n \"ori_name\": \"mandatory\",\n \"access_control\": false\n }\n ],\n \"gen_examples\": [\n \"my_value\"\n ],\n \"mandatory_without_value\": false\n }\n}" \ No newline at end of file +"{\n \"my_variable\": {\n \"path\": \"my_variable\",\n \"name\": \"my_variable\",\n \"description\": \"A description.\",\n \"properties\": [\n {\n \"type\": \"property\",\n \"name\": \"mandatory\",\n \"ori_name\": \"mandatory\",\n \"access_control\": false\n }\n ],\n \"type\": \"variable\",\n \"default\": {\n \"name\": \"Default\",\n \"values\": \"my_value\"\n },\n \"variable_type\": \"string\"\n }\n}" \ No newline at end of file diff --git a/tests/second_step/yaml.txt b/tests/second_step/yaml.txt index acfd629..e8ff192 100644 --- a/tests/second_step/yaml.txt +++ b/tests/second_step/yaml.txt @@ -1 +1 @@ -"{\n \"my_variable\": {\n \"type\": \"variable\",\n \"default\": {\n \"name\": \"Default\",\n \"values\": \"my_value\"\n },\n \"variable_type\": \"string\",\n \"path\": \"my_variable\",\n \"names\": [\n \"my_variable\"\n ],\n \"description\": \"A description.\",\n \"properties\": [\n {\n \"type\": \"property\",\n \"name\": \"mandatory\",\n \"ori_name\": \"mandatory\",\n \"access_control\": false\n }\n ],\n \"gen_examples\": [\n \"my_value\"\n ],\n \"mandatory_without_value\": false\n }\n}" \ No newline at end of file +"{\n \"my_variable\": {\n \"path\": \"my_variable\",\n \"name\": \"my_variable\",\n \"description\": \"A description.\",\n \"properties\": [\n {\n \"type\": \"property\",\n \"name\": \"mandatory\",\n \"ori_name\": \"mandatory\",\n \"access_control\": false\n }\n ],\n \"type\": \"variable\",\n \"default\": {\n \"name\": \"Default\",\n \"values\": \"my_value\"\n },\n \"variable_type\": \"string\"\n }\n}" \ No newline at end of file diff --git a/tests/test_load.py b/tests/test_load.py index 45494df..ad542de 100644 --- a/tests/test_load.py +++ b/tests/test_load.py @@ -25,7 +25,7 @@ def test_cli(): def test_cli_boolean(): with chdir(test_dir / 'cli'): - ret = main(['--main_structural_directories', 'structures', '--display.mandatory'], do_not_print=True) + ret = main(['--main_structural_directories', 'structures', '--cli.warnings'], do_not_print=True) filename = Path('result.txt') if not filename.is_file(): with filename.open('w') as fh: @@ -37,7 +37,7 @@ def test_cli_boolean(): def test_cli_boolean_no(): with chdir(test_dir / 'cli'): - ret = main(['--main_structural_directories', 'structures', '--display.no-mandatory'], do_not_print=True) + ret = main(['--main_structural_directories', 'structures', '--cli.no-warnings'], do_not_print=True) filename = Path('result.txt') if not filename.is_file(): with filename.open('w') as fh: @@ -116,7 +116,7 @@ def test_cli_user_datas_user_datas_layers(): save = os.environ.copy() os.environ["ROUGAIL_MY_VARIABLE"] = "my env value" with chdir(test_dir / 'cli'): - ret = main(['--main_structural_directories', 'structures', '--cli.layers', '--step.user_data', 'environment', 'yaml', 'bitwarden', '--yaml.filename', 'yaml/file.yml', '--bitwarden.mock_enable'], do_not_print=True) + ret = main(['--main_structural_directories', 'structures', '--cli.layers', '--step.user_data', 'environment', 'yaml', 'bitwarden', '--yaml.filename', 'yaml/file.yml', 'yaml/file2.yml', '--bitwarden.mock_enable'], do_not_print=True) filename = Path('result_user_datas_layers.txt') if not filename.is_file(): with filename.open('w') as fh: