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'}