diff --git a/README.fr.md b/README.fr.md new file mode 100644 index 0000000..473a0f4 diff --git a/tests/results/test_namespace/60_0family_dynamic_variable/errors/all.json b/tests/results/test_namespace/60_0family_dynamic_variable/errors/all.json new file mode 100644 index 0000000..acba74c --- /dev/null +++ b/tests/results/test_namespace/60_0family_dynamic_variable/errors/all.json @@ -0,0 +1,4 @@ +{ + "errors": [], + "warnings": [] +} \ No newline at end of file diff --git a/tests/results/test_namespace/60_0family_dynamic_variable/errors/mandatories.json b/tests/results/test_namespace/60_0family_dynamic_variable/errors/mandatories.json new file mode 100644 index 0000000..acba74c --- /dev/null +++ b/tests/results/test_namespace/60_0family_dynamic_variable/errors/mandatories.json @@ -0,0 +1,4 @@ +{ + "errors": [], + "warnings": [] +} \ No newline at end of file diff --git a/tests/results/test_namespace/60_0family_dynamic_variable/file/all.cmdline_opts b/tests/results/test_namespace/60_0family_dynamic_variable/file/all.cmdline_opts new file mode 100644 index 0000000..1f306d5 --- /dev/null +++ b/tests/results/test_namespace/60_0family_dynamic_variable/file/all.cmdline_opts @@ -0,0 +1,9 @@ +[ + "--rougail.var", + "val1", + "val2", + "--rougail.dynval1.variable", + "string1", + "--rougail.dynval2.variable", + "string1" +] \ No newline at end of file diff --git a/tests/results/test_namespace/60_0family_dynamic_variable/file/mandatories.cmdline_opts b/tests/results/test_namespace/60_0family_dynamic_variable/file/mandatories.cmdline_opts new file mode 100644 index 0000000..e92ac6a --- /dev/null +++ b/tests/results/test_namespace/60_0family_dynamic_variable/file/mandatories.cmdline_opts @@ -0,0 +1,6 @@ +[ + "--rougail.dynval1.variable", + "string1", + "--rougail.dynval2.variable", + "string1" +] \ No newline at end of file diff --git a/tests/results/test_namespace/60_0family_dynamic_variable/makedict/all.json b/tests/results/test_namespace/60_0family_dynamic_variable/makedict/all.json new file mode 100644 index 0000000..8adc880 --- /dev/null +++ b/tests/results/test_namespace/60_0family_dynamic_variable/makedict/all.json @@ -0,0 +1,8 @@ +{ + "rougail.var": [ + "val1", + "val2" + ], + "rougail.dynval1.variable": "string1", + "rougail.dynval2.variable": "string1" +} diff --git a/tests/results/test_namespace/60_0family_dynamic_variable/makedict/mandatories.json b/tests/results/test_namespace/60_0family_dynamic_variable/makedict/mandatories.json new file mode 100644 index 0000000..8adc880 --- /dev/null +++ b/tests/results/test_namespace/60_0family_dynamic_variable/makedict/mandatories.json @@ -0,0 +1,8 @@ +{ + "rougail.var": [ + "val1", + "val2" + ], + "rougail.dynval1.variable": "string1", + "rougail.dynval2.variable": "string1" +} diff --git a/tests/structures/rougail/00-main.yml b/tests/structures/rougail/00-main.yml new file mode 100644 index 0000000..721155f --- /dev/null +++ b/tests/structures/rougail/00-main.yml @@ -0,0 +1,6 @@ +%YAML 1.2 +--- +version: 1.1 + +my_variable: # My variable +... diff --git a/tests/test_others.py b/tests/test_others.py new file mode 100644 index 0000000..77acf80 --- /dev/null +++ b/tests/test_others.py @@ -0,0 +1,48 @@ +from pathlib import Path + +from rougail import Rougail +from rougail.user_data_commandline import RougailUserDataCommandline as RougailUserData + +from rougail_tests.utils import get_rougail_config, config_to_dict + + +def test_error(): + rougailconfig = get_rougail_config(Path('tests/structures/'), True) + ################################## + rougailconfig['step.user_data'] = ['commandline'] + ################################## + rougail = Rougail(rougailconfig) + config = rougail.run() + arguments = ['--rougail.unknown', 'an other value'] + generated_user_data = RougailUserData(config, rougailconfig=rougailconfig, arguments=arguments).run() + err_warn = rougail.user_data(generated_user_data) + assert err_warn == {'errors': ['unrecognized arguments: --rougail.unknown an other value'], 'warnings': []} + assert dict(config_to_dict(config.value.get())) == {'rougail.my_variable': None} + + +def test_allow_unknown_error(): + rougailconfig = get_rougail_config(Path('tests/structures/'), True) + ################################## + rougailconfig['step.user_data'] = ['commandline'] + ################################## + rougail = Rougail(rougailconfig) + config = rougail.run() + arguments = ['--rougail.my_variable', 'a value', '--rougail.unknown', 'an other value'] + generated_user_data = RougailUserData(config, rougailconfig=rougailconfig, arguments=arguments).run() + err_warn = rougail.user_data(generated_user_data) + assert err_warn == {'errors': ['unrecognized arguments: --rougail.unknown an other value'], 'warnings': []} + assert dict(config_to_dict(config.value.get())) == {'rougail.my_variable': 'a value'} + + +def test_allow_unknown(): + rougailconfig = get_rougail_config(Path('tests/structures/'), True) + ################################## + rougailconfig['step.user_data'] = ['commandline'] + ################################## + rougail = Rougail(rougailconfig) + config = rougail.run() + arguments = ['--rougail.my_variable', 'a value', '--rougail.unknown', 'an other value'] + generated_user_data = RougailUserData(config, rougailconfig=rougailconfig, arguments=arguments, allow_unknown=True).run() + err_warn = rougail.user_data(generated_user_data) + assert err_warn == {'errors': [], 'warnings': []} + assert dict(config_to_dict(config.value.get())) == {'rougail.my_variable': 'a value'}