rougail-user-data-commandline/tests/test_others.py

49 lines
2.3 KiB
Python
Raw Permalink Normal View History

2026-06-21 14:40:32 +02:00
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'}