2024-09-23 14:34:15 +02:00
|
|
|
|
from .custom import CustomOption
|
|
|
|
|
|
2024-09-18 11:43:22 +02:00
|
|
|
|
from pathlib import Path
|
2024-09-23 14:34:15 +02:00
|
|
|
|
|
|
|
|
|
from pytest import fixture # , raises
|
2024-09-18 11:43:22 +02:00
|
|
|
|
from ruamel.yaml import YAML
|
|
|
|
|
|
2024-09-23 14:34:15 +02:00
|
|
|
|
from rougail import RougailConfig, Rougail
|
|
|
|
|
#from tiramisu import Config
|
|
|
|
|
|
|
|
|
|
#from rougail.output_doc import RougailOutputDoc
|
2024-09-18 11:43:22 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dico_dirs = Path('../rougail/tests/dictionaries')
|
2024-09-23 14:34:15 +02:00
|
|
|
|
#test_ok = set()
|
2024-09-18 11:43:22 +02:00
|
|
|
|
|
2024-09-23 14:34:15 +02:00
|
|
|
|
#excludes = set([
|
|
|
|
|
# '60_5family_dynamic_unknown_suffix',
|
|
|
|
|
# '60_5family_dynamic_variable_outside_sub_suffix',
|
|
|
|
|
#])
|
2024-09-18 11:43:22 +02:00
|
|
|
|
|
2024-09-23 14:34:15 +02:00
|
|
|
|
#for test in dico_dirs.iterdir():
|
|
|
|
|
# if (test / 'tiramisu').is_dir() and test.name not in excludes:
|
|
|
|
|
# test_ok.add(test)
|
2024-09-18 11:43:22 +02:00
|
|
|
|
|
2024-09-23 14:34:15 +02:00
|
|
|
|
#test_ok = list(test_ok)
|
|
|
|
|
#test_ok.sort()
|
2024-09-18 11:43:22 +02:00
|
|
|
|
|
2024-09-23 14:34:15 +02:00
|
|
|
|
test_ok = [dico_dirs / '60_0family_dynamic_variable_suffix']
|
2024-09-18 11:43:22 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@fixture(scope="module", params=test_ok)
|
|
|
|
|
def test_dir(request):
|
|
|
|
|
return request.param
|
|
|
|
|
|
|
|
|
|
|
2024-09-23 14:34:15 +02:00
|
|
|
|
def _test_dictionaries(test_dir):
|
2024-09-18 11:43:22 +02:00
|
|
|
|
rougailconfig = RougailConfig.copy()
|
2024-09-23 14:34:15 +02:00
|
|
|
|
# rougailconfig['step.output'] = 'environment'
|
2024-09-18 11:43:22 +02:00
|
|
|
|
dirs = [str(test_dir / 'dictionaries' / 'rougail')]
|
|
|
|
|
rougailconfig['custom_types']['custom'] = CustomOption
|
2024-09-23 14:34:15 +02:00
|
|
|
|
rougailconfig['main_dictionaries'] = dirs
|
|
|
|
|
return rougailconfig
|
|
|
|
|
|
|
|
|
|
#def option_value(parent, key_is_option=False):
|
|
|
|
|
# for option, value in parent.items():
|
|
|
|
|
# if option.isoptiondescription():
|
|
|
|
|
# if not key_is_option and option.isleadership():
|
|
|
|
|
# ret = []
|
|
|
|
|
# for idx, datas in enumerate(option_value(value, key_is_option=True)):
|
|
|
|
|
# sub_option, sub_value = datas
|
|
|
|
|
# if not idx:
|
|
|
|
|
# sub_option = sub_option.path()
|
|
|
|
|
# key = sub_option
|
|
|
|
|
# for val in sub_value:
|
|
|
|
|
# ret.append({sub_option: val})
|
|
|
|
|
# else:
|
|
|
|
|
# index = sub_option.index()
|
|
|
|
|
# sub_option = sub_option.path()
|
|
|
|
|
# ret[index][sub_option] = sub_value
|
|
|
|
|
# yield key, ret
|
|
|
|
|
# else:
|
|
|
|
|
# yield from option_value(value, key_is_option)
|
|
|
|
|
# elif key_is_option:
|
|
|
|
|
# yield option, value
|
|
|
|
|
# else:
|
|
|
|
|
# yield option.path(), value
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_dictionaries_warning(test_dir):
|
|
|
|
|
rougailconfig = _test_dictionaries(test_dir)
|
|
|
|
|
# loads the config in the tiramisu's meaning
|
|
|
|
|
config = Rougail(rougailconfig).run() #Config(optiondescription["option_0"])
|
|
|
|
|
print(type(config))
|
|
|
|
|
# config_dict = dict(option_value(config.value.get()))
|
|
|
|
|
# print(config_dict)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#def test_dictionaries_asciidoc(test_dir):
|
|
|
|
|
# _test_dictionaries(test_dir, 'asciidoc', True)
|