From 66356d8ff07d43796f7ecc1b16e7fede5c155b7d Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Sat, 6 Feb 2021 15:19:34 +0100 Subject: [PATCH] better _if_in and _if_not_in support --- src/rougail/annotator/condition.py | 43 +++++++++++-------- .../tiramisu/base.py | 2 +- .../tiramisu/base.py | 2 +- .../00-base.xml | 38 ++++++++++++++++ .../__init__.py | 0 .../makedict/base.json | 1 + .../tiramisu/base.py | 32 ++++++++++++++ .../00-base.xml | 38 ++++++++++++++++ .../__init__.py | 0 .../makedict/base.json | 1 + .../tiramisu/base.py | 32 ++++++++++++++ .../00-base.xml | 38 ++++++++++++++++ .../__init__.py | 0 .../makedict/base.json | 1 + .../tiramisu/base.py | 32 ++++++++++++++ .../00-base.xml | 38 ++++++++++++++++ .../__init__.py | 0 .../makedict/base.json | 1 + .../tiramisu/base.py | 32 ++++++++++++++ .../tiramisu/base.py | 2 +- .../tiramisu/base.py | 2 +- .../tiramisu/base.py | 2 +- .../tiramisu/base.py | 2 +- .../tiramisu/base.py | 2 +- 24 files changed, 317 insertions(+), 24 deletions(-) create mode 100644 tests/dictionaries/10load_disabled_if_in_multi_param3/00-base.xml create mode 100644 tests/dictionaries/10load_disabled_if_in_multi_param3/__init__.py create mode 100644 tests/dictionaries/10load_disabled_if_in_multi_param3/makedict/base.json create mode 100644 tests/dictionaries/10load_disabled_if_in_multi_param3/tiramisu/base.py create mode 100644 tests/dictionaries/10load_disabled_if_in_multi_param4/00-base.xml create mode 100644 tests/dictionaries/10load_disabled_if_in_multi_param4/__init__.py create mode 100644 tests/dictionaries/10load_disabled_if_in_multi_param4/makedict/base.json create mode 100644 tests/dictionaries/10load_disabled_if_in_multi_param4/tiramisu/base.py create mode 100644 tests/dictionaries/10load_disabled_if_in_multi_param5/00-base.xml create mode 100644 tests/dictionaries/10load_disabled_if_in_multi_param5/__init__.py create mode 100644 tests/dictionaries/10load_disabled_if_in_multi_param5/makedict/base.json create mode 100644 tests/dictionaries/10load_disabled_if_in_multi_param5/tiramisu/base.py create mode 100644 tests/dictionaries/10load_disabled_if_in_multi_param6/00-base.xml create mode 100644 tests/dictionaries/10load_disabled_if_in_multi_param6/__init__.py create mode 100644 tests/dictionaries/10load_disabled_if_in_multi_param6/makedict/base.json create mode 100644 tests/dictionaries/10load_disabled_if_in_multi_param6/tiramisu/base.py diff --git a/src/rougail/annotator/condition.py b/src/rougail/annotator/condition.py index 1bc76427a..2f22ac606 100644 --- a/src/rougail/annotator/condition.py +++ b/src/rougail/annotator/condition.py @@ -243,41 +243,50 @@ class ConditionAnnotator: param.name == 'condition_operator': or_needed = False break + fill.index += 1 else: fill = self.objectspace.fill(target.xmlfiles) fill.target = listvar.path fill.name = 'calc_value' fill.namespace = 'services' - fill.index = -1 + fill.index = 0 if not hasattr(self.objectspace.space.constraints, 'fill'): self.objectspace.space.constraints.fill = [] self.objectspace.space.constraints.fill.append(fill) fills[listvar.path] = fill param1 = self.objectspace.param(target.xmlfiles) - param1.text = value + param1.text = False param1.type = 'boolean' param2 = self.objectspace.param(target.xmlfiles) param2.name = 'default' - param2.text = not value + param2.text = True param2.type = 'boolean' fill.param = [param1, param2] or_needed = len(condition.param) != 1 - for param in condition.param: - fill.index += 1 - param3 = self.objectspace.param(target.xmlfiles) - param3.name = f'condition_{fill.index}' - param3.type = 'variable' - param3.text = condition.source - fill.param.append(param3) - param4 = self.objectspace.param(target.xmlfiles) - param4.name = f'expected_{fill.index}' - param4.text = getattr(param, 'text', None) - fill.param.append(param4) - if or_needed: + if len(condition.param) == 1: + values = getattr(condition.param[0], 'text', None) + else: + values = tuple([getattr(param, 'text', None) for param in condition.param]) + param3 = self.objectspace.param(target.xmlfiles) + param3.name = f'condition_{fill.index}' + param3.type = 'variable' + param3.text = condition.source + fill.param.append(param3) + param4 = self.objectspace.param(target.xmlfiles) + param4.name = f'expected_{fill.index}' + param4.text = values + fill.param.append(param4) + if condition.name != 'disabled_if_in': param5 = self.objectspace.param(target.xmlfiles) - param5.name = 'condition_operator' - param5.text = 'OR' + param5.name = f'reverse_condition_{fill.index}' + param5.text = True + param5.type = 'boolean' fill.param.append(param5) + if or_needed: + param6 = self.objectspace.param(target.xmlfiles) + param6.name = f'condition_operator' + param6.text = 'OR' + fill.param.append(param6) def convert_condition_source(self): """remove condition for ChoiceOption that don't have param diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_multi_param/tiramisu/base.py index 694ddefdd..66306cf83 100644 --- a/tests/dictionaries/10load_disabled_if_in_multi_param/tiramisu/base.py +++ b/tests/dictionaries/10load_disabled_if_in_multi_param/tiramisu/base.py @@ -23,7 +23,7 @@ option_12 = StrOption(name="name", doc="name", default="/tmp/file1") option_13 = StrOption(name="owner", doc="owner", default="root") option_14 = StrOption(name="source", doc="source", default="file1") option_15 = BoolOption(name="templating", doc="templating", default=True) -option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("oui"), 'condition_1': ParamOption(option_3), 'expected_1': ParamValue("maybe"), 'condition_operator': ParamValue("OR")}))) +option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(["oui", "maybe"]), 'condition_operator': ParamValue("OR")}))) option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16]) option_8 = OptionDescription(name="files", doc="files", children=[option_9]) option_7 = OptionDescription(name="test", doc="test", children=[option_8]) diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param2/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_multi_param2/tiramisu/base.py index 52cbc9e63..e5d9664d3 100644 --- a/tests/dictionaries/10load_disabled_if_in_multi_param2/tiramisu/base.py +++ b/tests/dictionaries/10load_disabled_if_in_multi_param2/tiramisu/base.py @@ -23,7 +23,7 @@ option_12 = StrOption(name="name", doc="name", default="/tmp/file1") option_13 = StrOption(name="owner", doc="owner", default="root") option_14 = StrOption(name="source", doc="source", default="file1") option_15 = BoolOption(name="templating", doc="templating", default=True) -option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("yes"), 'condition_1': ParamOption(option_3), 'expected_1': ParamValue("maybe"), 'condition_operator': ParamValue("OR"), 'condition_2': ParamOption(option_4), 'expected_2': ParamValue("yes"), 'condition_3': ParamOption(option_4), 'expected_3': ParamValue("maybe")}))) +option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(["yes", "maybe"]), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_4), 'expected_1': ParamValue(["yes", "maybe"])}))) option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16]) option_8 = OptionDescription(name="files", doc="files", children=[option_9]) option_7 = OptionDescription(name="test", doc="test", children=[option_8]) diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param3/00-base.xml b/tests/dictionaries/10load_disabled_if_in_multi_param3/00-base.xml new file mode 100644 index 000000000..6a00cf998 --- /dev/null +++ b/tests/dictionaries/10load_disabled_if_in_multi_param3/00-base.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + no + + + no + + + + + + + + yes + maybe + test_variable + afilllist + + + yes + maybe + test_variable + afilllist + + + + diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param3/__init__.py b/tests/dictionaries/10load_disabled_if_in_multi_param3/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param3/makedict/base.json b/tests/dictionaries/10load_disabled_if_in_multi_param3/makedict/base.json new file mode 100644 index 000000000..0fd7d6338 --- /dev/null +++ b/tests/dictionaries/10load_disabled_if_in_multi_param3/makedict/base.json @@ -0,0 +1 @@ +{"rougail.general.condition": "no", "rougail.general.condition2": "no", "services.test.files.file1.group": "root", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.templating": true, "services.test.files.file1.activate": false} diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param3/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_multi_param3/tiramisu/base.py new file mode 100644 index 000000000..c1608f2b1 --- /dev/null +++ b/tests/dictionaries/10load_disabled_if_in_multi_param3/tiramisu/base.py @@ -0,0 +1,32 @@ +from importlib.machinery import SourceFileLoader +from importlib.util import spec_from_loader, module_from_spec +loader = SourceFileLoader('func', 'tests/dictionaries/../eosfunc/test.py') +spec = spec_from_loader(loader.name, loader) +func = module_from_spec(spec) +loader.exec_module(func) +for key, value in dict(locals()).items(): + if key != ['SourceFileLoader', 'func']: + setattr(func, key, value) +try: + from tiramisu3 import * +except: + from tiramisu import * +from rougail.tiramisu import ConvertDynOptionDescription +option_3 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"})) +option_4 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"})) +option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True), 'expected': ParamValue('yes'), 'reverse_condition': ParamValue(True)})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True), 'expected': ParamValue('maybe'), 'reverse_condition': ParamValue(True)})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True), 'expected': ParamValue('yes')})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True), 'expected': ParamValue('maybe')}))})) +option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"})) +option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2]) +option_10 = StrOption(name="group", doc="group", default="root") +option_11 = StrOption(name="mode", doc="mode", default="0644") +option_12 = StrOption(name="name", doc="name", default="/tmp/file1") +option_13 = StrOption(name="owner", doc="owner", default="root") +option_14 = StrOption(name="source", doc="source", default="file1") +option_15 = BoolOption(name="templating", doc="templating", default=True) +option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_4), 'expected_1': ParamValue(["yes", "maybe"])}))) +option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16]) +option_8 = OptionDescription(name="files", doc="files", children=[option_9]) +option_7 = OptionDescription(name="test", doc="test", children=[option_8]) +option_7.impl_set_information('manage', True) +option_6 = OptionDescription(name="services", doc="services", children=[option_7], properties=frozenset({"hidden"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_6]) diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param4/00-base.xml b/tests/dictionaries/10load_disabled_if_in_multi_param4/00-base.xml new file mode 100644 index 000000000..75df0e3ea --- /dev/null +++ b/tests/dictionaries/10load_disabled_if_in_multi_param4/00-base.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + yes + + + no + + + + + + + + yes + maybe + test_variable + afilllist + + + yes + maybe + test_variable + afilllist + + + + diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param4/__init__.py b/tests/dictionaries/10load_disabled_if_in_multi_param4/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param4/makedict/base.json b/tests/dictionaries/10load_disabled_if_in_multi_param4/makedict/base.json new file mode 100644 index 000000000..655b9346b --- /dev/null +++ b/tests/dictionaries/10load_disabled_if_in_multi_param4/makedict/base.json @@ -0,0 +1 @@ +{"rougail.general.condition": "yes", "rougail.general.condition2": "no", "services.test.files.file1.group": "root", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.templating": true, "services.test.files.file1.activate": true} diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param4/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_multi_param4/tiramisu/base.py new file mode 100644 index 000000000..208e1d162 --- /dev/null +++ b/tests/dictionaries/10load_disabled_if_in_multi_param4/tiramisu/base.py @@ -0,0 +1,32 @@ +from importlib.machinery import SourceFileLoader +from importlib.util import spec_from_loader, module_from_spec +loader = SourceFileLoader('func', 'tests/dictionaries/../eosfunc/test.py') +spec = spec_from_loader(loader.name, loader) +func = module_from_spec(spec) +loader.exec_module(func) +for key, value in dict(locals()).items(): + if key != ['SourceFileLoader', 'func']: + setattr(func, key, value) +try: + from tiramisu3 import * +except: + from tiramisu import * +from rougail.tiramisu import ConvertDynOptionDescription +option_3 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"})) +option_4 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "normal"})) +option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True), 'expected': ParamValue('yes'), 'reverse_condition': ParamValue(True)})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True), 'expected': ParamValue('maybe'), 'reverse_condition': ParamValue(True)})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True), 'expected': ParamValue('yes')})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True), 'expected': ParamValue('maybe')}))})) +option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"})) +option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2]) +option_10 = StrOption(name="group", doc="group", default="root") +option_11 = StrOption(name="mode", doc="mode", default="0644") +option_12 = StrOption(name="name", doc="name", default="/tmp/file1") +option_13 = StrOption(name="owner", doc="owner", default="root") +option_14 = StrOption(name="source", doc="source", default="file1") +option_15 = BoolOption(name="templating", doc="templating", default=True) +option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_4), 'expected_1': ParamValue(["yes", "maybe"])}))) +option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16]) +option_8 = OptionDescription(name="files", doc="files", children=[option_9]) +option_7 = OptionDescription(name="test", doc="test", children=[option_8]) +option_7.impl_set_information('manage', True) +option_6 = OptionDescription(name="services", doc="services", children=[option_7], properties=frozenset({"hidden"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_6]) diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param5/00-base.xml b/tests/dictionaries/10load_disabled_if_in_multi_param5/00-base.xml new file mode 100644 index 000000000..021314366 --- /dev/null +++ b/tests/dictionaries/10load_disabled_if_in_multi_param5/00-base.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + yes + + + yes + + + + + + + + yes + maybe + test_variable + afilllist + + + yes + maybe + test_variable + afilllist + + + + diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param5/__init__.py b/tests/dictionaries/10load_disabled_if_in_multi_param5/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param5/makedict/base.json b/tests/dictionaries/10load_disabled_if_in_multi_param5/makedict/base.json new file mode 100644 index 000000000..0db7cbded --- /dev/null +++ b/tests/dictionaries/10load_disabled_if_in_multi_param5/makedict/base.json @@ -0,0 +1 @@ +{"rougail.general.condition": "yes", "rougail.general.condition2": "yes", "services.test.files.file1.group": "root", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.templating": true, "services.test.files.file1.activate": false} diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param5/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_multi_param5/tiramisu/base.py new file mode 100644 index 000000000..5c75a5fb7 --- /dev/null +++ b/tests/dictionaries/10load_disabled_if_in_multi_param5/tiramisu/base.py @@ -0,0 +1,32 @@ +from importlib.machinery import SourceFileLoader +from importlib.util import spec_from_loader, module_from_spec +loader = SourceFileLoader('func', 'tests/dictionaries/../eosfunc/test.py') +spec = spec_from_loader(loader.name, loader) +func = module_from_spec(spec) +loader.exec_module(func) +for key, value in dict(locals()).items(): + if key != ['SourceFileLoader', 'func']: + setattr(func, key, value) +try: + from tiramisu3 import * +except: + from tiramisu import * +from rougail.tiramisu import ConvertDynOptionDescription +option_3 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"})) +option_4 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"})) +option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True), 'expected': ParamValue('yes'), 'reverse_condition': ParamValue(True)})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True), 'expected': ParamValue('maybe'), 'reverse_condition': ParamValue(True)})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True), 'expected': ParamValue('yes')})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True), 'expected': ParamValue('maybe')}))})) +option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"})) +option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2]) +option_10 = StrOption(name="group", doc="group", default="root") +option_11 = StrOption(name="mode", doc="mode", default="0644") +option_12 = StrOption(name="name", doc="name", default="/tmp/file1") +option_13 = StrOption(name="owner", doc="owner", default="root") +option_14 = StrOption(name="source", doc="source", default="file1") +option_15 = BoolOption(name="templating", doc="templating", default=True) +option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_4), 'expected_1': ParamValue(["yes", "maybe"])}))) +option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16]) +option_8 = OptionDescription(name="files", doc="files", children=[option_9]) +option_7 = OptionDescription(name="test", doc="test", children=[option_8]) +option_7.impl_set_information('manage', True) +option_6 = OptionDescription(name="services", doc="services", children=[option_7], properties=frozenset({"hidden"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_6]) diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param6/00-base.xml b/tests/dictionaries/10load_disabled_if_in_multi_param6/00-base.xml new file mode 100644 index 000000000..fc8c77df8 --- /dev/null +++ b/tests/dictionaries/10load_disabled_if_in_multi_param6/00-base.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + no + + + yes + + + + + + + + yes + maybe + test_variable + afilllist + + + yes + maybe + test_variable + afilllist + + + + diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param6/__init__.py b/tests/dictionaries/10load_disabled_if_in_multi_param6/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param6/makedict/base.json b/tests/dictionaries/10load_disabled_if_in_multi_param6/makedict/base.json new file mode 100644 index 000000000..121a8ae89 --- /dev/null +++ b/tests/dictionaries/10load_disabled_if_in_multi_param6/makedict/base.json @@ -0,0 +1 @@ +{"rougail.general.condition": "no", "rougail.general.condition2": "yes", "services.test.files.file1.group": "root", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.templating": true, "services.test.files.file1.activate": false} diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param6/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_multi_param6/tiramisu/base.py new file mode 100644 index 000000000..ad691db31 --- /dev/null +++ b/tests/dictionaries/10load_disabled_if_in_multi_param6/tiramisu/base.py @@ -0,0 +1,32 @@ +from importlib.machinery import SourceFileLoader +from importlib.util import spec_from_loader, module_from_spec +loader = SourceFileLoader('func', 'tests/dictionaries/../eosfunc/test.py') +spec = spec_from_loader(loader.name, loader) +func = module_from_spec(spec) +loader.exec_module(func) +for key, value in dict(locals()).items(): + if key != ['SourceFileLoader', 'func']: + setattr(func, key, value) +try: + from tiramisu3 import * +except: + from tiramisu import * +from rougail.tiramisu import ConvertDynOptionDescription +option_3 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "normal"})) +option_4 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "normal"})) +option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal", Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True), 'expected': ParamValue('yes'), 'reverse_condition': ParamValue(True)})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_3, todict=True), 'expected': ParamValue('maybe'), 'reverse_condition': ParamValue(True)})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True), 'expected': ParamValue('yes')})), Calculation(func.calc_value, Params(ParamValue('disabled'), kwargs={'condition': ParamOption(option_4, todict=True), 'expected': ParamValue('maybe')}))})) +option_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"})) +option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2]) +option_10 = StrOption(name="group", doc="group", default="root") +option_11 = StrOption(name="mode", doc="mode", default="0644") +option_12 = StrOption(name="name", doc="name", default="/tmp/file1") +option_13 = StrOption(name="owner", doc="owner", default="root") +option_14 = StrOption(name="source", doc="source", default="file1") +option_15 = BoolOption(name="templating", doc="templating", default=True) +option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_4), 'expected_1': ParamValue(["yes", "maybe"])}))) +option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16]) +option_8 = OptionDescription(name="files", doc="files", children=[option_9]) +option_7 = OptionDescription(name="test", doc="test", children=[option_8]) +option_7.impl_set_information('manage', True) +option_6 = OptionDescription(name="services", doc="services", children=[option_7], properties=frozenset({"hidden"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_6]) diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/tiramisu/base.py index f1872fcc5..1d16b6358 100644 --- a/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/tiramisu/base.py +++ b/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/tiramisu/base.py @@ -23,7 +23,7 @@ option_12 = StrOption(name="name", doc="name", default="/tmp/file1") option_13 = StrOption(name="owner", doc="owner", default="root") option_14 = StrOption(name="source", doc="source", default="file1") option_15 = BoolOption(name="templating", doc="templating", default=True) -option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("oui"), 'condition_1': ParamOption(option_3), 'expected_1': ParamValue("maybe"), 'condition_operator': ParamValue("OR")}))) +option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(["oui", "maybe"]), 'condition_operator': ParamValue("OR")}))) option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16]) option_8 = OptionDescription(name="files", doc="files", children=[option_9]) option_7 = OptionDescription(name="test", doc="test", children=[option_8]) diff --git a/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/base.py b/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/base.py index d69923f44..0dfdbff71 100644 --- a/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/base.py +++ b/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/base.py @@ -23,7 +23,7 @@ option_12 = StrOption(name="name", doc="name", default="/tmp/file") option_13 = StrOption(name="owner", doc="owner", default="root") option_14 = StrOption(name="source", doc="source", default="file") option_15 = BoolOption(name="templating", doc="templating", default=True) -option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(True)), kwargs={'default': ParamValue(False), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("unpossible")}))) +option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True)}))) option_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16]) option_8 = OptionDescription(name="files", doc="files", children=[option_9]) option_7 = OptionDescription(name="test", doc="test", children=[option_8]) diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/base.py b/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/base.py index d69923f44..0dfdbff71 100644 --- a/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/base.py +++ b/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/base.py @@ -23,7 +23,7 @@ option_12 = StrOption(name="name", doc="name", default="/tmp/file") option_13 = StrOption(name="owner", doc="owner", default="root") option_14 = StrOption(name="source", doc="source", default="file") option_15 = BoolOption(name="templating", doc="templating", default=True) -option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(True)), kwargs={'default': ParamValue(False), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("unpossible")}))) +option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True)}))) option_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16]) option_8 = OptionDescription(name="files", doc="files", children=[option_9]) option_7 = OptionDescription(name="test", doc="test", children=[option_8]) diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/base.py b/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/base.py index 4fa49b3d8..8a25d6d41 100644 --- a/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/base.py +++ b/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/base.py @@ -23,7 +23,7 @@ option_12 = StrOption(name="name", doc="name", default="/tmp/file") option_13 = StrOption(name="owner", doc="owner", default="root") option_14 = StrOption(name="source", doc="source", default="file") option_15 = BoolOption(name="templating", doc="templating", default=True) -option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(True)), kwargs={'default': ParamValue(False), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("unpossible"), 'condition_1': ParamOption(option_5), 'expected_1': ParamValue("oui"), 'condition_operator': ParamValue("OR")}))) +option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True), 'condition_1': ParamOption(option_5), 'expected_1': ParamValue("oui"), 'reverse_condition_1': ParamValue(True), 'condition_operator': ParamValue("OR")}))) option_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16]) option_8 = OptionDescription(name="files", doc="files", children=[option_9]) option_7 = OptionDescription(name="test", doc="test", children=[option_8]) diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/base.py b/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/base.py index 0da6aab50..4e5b69589 100644 --- a/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/base.py +++ b/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/base.py @@ -23,7 +23,7 @@ option_12 = StrOption(name="name", doc="name", default="/tmp/file") option_13 = StrOption(name="owner", doc="owner", default="root") option_14 = StrOption(name="source", doc="source", default="file") option_15 = BoolOption(name="templating", doc="templating", default=True) -option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(True)), kwargs={'default': ParamValue(False), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("statique")}))) +option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("statique"), 'reverse_condition_0': ParamValue(True)}))) option_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16]) option_8 = OptionDescription(name="files", doc="files", children=[option_9]) option_7 = OptionDescription(name="test", doc="test", children=[option_8])