diff --git a/src/rougail/__init__.py b/src/rougail/__init__.py index 315b59953..2ff307e7e 100644 --- a/src/rougail/__init__.py +++ b/src/rougail/__init__.py @@ -123,13 +123,11 @@ class Rougail: for option in self._get_variable(self.config): path = option.path() if path not in values: - path = path.upper() - options = values.get(path, {}).get("options", {}) - if path not in values or options.get("upper") is not True: - continue - else: - options = values[path].get("options", {}) + continue + options = values[path].get("options", {}) value = values[path]["values"] + + # converted value if option.ismulti(): if options.get("multi_separator") and not isinstance(value, list): value = value.split(options["multi_separator"]) @@ -148,17 +146,20 @@ class Rougail: try: option.value.set(value) value_is_set = True + # value is correctly set, remove variable to the set if index is not None: + # if it's a follower waiting for all followers are sets values[path]["values"][index] = undefined if set(values[path]["values"]) == {undefined}: values.pop(path) else: values.pop(path) - except Exception as err: + except Exception: if path != option.path(): values[option.path()] = values.pop(path) if not value_is_set: break + # we don't find variable, apply value just to get error or warning messages for path, data in values.items(): try: option = self.config.option(path) @@ -173,10 +174,8 @@ class Rougail: except AttributeError as err: errors.append(str(err)) except (ValueError, LeadershipError) as err: - # errors.append(str(err).replace('"', "'")) errors.append(str(err)) except PropertiesOptionError as err: - # warnings.append(f'"{err}" but is defined in "{self.filename}"') warnings.append(str(err)) return { "errors": errors, @@ -198,7 +197,6 @@ class Rougail: added = [] for path, data in list(values.items()): value = data["values"] - # for value in data['values'].items(): try: option = self.config.option(path) option.name() @@ -207,14 +205,12 @@ class Rougail: except AttributeError: config = self.config current_path = "" - identifiers = [] for name in path.split(".")[:-1]: if current_path: current_path += "." current_path += name if current_path in cache: config, identifier = cache[current_path] - identifiers.append(identifier) else: tconfig = config.option(name) try: @@ -237,18 +233,18 @@ class Rougail: option_type = self.config.option( dynamic_variable ).information.get("type") + identifiers = tconfig.identifiers() if identifiers: for s in identifiers: dynamic_variable = dynamic_variable.replace( "{{ identifier }}", str(s), 1 ) - if dynamic_variable not in values: + if dynamic_variable not in values and not self.config.option(dynamic_variable).get().impl_getdefault(): values[dynamic_variable] = {"values": []} added.append(dynamic_variable) elif dynamic_variable not in added: continue config = tconfig - # option_type = option.information.get('type') typ = CONVERT_OPTION.get(option_type, {}).get( "func" ) @@ -261,13 +257,12 @@ class Rougail: values[dynamic_variable]["values"].append( identifier ) - identifiers.append(identifier) cache[current_path] = config, identifier break else: if option.isdynamic(): parent_option = self.config.option(path.rsplit(".", 1)[0]) - identifiers = self._get_identifier( + identifier = self._get_identifier( parent_option.name(uncalculated=True), parent_option.name(), ) @@ -292,7 +287,7 @@ class Rougail: dynamic_variable = dynamic_variable.replace( "{{ identifier }}", str(identifier), 1 ) - if dynamic_variable not in values: + if dynamic_variable not in values and not self.config.option(dynamic_variable).get().impl_getdefault(): values[dynamic_variable] = {"values": []} added.append(dynamic_variable) elif dynamic_variable not in added: @@ -306,10 +301,12 @@ class Rougail: cache[option.path()] = option, identifier def _get_identifier(self, true_name, name) -> str: + if true_name == "{{ identifier }}": + return name regexp = true_name.replace("{{ identifier }}", "(.*)") finded = findall(regexp, name) if len(finded) != 1 or not finded[0]: - return + return None return finded[0] diff --git a/tests/dictionaries/04_7validators_variable_optional/__init__.py b/src/rougail/structural_commandline/__init__.py similarity index 100% rename from tests/dictionaries/04_7validators_variable_optional/__init__.py rename to src/rougail/structural_commandline/__init__.py diff --git a/tests/dictionaries/00_2default_calculated_variable_transitive/tiramisu/base.py b/tests/dictionaries/00_2default_calculated_variable_transitive/tiramisu/base.py index 03aacc03f..1084a993d 100644 --- a/tests/dictionaries/00_2default_calculated_variable_transitive/tiramisu/base.py +++ b/tests/dictionaries/00_2default_calculated_variable_transitive/tiramisu/base.py @@ -11,6 +11,6 @@ ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") option_2 = DomainnameOption(name="var1", doc="a first variable", multi=True, type="domainname", allow_ip=True, properties=frozenset({"basic", "mandatory"}), informations={'type': 'domainname'}) -option_3 = DomainnameOption(name="var2", doc="a second variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_2)))), type="domainname", allow_ip=True, properties=frozenset({"mandatory", "standard"}), informations={'type': 'domainname'}) +option_3 = DomainnameOption(name="var2", doc="a second variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_2)), kwargs={'__internal_multi': ParamValue(True)})), type="domainname", allow_ip=True, properties=frozenset({"mandatory", "standard"}), informations={'type': 'domainname'}) optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, option_3], properties=frozenset({"basic"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/00_2default_calculated_variable_transitive/tiramisu/multi.py b/tests/dictionaries/00_2default_calculated_variable_transitive/tiramisu/multi.py index 1c4c887b6..7b6ade76c 100644 --- a/tests/dictionaries/00_2default_calculated_variable_transitive/tiramisu/multi.py +++ b/tests/dictionaries/00_2default_calculated_variable_transitive/tiramisu/multi.py @@ -11,11 +11,11 @@ ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") option_3 = DomainnameOption(name="var1", doc="a first variable", multi=True, type="domainname", allow_ip=True, properties=frozenset({"basic", "mandatory"}), informations={'type': 'domainname'}) -option_4 = DomainnameOption(name="var2", doc="a second variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_3)))), type="domainname", allow_ip=True, properties=frozenset({"mandatory", "standard"}), informations={'type': 'domainname'}) +option_4 = DomainnameOption(name="var2", doc="a second variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_3)), kwargs={'__internal_multi': ParamValue(True)})), type="domainname", allow_ip=True, properties=frozenset({"mandatory", "standard"}), informations={'type': 'domainname'}) optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, option_4], properties=frozenset({"basic"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) option_7 = DomainnameOption(name="var1", doc="a first variable", multi=True, type="domainname", allow_ip=True, properties=frozenset({"basic", "mandatory"}), informations={'type': 'domainname'}) -option_8 = DomainnameOption(name="var2", doc="a second variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_7)))), type="domainname", allow_ip=True, properties=frozenset({"mandatory", "standard"}), informations={'type': 'domainname'}) +option_8 = DomainnameOption(name="var2", doc="a second variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_7)), kwargs={'__internal_multi': ParamValue(True)})), type="domainname", allow_ip=True, properties=frozenset({"mandatory", "standard"}), informations={'type': 'domainname'}) optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_7, option_8], properties=frozenset({"basic"})) optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"basic"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5]) diff --git a/tests/dictionaries/00_2default_calculated_variable_transitive/tiramisu/no_namespace.py b/tests/dictionaries/00_2default_calculated_variable_transitive/tiramisu/no_namespace.py index ebeeb9304..c72f967f6 100644 --- a/tests/dictionaries/00_2default_calculated_variable_transitive/tiramisu/no_namespace.py +++ b/tests/dictionaries/00_2default_calculated_variable_transitive/tiramisu/no_namespace.py @@ -7,5 +7,5 @@ ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") option_1 = DomainnameOption(name="var1", doc="a first variable", multi=True, type="domainname", allow_ip=True, properties=frozenset({"basic", "mandatory"}), informations={'type': 'domainname'}) -option_2 = DomainnameOption(name="var2", doc="a second variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_1)))), type="domainname", allow_ip=True, properties=frozenset({"mandatory", "standard"}), informations={'type': 'domainname'}) +option_2 = DomainnameOption(name="var2", doc="a second variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_1)), kwargs={'__internal_multi': ParamValue(True)})), type="domainname", allow_ip=True, properties=frozenset({"mandatory", "standard"}), informations={'type': 'domainname'}) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_2]) diff --git a/tests/dictionaries/00_9default_calculation_multi_optional/tiramisu/base.py b/tests/dictionaries/00_9default_calculation_multi_optional/tiramisu/base.py index 2d47baca2..7d84d3d71 100644 --- a/tests/dictionaries/00_9default_calculation_multi_optional/tiramisu/base.py +++ b/tests/dictionaries/00_9default_calculation_multi_optional/tiramisu/base.py @@ -11,6 +11,6 @@ ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") option_2 = StrOption(name="my_variable", doc="my_variable", default="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) -option_3 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_2))))], default_multi=Calculation(func['calc_value'], Params((ParamOption(option_2)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_3 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_2)), kwargs={'__internal_multi': ParamValue(True)}))], default_multi=Calculation(func['calc_value'], Params((ParamOption(option_2)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, option_3], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/00_9default_calculation_multi_optional/tiramisu/multi.py b/tests/dictionaries/00_9default_calculation_multi_optional/tiramisu/multi.py index b756e1444..79371b50b 100644 --- a/tests/dictionaries/00_9default_calculation_multi_optional/tiramisu/multi.py +++ b/tests/dictionaries/00_9default_calculation_multi_optional/tiramisu/multi.py @@ -11,11 +11,11 @@ ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") option_3 = StrOption(name="my_variable", doc="my_variable", default="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) -option_4 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_3))))], default_multi=Calculation(func['calc_value'], Params((ParamOption(option_3)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_4 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_3)), kwargs={'__internal_multi': ParamValue(True)}))], default_multi=Calculation(func['calc_value'], Params((ParamOption(option_3)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, option_4], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_7 = StrOption(name="my_variable", doc="my_variable", default="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) -option_8 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_7))))], default_multi=Calculation(func['calc_value'], Params((ParamOption(option_7)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_8 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_7)), kwargs={'__internal_multi': ParamValue(True)}))], default_multi=Calculation(func['calc_value'], Params((ParamOption(option_7)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_7, option_8], properties=frozenset({"standard"})) optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5]) diff --git a/tests/dictionaries/00_9default_calculation_multi_optional/tiramisu/no_namespace.py b/tests/dictionaries/00_9default_calculation_multi_optional/tiramisu/no_namespace.py index 2ae609e4b..0d779b3f4 100644 --- a/tests/dictionaries/00_9default_calculation_multi_optional/tiramisu/no_namespace.py +++ b/tests/dictionaries/00_9default_calculation_multi_optional/tiramisu/no_namespace.py @@ -7,5 +7,5 @@ ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") option_1 = StrOption(name="my_variable", doc="my_variable", default="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) -option_2 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_1))))], default_multi=Calculation(func['calc_value'], Params((ParamOption(option_1)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_2 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_1)), kwargs={'__internal_multi': ParamValue(True)}))], default_multi=Calculation(func['calc_value'], Params((ParamOption(option_1)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_2]) diff --git a/tests/dictionaries/00_9default_calculation_multi_optional2/tiramisu/base.py b/tests/dictionaries/00_9default_calculation_multi_optional2/tiramisu/base.py index f879c41ca..caaf21d25 100644 --- a/tests/dictionaries/00_9default_calculation_multi_optional2/tiramisu/base.py +++ b/tests/dictionaries/00_9default_calculation_multi_optional2/tiramisu/base.py @@ -11,6 +11,6 @@ ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") option_2 = StrOption(name="my_variable", doc="my_variable", default="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) -option_3 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_2))))], properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_3 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_2)), kwargs={'__internal_multi': ParamValue(True)}))], properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, option_3], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/00_9default_calculation_multi_optional2/tiramisu/multi.py b/tests/dictionaries/00_9default_calculation_multi_optional2/tiramisu/multi.py index 2ce59ea75..c53407f24 100644 --- a/tests/dictionaries/00_9default_calculation_multi_optional2/tiramisu/multi.py +++ b/tests/dictionaries/00_9default_calculation_multi_optional2/tiramisu/multi.py @@ -11,11 +11,11 @@ ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") option_3 = StrOption(name="my_variable", doc="my_variable", default="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) -option_4 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_3))))], properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_4 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_3)), kwargs={'__internal_multi': ParamValue(True)}))], properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, option_4], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_7 = StrOption(name="my_variable", doc="my_variable", default="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) -option_8 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_7))))], properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_8 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_7)), kwargs={'__internal_multi': ParamValue(True)}))], properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_7, option_8], properties=frozenset({"standard"})) optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5]) diff --git a/tests/dictionaries/00_9default_calculation_multi_optional2/tiramisu/no_namespace.py b/tests/dictionaries/00_9default_calculation_multi_optional2/tiramisu/no_namespace.py index bad2c79b6..805f3dd41 100644 --- a/tests/dictionaries/00_9default_calculation_multi_optional2/tiramisu/no_namespace.py +++ b/tests/dictionaries/00_9default_calculation_multi_optional2/tiramisu/no_namespace.py @@ -7,5 +7,5 @@ ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") option_1 = StrOption(name="my_variable", doc="my_variable", default="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) -option_2 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_1))))], properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_2 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_1)), kwargs={'__internal_multi': ParamValue(True)}))], properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_2]) diff --git a/tests/dictionaries/00_9default_calculation_optional_exists/tiramisu/base.py b/tests/dictionaries/00_9default_calculation_optional_exists/tiramisu/base.py index 8b0306cc8..0eb318699 100644 --- a/tests/dictionaries/00_9default_calculation_optional_exists/tiramisu/base.py +++ b/tests/dictionaries/00_9default_calculation_optional_exists/tiramisu/base.py @@ -11,6 +11,6 @@ ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") option_2 = StrOption(name="my_variable", doc="my_variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) -option_3 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_2)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_3 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_2)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, option_3], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/00_9default_calculation_optional_exists/tiramisu/multi.py b/tests/dictionaries/00_9default_calculation_optional_exists/tiramisu/multi.py index bafe0eec6..bc8d0f44c 100644 --- a/tests/dictionaries/00_9default_calculation_optional_exists/tiramisu/multi.py +++ b/tests/dictionaries/00_9default_calculation_optional_exists/tiramisu/multi.py @@ -11,11 +11,11 @@ ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") option_3 = StrOption(name="my_variable", doc="my_variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) -option_4 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_3)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_4 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_3)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, option_4], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_7 = StrOption(name="my_variable", doc="my_variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) -option_8 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_7)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_8 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_7)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_7, option_8], properties=frozenset({"standard"})) optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5]) diff --git a/tests/dictionaries/00_9default_calculation_optional_exists/tiramisu/no_namespace.py b/tests/dictionaries/00_9default_calculation_optional_exists/tiramisu/no_namespace.py index faa80902d..6015aacef 100644 --- a/tests/dictionaries/00_9default_calculation_optional_exists/tiramisu/no_namespace.py +++ b/tests/dictionaries/00_9default_calculation_optional_exists/tiramisu/no_namespace.py @@ -7,5 +7,5 @@ ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") option_1 = StrOption(name="my_variable", doc="my_variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) -option_2 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_1)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_2 = StrOption(name="my_calculated_variable", doc="my_calculated_variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_1)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_2]) diff --git a/tests/dictionaries/01_6string_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/01_6string_empty/dictionaries/rougail/00-base.yml index d56f379eb..580aa65f2 100644 --- a/tests/dictionaries/01_6string_empty/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/01_6string_empty/dictionaries/rougail/00-base.yml @@ -3,4 +3,6 @@ version: '1.1' var1: description: the second variable empty: false - default: ['value', None] + default: + - 'value' + - null diff --git a/tests/dictionaries/01_6string_empty/makedict/after.json b/tests/dictionaries/01_6string_empty/makedict/after.json index f96afdace..d733bee97 100644 --- a/tests/dictionaries/01_6string_empty/makedict/after.json +++ b/tests/dictionaries/01_6string_empty/makedict/after.json @@ -3,7 +3,7 @@ "owner": "default", "value": [ "value", - "None" + null ] } } diff --git a/tests/dictionaries/01_6string_empty/makedict/base.json b/tests/dictionaries/01_6string_empty/makedict/base.json index da414c302..8b54505fe 100644 --- a/tests/dictionaries/01_6string_empty/makedict/base.json +++ b/tests/dictionaries/01_6string_empty/makedict/base.json @@ -1,6 +1,6 @@ { "rougail.var1": [ "value", - "None" + null ] } diff --git a/tests/dictionaries/01_6string_empty/makedict/before.json b/tests/dictionaries/01_6string_empty/makedict/before.json index f96afdace..d733bee97 100644 --- a/tests/dictionaries/01_6string_empty/makedict/before.json +++ b/tests/dictionaries/01_6string_empty/makedict/before.json @@ -3,7 +3,7 @@ "owner": "default", "value": [ "value", - "None" + null ] } } diff --git a/tests/dictionaries/01_6string_empty/makedict/mandatory.json b/tests/dictionaries/01_6string_empty/makedict/mandatory.json index 0637a088a..eb57c5bab 100644 --- a/tests/dictionaries/01_6string_empty/makedict/mandatory.json +++ b/tests/dictionaries/01_6string_empty/makedict/mandatory.json @@ -1 +1 @@ -[] \ No newline at end of file +["rougail.var1"] \ No newline at end of file diff --git a/tests/dictionaries/01_6string_empty/tiramisu/base.py b/tests/dictionaries/01_6string_empty/tiramisu/base.py index 3fbc6deab..4e223af2b 100644 --- a/tests/dictionaries/01_6string_empty/tiramisu/base.py +++ b/tests/dictionaries/01_6string_empty/tiramisu/base.py @@ -10,6 +10,6 @@ except: ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -option_2 = StrOption(name="var1", doc="the second variable", multi=True, default=["value", "None"], default_multi="value", properties=frozenset({"mandatory", "notempty", "standard"}), informations={'type': 'string'}) +option_2 = StrOption(name="var1", doc="the second variable", multi=True, default=["value", None], default_multi="value", properties=frozenset({"mandatory", "notempty", "standard"}), informations={'type': 'string'}) optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/01_6string_empty/tiramisu/multi.py b/tests/dictionaries/01_6string_empty/tiramisu/multi.py index 3e7fd699d..6a7c1c56b 100644 --- a/tests/dictionaries/01_6string_empty/tiramisu/multi.py +++ b/tests/dictionaries/01_6string_empty/tiramisu/multi.py @@ -10,10 +10,10 @@ except: ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -option_3 = StrOption(name="var1", doc="the second variable", multi=True, default=["value", "None"], default_multi="value", properties=frozenset({"mandatory", "notempty", "standard"}), informations={'type': 'string'}) +option_3 = StrOption(name="var1", doc="the second variable", multi=True, default=["value", None], default_multi="value", properties=frozenset({"mandatory", "notempty", "standard"}), informations={'type': 'string'}) optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) -option_6 = StrOption(name="var1", doc="the second variable", multi=True, default=["value", "None"], default_multi="value", properties=frozenset({"mandatory", "notempty", "standard"}), informations={'type': 'string'}) +option_6 = StrOption(name="var1", doc="the second variable", multi=True, default=["value", None], default_multi="value", properties=frozenset({"mandatory", "notempty", "standard"}), informations={'type': 'string'}) optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_6], properties=frozenset({"standard"})) optiondescription_4 = OptionDescription(name="2", doc="2", children=[optiondescription_5], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4]) diff --git a/tests/dictionaries/01_6string_empty/tiramisu/no_namespace.py b/tests/dictionaries/01_6string_empty/tiramisu/no_namespace.py index 4d4c92fb2..025b9c555 100644 --- a/tests/dictionaries/01_6string_empty/tiramisu/no_namespace.py +++ b/tests/dictionaries/01_6string_empty/tiramisu/no_namespace.py @@ -6,5 +6,5 @@ load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -option_1 = StrOption(name="var1", doc="the second variable", multi=True, default=["value", "None"], default_multi="value", properties=frozenset({"mandatory", "notempty", "standard"}), informations={'type': 'string'}) +option_1 = StrOption(name="var1", doc="the second variable", multi=True, default=["value", None], default_multi="value", properties=frozenset({"mandatory", "notempty", "standard"}), informations={'type': 'string'}) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1]) diff --git a/tests/dictionaries/24_7validators_variable_optional/__init__.py b/tests/dictionaries/24_7validators_variable_optional/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/04_7validators_variable_optional/dictionaries/rougail/00-base.yml b/tests/dictionaries/24_7validators_variable_optional/dictionaries/rougail/00-base.yml similarity index 100% rename from tests/dictionaries/04_7validators_variable_optional/dictionaries/rougail/00-base.yml rename to tests/dictionaries/24_7validators_variable_optional/dictionaries/rougail/00-base.yml diff --git a/tests/dictionaries/04_7validators_variable_optional/makedict/after.json b/tests/dictionaries/24_7validators_variable_optional/makedict/after.json similarity index 100% rename from tests/dictionaries/04_7validators_variable_optional/makedict/after.json rename to tests/dictionaries/24_7validators_variable_optional/makedict/after.json diff --git a/tests/dictionaries/04_7validators_variable_optional/makedict/base.json b/tests/dictionaries/24_7validators_variable_optional/makedict/base.json similarity index 100% rename from tests/dictionaries/04_7validators_variable_optional/makedict/base.json rename to tests/dictionaries/24_7validators_variable_optional/makedict/base.json diff --git a/tests/dictionaries/04_7validators_variable_optional/makedict/before.json b/tests/dictionaries/24_7validators_variable_optional/makedict/before.json similarity index 100% rename from tests/dictionaries/04_7validators_variable_optional/makedict/before.json rename to tests/dictionaries/24_7validators_variable_optional/makedict/before.json diff --git a/tests/dictionaries/04_7validators_variable_optional/makedict/mandatory.json b/tests/dictionaries/24_7validators_variable_optional/makedict/mandatory.json similarity index 100% rename from tests/dictionaries/04_7validators_variable_optional/makedict/mandatory.json rename to tests/dictionaries/24_7validators_variable_optional/makedict/mandatory.json diff --git a/tests/dictionaries/04_7validators_variable_optional/tiramisu/base.py b/tests/dictionaries/24_7validators_variable_optional/tiramisu/base.py similarity index 94% rename from tests/dictionaries/04_7validators_variable_optional/tiramisu/base.py rename to tests/dictionaries/24_7validators_variable_optional/tiramisu/base.py index f9a155c61..f6205a1a1 100644 --- a/tests/dictionaries/04_7validators_variable_optional/tiramisu/base.py +++ b/tests/dictionaries/24_7validators_variable_optional/tiramisu/base.py @@ -13,7 +13,7 @@ ALLOWED_LEADER_PROPERTIES.add("advanced") dict_env['validators_rougail.general.int'] = "{% if _.int == int2 %}\nint and int2 must be different\n{% endif %}\n" dict_env['validators_rougail.general.int_0'] = "{% if int3 is defined and _.int == int3 %}\nint and int3 must be different\n{% endif %}\n" option_4 = IntOption(name="int2", doc="a second number", default=1, properties=frozenset({"mandatory", "standard"}), informations={'type': 'number'}) -option_3 = IntOption(name="int", doc="a first number", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.int"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/04_7validators_variable_optional/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("validators"), '__internal_variable': ParamValue("rougail.general.int"), 'int2': ParamOption(option_4), '_.int': ParamSelfOption(whole=False)})), Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.int_0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/04_7validators_variable_optional/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("validators"), '__internal_variable': ParamValue("rougail.general.int"), '_.int': ParamSelfOption(whole=False)}))], properties=frozenset({"basic", "mandatory"}), informations={'type': 'number', 'test': (5,)}) +option_3 = IntOption(name="int", doc="a first number", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.int"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/24_7validators_variable_optional/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("validators"), '__internal_variable': ParamValue("rougail.general.int"), 'int2': ParamOption(option_4), '_.int': ParamSelfOption(whole=False)})), Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.int_0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/24_7validators_variable_optional/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("validators"), '__internal_variable': ParamValue("rougail.general.int"), '_.int': ParamSelfOption(whole=False)}))], properties=frozenset({"basic", "mandatory"}), informations={'type': 'number', 'test': (5,)}) optiondescription_2 = OptionDescription(name="general", doc="a family", children=[option_3, option_4], properties=frozenset({"basic"})) optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[optiondescription_2], properties=frozenset({"basic"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/04_7validators_variable_optional/tiramisu/multi.py b/tests/dictionaries/24_7validators_variable_optional/tiramisu/multi.py similarity index 94% rename from tests/dictionaries/04_7validators_variable_optional/tiramisu/multi.py rename to tests/dictionaries/24_7validators_variable_optional/tiramisu/multi.py index 00f5f6c29..9478ef2cf 100644 --- a/tests/dictionaries/04_7validators_variable_optional/tiramisu/multi.py +++ b/tests/dictionaries/24_7validators_variable_optional/tiramisu/multi.py @@ -15,12 +15,12 @@ dict_env['validators_1.rougail.general.int_0'] = "{% if int3 is defined and _.in dict_env['validators_2.rougail.general.int'] = "{% if _.int == int2 %}\nint and int2 must be different\n{% endif %}\n" dict_env['validators_2.rougail.general.int_0'] = "{% if int3 is defined and _.int == int3 %}\nint and int3 must be different\n{% endif %}\n" option_5 = IntOption(name="int2", doc="a second number", default=1, properties=frozenset({"mandatory", "standard"}), informations={'type': 'number'}) -option_4 = IntOption(name="int", doc="a first number", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.int"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/04_7validators_variable_optional/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("validators"), '__internal_variable': ParamValue("1.rougail.general.int"), 'int2': ParamOption(option_5), '_.int': ParamSelfOption(whole=False)})), Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.int_0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/04_7validators_variable_optional/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("validators"), '__internal_variable': ParamValue("1.rougail.general.int"), '_.int': ParamSelfOption(whole=False)}))], properties=frozenset({"basic", "mandatory"}), informations={'type': 'number', 'test': (5,)}) +option_4 = IntOption(name="int", doc="a first number", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.int"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/24_7validators_variable_optional/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("validators"), '__internal_variable': ParamValue("1.rougail.general.int"), 'int2': ParamOption(option_5), '_.int': ParamSelfOption(whole=False)})), Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.int_0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/24_7validators_variable_optional/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("validators"), '__internal_variable': ParamValue("1.rougail.general.int"), '_.int': ParamSelfOption(whole=False)}))], properties=frozenset({"basic", "mandatory"}), informations={'type': 'number', 'test': (5,)}) optiondescription_3 = OptionDescription(name="general", doc="a family", children=[option_4, option_5], properties=frozenset({"basic"})) optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[optiondescription_3], properties=frozenset({"basic"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) option_10 = IntOption(name="int2", doc="a second number", default=1, properties=frozenset({"mandatory", "standard"}), informations={'type': 'number'}) -option_9 = IntOption(name="int", doc="a first number", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_2.rougail.general.int"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/04_7validators_variable_optional/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("validators"), '__internal_variable': ParamValue("2.rougail.general.int"), 'int2': ParamOption(option_10), '_.int': ParamSelfOption(whole=False)})), Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_2.rougail.general.int_0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/04_7validators_variable_optional/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("validators"), '__internal_variable': ParamValue("2.rougail.general.int"), '_.int': ParamSelfOption(whole=False)}))], properties=frozenset({"basic", "mandatory"}), informations={'type': 'number', 'test': (5,)}) +option_9 = IntOption(name="int", doc="a first number", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_2.rougail.general.int"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/24_7validators_variable_optional/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("validators"), '__internal_variable': ParamValue("2.rougail.general.int"), 'int2': ParamOption(option_10), '_.int': ParamSelfOption(whole=False)})), Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_2.rougail.general.int_0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/24_7validators_variable_optional/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("validators"), '__internal_variable': ParamValue("2.rougail.general.int"), '_.int': ParamSelfOption(whole=False)}))], properties=frozenset({"basic", "mandatory"}), informations={'type': 'number', 'test': (5,)}) optiondescription_8 = OptionDescription(name="general", doc="a family", children=[option_9, option_10], properties=frozenset({"basic"})) optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[optiondescription_8], properties=frozenset({"basic"})) optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/04_7validators_variable_optional/tiramisu/no_namespace.py b/tests/dictionaries/24_7validators_variable_optional/tiramisu/no_namespace.py similarity index 93% rename from tests/dictionaries/04_7validators_variable_optional/tiramisu/no_namespace.py rename to tests/dictionaries/24_7validators_variable_optional/tiramisu/no_namespace.py index b234b1e77..2c639958c 100644 --- a/tests/dictionaries/04_7validators_variable_optional/tiramisu/no_namespace.py +++ b/tests/dictionaries/24_7validators_variable_optional/tiramisu/no_namespace.py @@ -9,6 +9,6 @@ ALLOWED_LEADER_PROPERTIES.add("advanced") dict_env['validators_general.int'] = "{% if _.int == int2 %}\nint and int2 must be different\n{% endif %}\n" dict_env['validators_general.int_0'] = "{% if int3 is defined and _.int == int3 %}\nint and int3 must be different\n{% endif %}\n" option_3 = IntOption(name="int2", doc="a second number", default=1, properties=frozenset({"mandatory", "standard"}), informations={'type': 'number'}) -option_2 = IntOption(name="int", doc="a first number", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_general.int"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/04_7validators_variable_optional/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("validators"), '__internal_variable': ParamValue("general.int"), 'int2': ParamOption(option_3), '_.int': ParamSelfOption(whole=False)})), Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_general.int_0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/04_7validators_variable_optional/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("validators"), '__internal_variable': ParamValue("general.int"), '_.int': ParamSelfOption(whole=False)}))], properties=frozenset({"basic", "mandatory"}), informations={'type': 'number', 'test': (5,)}) +option_2 = IntOption(name="int", doc="a first number", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_general.int"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/24_7validators_variable_optional/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("validators"), '__internal_variable': ParamValue("general.int"), 'int2': ParamOption(option_3), '_.int': ParamSelfOption(whole=False)})), Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_general.int_0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/24_7validators_variable_optional/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("validators"), '__internal_variable': ParamValue("general.int"), '_.int': ParamSelfOption(whole=False)}))], properties=frozenset({"basic", "mandatory"}), informations={'type': 'number', 'test': (5,)}) optiondescription_1 = OptionDescription(name="general", doc="a family", children=[option_2, option_3], properties=frozenset({"basic"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/40_0leadership_follower_default_submulti_calculation/tiramisu/base.py b/tests/dictionaries/40_0leadership_follower_default_submulti_calculation/tiramisu/base.py index 779f7b67b..5bf735c1e 100644 --- a/tests/dictionaries/40_0leadership_follower_default_submulti_calculation/tiramisu/base.py +++ b/tests/dictionaries/40_0leadership_follower_default_submulti_calculation/tiramisu/base.py @@ -12,7 +12,7 @@ ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") option_3 = StrOption(name="leader", doc="the leader", multi=True, default=["leader"], properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_4 = StrOption(name="follower1", doc="the follower1", multi=submulti, default_multi=["value"], properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) -option_5 = StrOption(name="follower2", doc="the follower2", multi=submulti, default=Calculation(func['calc_value'], Params((ParamOption(option_4)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_5 = StrOption(name="follower2", doc="the follower2", multi=submulti, default=Calculation(func['calc_value'], Params((ParamOption(option_4)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_2 = Leadership(name="leader", doc="a leadership", children=[option_3, option_4, option_5], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[optiondescription_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/40_0leadership_follower_default_submulti_calculation/tiramisu/multi.py b/tests/dictionaries/40_0leadership_follower_default_submulti_calculation/tiramisu/multi.py index dcc248954..ced34fcb4 100644 --- a/tests/dictionaries/40_0leadership_follower_default_submulti_calculation/tiramisu/multi.py +++ b/tests/dictionaries/40_0leadership_follower_default_submulti_calculation/tiramisu/multi.py @@ -12,13 +12,13 @@ ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") option_4 = StrOption(name="leader", doc="the leader", multi=True, default=["leader"], properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_5 = StrOption(name="follower1", doc="the follower1", multi=submulti, default_multi=["value"], properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) -option_6 = StrOption(name="follower2", doc="the follower2", multi=submulti, default=Calculation(func['calc_value'], Params((ParamOption(option_5)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_6 = StrOption(name="follower2", doc="the follower2", multi=submulti, default=Calculation(func['calc_value'], Params((ParamOption(option_5)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_3 = Leadership(name="leader", doc="a leadership", children=[option_4, option_5, option_6], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[optiondescription_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_10 = StrOption(name="leader", doc="the leader", multi=True, default=["leader"], properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_11 = StrOption(name="follower1", doc="the follower1", multi=submulti, default_multi=["value"], properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) -option_12 = StrOption(name="follower2", doc="the follower2", multi=submulti, default=Calculation(func['calc_value'], Params((ParamOption(option_11)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_12 = StrOption(name="follower2", doc="the follower2", multi=submulti, default=Calculation(func['calc_value'], Params((ParamOption(option_11)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_9 = Leadership(name="leader", doc="a leadership", children=[option_10, option_11, option_12], properties=frozenset({"standard"})) optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[optiondescription_9], properties=frozenset({"standard"})) optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/40_8calculation_multi_variable/tiramisu/base.py b/tests/dictionaries/40_8calculation_multi_variable/tiramisu/base.py index 394de124e..78dfebc2b 100644 --- a/tests/dictionaries/40_8calculation_multi_variable/tiramisu/base.py +++ b/tests/dictionaries/40_8calculation_multi_variable/tiramisu/base.py @@ -12,6 +12,6 @@ ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") option_3 = StrOption(name="var2", doc="a second variable", default="no", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_4 = StrOption(name="var3", doc="a third variable", default="yes", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) -option_2 = StrOption(name="var", doc="a first variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_3)))), Calculation(func['calc_value'], Params((ParamOption(option_4))))], default_multi=Calculation(func['calc_value'], Params((ParamOption(option_3)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_2 = StrOption(name="var", doc="a first variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_3)), kwargs={'__internal_multi': ParamValue(True)})), Calculation(func['calc_value'], Params((ParamOption(option_4)), kwargs={'__internal_multi': ParamValue(True)}))], default_multi=Calculation(func['calc_value'], Params((ParamOption(option_3)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, option_3, option_4], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/40_8calculation_multi_variable/tiramisu/multi.py b/tests/dictionaries/40_8calculation_multi_variable/tiramisu/multi.py index 85ef763e2..6ac43d666 100644 --- a/tests/dictionaries/40_8calculation_multi_variable/tiramisu/multi.py +++ b/tests/dictionaries/40_8calculation_multi_variable/tiramisu/multi.py @@ -12,12 +12,12 @@ ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") option_4 = StrOption(name="var2", doc="a second variable", default="no", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_5 = StrOption(name="var3", doc="a third variable", default="yes", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) -option_3 = StrOption(name="var", doc="a first variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_4)))), Calculation(func['calc_value'], Params((ParamOption(option_5))))], default_multi=Calculation(func['calc_value'], Params((ParamOption(option_4)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_3 = StrOption(name="var", doc="a first variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_4)), kwargs={'__internal_multi': ParamValue(True)})), Calculation(func['calc_value'], Params((ParamOption(option_5)), kwargs={'__internal_multi': ParamValue(True)}))], default_multi=Calculation(func['calc_value'], Params((ParamOption(option_4)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, option_4, option_5], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_9 = StrOption(name="var2", doc="a second variable", default="no", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_10 = StrOption(name="var3", doc="a third variable", default="yes", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) -option_8 = StrOption(name="var", doc="a first variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_9)))), Calculation(func['calc_value'], Params((ParamOption(option_10))))], default_multi=Calculation(func['calc_value'], Params((ParamOption(option_9)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_8 = StrOption(name="var", doc="a first variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_9)), kwargs={'__internal_multi': ParamValue(True)})), Calculation(func['calc_value'], Params((ParamOption(option_10)), kwargs={'__internal_multi': ParamValue(True)}))], default_multi=Calculation(func['calc_value'], Params((ParamOption(option_9)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_8, option_9, option_10], properties=frozenset({"standard"})) optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6]) diff --git a/tests/dictionaries/40_8calculation_multi_variable/tiramisu/no_namespace.py b/tests/dictionaries/40_8calculation_multi_variable/tiramisu/no_namespace.py index f823dc628..200b6ec08 100644 --- a/tests/dictionaries/40_8calculation_multi_variable/tiramisu/no_namespace.py +++ b/tests/dictionaries/40_8calculation_multi_variable/tiramisu/no_namespace.py @@ -8,5 +8,5 @@ ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") option_2 = StrOption(name="var2", doc="a second variable", default="no", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_3 = StrOption(name="var3", doc="a third variable", default="yes", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) -option_1 = StrOption(name="var", doc="a first variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_2)))), Calculation(func['calc_value'], Params((ParamOption(option_3))))], default_multi=Calculation(func['calc_value'], Params((ParamOption(option_2)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_1 = StrOption(name="var", doc="a first variable", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_2)), kwargs={'__internal_multi': ParamValue(True)})), Calculation(func['calc_value'], Params((ParamOption(option_3)), kwargs={'__internal_multi': ParamValue(True)}))], default_multi=Calculation(func['calc_value'], Params((ParamOption(option_2)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_2, option_3]) diff --git a/tests/dictionaries/60_0family_dynamic_1_0_empty/__init__.py b/tests/dictionaries/60_0family_dynamic_1_0_empty/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_0family_dynamic_1_0_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_0family_dynamic_1_0_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..237a3e937 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_1_0_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,15 @@ +--- +version: '1.0' +var: + description: A suffix variable + multi: true + mandatory: false + test: + - val1 + - val2 +dyn: + type: dynamic + variable: rougail.var + vardyn: + description: Dynamic variable + mandatory: false diff --git a/tests/dictionaries/60_0family_dynamic_1_0_empty/force_namespace b/tests/dictionaries/60_0family_dynamic_1_0_empty/force_namespace new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_0family_dynamic_1_0_empty/makedict/after.json b/tests/dictionaries/60_0family_dynamic_1_0_empty/makedict/after.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_1_0_empty/makedict/after.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_0family_dynamic_1_0_empty/makedict/base.json b/tests/dictionaries/60_0family_dynamic_1_0_empty/makedict/base.json new file mode 100644 index 000000000..a132f4593 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_1_0_empty/makedict/base.json @@ -0,0 +1,3 @@ +{ + "rougail.var": [] +} diff --git a/tests/dictionaries/60_0family_dynamic_1_0_empty/makedict/before.json b/tests/dictionaries/60_0family_dynamic_1_0_empty/makedict/before.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_1_0_empty/makedict/before.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_0family_dynamic_1_0_empty/makedict/mandatory.json b/tests/dictionaries/60_0family_dynamic_1_0_empty/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_1_0_empty/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/60_0family_dynamic_1_0_empty/tiramisu/base.py b/tests/dictionaries/60_0family_dynamic_1_0_empty/tiramisu/base.py new file mode 100644 index 000000000..0c28e692d --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_1_0_empty/tiramisu/base.py @@ -0,0 +1,17 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_2 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_4 = StrOption(name="vardyn", doc="Dynamic variable", properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="dyn{{ identifier }}", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_4], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_0family_dynamic_1_0_empty/tiramisu/multi.py b/tests/dictionaries/60_0family_dynamic_1_0_empty/tiramisu/multi.py new file mode 100644 index 000000000..da32be7e7 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_1_0_empty/tiramisu/multi.py @@ -0,0 +1,23 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_5 = StrOption(name="vardyn", doc="Dynamic variable", properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="dyn{{ identifier }}", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_5], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.var'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_8 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_10 = StrOption(name="vardyn", doc="Dynamic variable", properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_9 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="dyn{{ identifier }}", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_8, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_10], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.var'}) +optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_8, optiondescription_9], properties=frozenset({"standard"})) +optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6]) diff --git a/tests/dictionaries/60_0family_dynamic_1_0_type_empty/__init__.py b/tests/dictionaries/60_0family_dynamic_1_0_type_empty/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_0family_dynamic_1_0_type_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_0family_dynamic_1_0_type_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..2744d9728 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_1_0_type_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,14 @@ +--- +version: '1.0' +var: + description: A suffix variable + multi: true + mandatory: false + test: + - val1 + - val2 +dyn: + _type: dynamic + variable: rougail.var + vardyn: + description: A dyn variable diff --git a/tests/dictionaries/60_0family_dynamic_1_0_type_empty/force_namespace b/tests/dictionaries/60_0family_dynamic_1_0_type_empty/force_namespace new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_0family_dynamic_1_0_type_empty/makedict/after.json b/tests/dictionaries/60_0family_dynamic_1_0_type_empty/makedict/after.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_1_0_type_empty/makedict/after.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_0family_dynamic_1_0_type_empty/makedict/base.json b/tests/dictionaries/60_0family_dynamic_1_0_type_empty/makedict/base.json new file mode 100644 index 000000000..a132f4593 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_1_0_type_empty/makedict/base.json @@ -0,0 +1,3 @@ +{ + "rougail.var": [] +} diff --git a/tests/dictionaries/60_0family_dynamic_1_0_type_empty/makedict/before.json b/tests/dictionaries/60_0family_dynamic_1_0_type_empty/makedict/before.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_1_0_type_empty/makedict/before.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_0family_dynamic_1_0_type_empty/makedict/mandatory.json b/tests/dictionaries/60_0family_dynamic_1_0_type_empty/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_1_0_type_empty/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/60_0family_dynamic_1_0_type_empty/tiramisu/base.py b/tests/dictionaries/60_0family_dynamic_1_0_type_empty/tiramisu/base.py new file mode 100644 index 000000000..1e324e102 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_1_0_type_empty/tiramisu/base.py @@ -0,0 +1,17 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_2 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_4 = StrOption(name="vardyn", doc="A dyn variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="dyn{{ identifier }}", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_4], properties=frozenset({"basic"}), informations={'dynamic_variable': 'rougail.var'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_0family_dynamic_1_0_type_empty/tiramisu/multi.py b/tests/dictionaries/60_0family_dynamic_1_0_type_empty/tiramisu/multi.py new file mode 100644 index 000000000..74d8a4b9b --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_1_0_type_empty/tiramisu/multi.py @@ -0,0 +1,23 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_5 = StrOption(name="vardyn", doc="A dyn variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="dyn{{ identifier }}", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_5], properties=frozenset({"basic"}), informations={'dynamic_variable': '1.var'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4], properties=frozenset({"basic"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) +option_8 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_10 = StrOption(name="vardyn", doc="A dyn variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_9 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="dyn{{ identifier }}", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_8, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_10], properties=frozenset({"basic"}), informations={'dynamic_variable': '2.var'}) +optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_8, optiondescription_9], properties=frozenset({"basic"})) +optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6]) diff --git a/tests/dictionaries/60_0family_dynamic_1_1_empty/__init__.py b/tests/dictionaries/60_0family_dynamic_1_1_empty/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_0family_dynamic_1_1_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_0family_dynamic_1_1_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..ed09df4e2 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_1_1_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,15 @@ +--- +version: '1.1' +var: + description: A suffix variable + multi: true + mandatory: false + test: + - val1 + - val2 +dyn: + type: dynamic + description: A dynamic family + variable: _.var + vardyn: + description: A dynamic variable diff --git a/tests/dictionaries/60_0family_dynamic_1_1_empty/makedict/after.json b/tests/dictionaries/60_0family_dynamic_1_1_empty/makedict/after.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_1_1_empty/makedict/after.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_0family_dynamic_1_1_empty/makedict/base.json b/tests/dictionaries/60_0family_dynamic_1_1_empty/makedict/base.json new file mode 100644 index 000000000..a132f4593 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_1_1_empty/makedict/base.json @@ -0,0 +1,3 @@ +{ + "rougail.var": [] +} diff --git a/tests/dictionaries/60_0family_dynamic_1_1_empty/makedict/before.json b/tests/dictionaries/60_0family_dynamic_1_1_empty/makedict/before.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_1_1_empty/makedict/before.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_0family_dynamic_1_1_empty/makedict/mandatory.json b/tests/dictionaries/60_0family_dynamic_1_1_empty/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_1_1_empty/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/60_0family_dynamic_1_1_empty/tiramisu/base.py b/tests/dictionaries/60_0family_dynamic_1_1_empty/tiramisu/base.py new file mode 100644 index 000000000..eb6995005 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_1_1_empty/tiramisu/base.py @@ -0,0 +1,17 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_2 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_4 = StrOption(name="vardyn", doc="A dynamic variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_4], properties=frozenset({"basic"}), informations={'dynamic_variable': 'rougail.var'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_0family_dynamic_1_1_empty/tiramisu/multi.py b/tests/dictionaries/60_0family_dynamic_1_1_empty/tiramisu/multi.py new file mode 100644 index 000000000..b7afa001f --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_1_1_empty/tiramisu/multi.py @@ -0,0 +1,23 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_5 = StrOption(name="vardyn", doc="A dynamic variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_5], properties=frozenset({"basic"}), informations={'dynamic_variable': '1.rougail.var'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4], properties=frozenset({"basic"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) +option_8 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_10 = StrOption(name="vardyn", doc="A dynamic variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_9 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_8, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_10], properties=frozenset({"basic"}), informations={'dynamic_variable': '2.rougail.var'}) +optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_8, optiondescription_9], properties=frozenset({"basic"})) +optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6]) diff --git a/tests/dictionaries/60_0family_dynamic_1_1_empty/tiramisu/no_namespace.py b/tests/dictionaries/60_0family_dynamic_1_1_empty/tiramisu/no_namespace.py new file mode 100644 index 000000000..2117c9f5f --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_1_1_empty/tiramisu/no_namespace.py @@ -0,0 +1,12 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_1 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_3 = StrOption(name="vardyn", doc="A dynamic variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_2 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_1, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_3], properties=frozenset({"basic"}), informations={'dynamic_variable': 'var'}) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, optiondescription_2]) diff --git a/tests/dictionaries/60_0family_dynamic_empty/__init__.py b/tests/dictionaries/60_0family_dynamic_empty/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_0family_dynamic_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_0family_dynamic_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..02d1fbb03 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,13 @@ +--- +version: '1.1' + +var: + description: A suffix variable + mandatory: false + multi: true + +"dyn{{ identifier }}": + description: A dynamic family + dynamic: + variable: _.var + var: # A dynamic variable diff --git a/tests/dictionaries/60_0family_dynamic_empty/makedict/after.json b/tests/dictionaries/60_0family_dynamic_empty/makedict/after.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_empty/makedict/after.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_0family_dynamic_empty/makedict/base.json b/tests/dictionaries/60_0family_dynamic_empty/makedict/base.json new file mode 100644 index 000000000..a132f4593 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_empty/makedict/base.json @@ -0,0 +1,3 @@ +{ + "rougail.var": [] +} diff --git a/tests/dictionaries/60_0family_dynamic_empty/makedict/before.json b/tests/dictionaries/60_0family_dynamic_empty/makedict/before.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_empty/makedict/before.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_0family_dynamic_empty/makedict/mandatory.json b/tests/dictionaries/60_0family_dynamic_empty/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_empty/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/60_0family_dynamic_empty/tiramisu/base.py b/tests/dictionaries/60_0family_dynamic_empty/tiramisu/base.py new file mode 100644 index 000000000..91f429bc5 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_empty/tiramisu/base.py @@ -0,0 +1,17 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_2 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string'}) +option_4 = StrOption(name="var", doc="A dynamic variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_4], properties=frozenset({"basic"}), informations={'dynamic_variable': 'rougail.var'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_0family_dynamic_empty/tiramisu/multi.py b/tests/dictionaries/60_0family_dynamic_empty/tiramisu/multi.py new file mode 100644 index 000000000..4e7be6b04 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_empty/tiramisu/multi.py @@ -0,0 +1,23 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string'}) +option_5 = StrOption(name="var", doc="A dynamic variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_5], properties=frozenset({"basic"}), informations={'dynamic_variable': '1.rougail.var'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4], properties=frozenset({"basic"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) +option_8 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string'}) +option_10 = StrOption(name="var", doc="A dynamic variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_9 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_8)))), children=[option_10], properties=frozenset({"basic"}), informations={'dynamic_variable': '2.rougail.var'}) +optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_8, optiondescription_9], properties=frozenset({"basic"})) +optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6]) diff --git a/tests/dictionaries/60_0family_dynamic_empty/tiramisu/no_namespace.py b/tests/dictionaries/60_0family_dynamic_empty/tiramisu/no_namespace.py new file mode 100644 index 000000000..799e718a8 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_empty/tiramisu/no_namespace.py @@ -0,0 +1,12 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_1 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string'}) +option_3 = StrOption(name="var", doc="A dynamic variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_2 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_1)))), children=[option_3], properties=frozenset({"basic"}), informations={'dynamic_variable': 'var'}) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, optiondescription_2]) diff --git a/tests/dictionaries/60_0family_dynamic_jinja_number/tiramisu/base.py b/tests/dictionaries/60_0family_dynamic_jinja_number/tiramisu/base.py index 87bd63283..7c1bc2a5c 100644 --- a/tests/dictionaries/60_0family_dynamic_jinja_number/tiramisu/base.py +++ b/tests/dictionaries/60_0family_dynamic_jinja_number/tiramisu/base.py @@ -14,6 +14,6 @@ dict_env['default_rougail.var2'] = "{{ rougail.dyn1.var }}\n" option_2 = IntOption(name="var", doc="a suffix variable", multi=True, default=[1, 2], default_multi=1, properties=frozenset({"mandatory", "standard"}), informations={'type': 'number'}) option_4 = StrOption(name="var", doc="a variable inside dynamic family", default="val", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_4], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var'}) -option_5 = StrOption(name="var2", doc="a variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_0family_dynamic_jinja_number/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("rougail.var2"), 'rougail.dyn1.var': ParamDynOption(option_4, ["1"], notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_5 = StrOption(name="var2", doc="a variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_0family_dynamic_jinja_number/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("rougail.var2"), 'rougail.dyn1.var': ParamDynOption(option_4, ["1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3, option_5], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_0family_dynamic_jinja_number/tiramisu/multi.py b/tests/dictionaries/60_0family_dynamic_jinja_number/tiramisu/multi.py index 91fb45633..a023801c6 100644 --- a/tests/dictionaries/60_0family_dynamic_jinja_number/tiramisu/multi.py +++ b/tests/dictionaries/60_0family_dynamic_jinja_number/tiramisu/multi.py @@ -15,13 +15,13 @@ dict_env['default_2.rougail.var2'] = "{{ rougail.dyn1.var }}\n" option_3 = IntOption(name="var", doc="a suffix variable", multi=True, default=[1, 2], default_multi=1, properties=frozenset({"mandatory", "standard"}), informations={'type': 'number'}) option_5 = StrOption(name="var", doc="a variable inside dynamic family", default="val", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_5], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.rougail.var'}) -option_6 = StrOption(name="var2", doc="a variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_0family_dynamic_jinja_number/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("1.rougail.var2"), 'rougail.dyn1.var': ParamDynOption(option_5, ["1"], notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_6 = StrOption(name="var2", doc="a variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_0family_dynamic_jinja_number/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("1.rougail.var2"), 'rougail.dyn1.var': ParamDynOption(option_5, ["1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4, option_6], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_9 = IntOption(name="var", doc="a suffix variable", multi=True, default=[1, 2], default_multi=1, properties=frozenset({"mandatory", "standard"}), informations={'type': 'number'}) option_11 = StrOption(name="var", doc="a variable inside dynamic family", default="val", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_10 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_9)))), children=[option_11], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.rougail.var'}) -option_12 = StrOption(name="var2", doc="a variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_0family_dynamic_jinja_number/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("2.rougail.var2"), 'rougail.dyn1.var': ParamDynOption(option_11, ["1"], notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_12 = StrOption(name="var2", doc="a variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_0family_dynamic_jinja_number/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("2.rougail.var2"), 'rougail.dyn1.var': ParamDynOption(option_11, ["1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_9, optiondescription_10, option_12], properties=frozenset({"standard"})) optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7]) diff --git a/tests/dictionaries/60_0family_dynamic_jinja_number_empty/__init__.py b/tests/dictionaries/60_0family_dynamic_jinja_number_empty/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_0family_dynamic_jinja_number_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_0family_dynamic_jinja_number_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..85367d28f --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_jinja_number_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,23 @@ +--- +version: '1.1' +var: + description: a suffix variable + multi: true + mandatory: false + type: number + test: + - 1 + - 2 +"dyn{{ identifier }}": + description: a dynamic family + dynamic: + variable: _.var + var: val # a variable inside dynamic family +var2: + description: a variable + default: + jinja: | + {% if rougail.dyn1 is defined %} + {{ rougail.dyn1.var }} + {% endif %} + description: get the value of rougail.dyn1.var diff --git a/tests/dictionaries/60_0family_dynamic_jinja_number_empty/force_namespace b/tests/dictionaries/60_0family_dynamic_jinja_number_empty/force_namespace new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_0family_dynamic_jinja_number_empty/makedict/after.json b/tests/dictionaries/60_0family_dynamic_jinja_number_empty/makedict/after.json new file mode 100644 index 000000000..1e7f5d7ff --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_jinja_number_empty/makedict/after.json @@ -0,0 +1,10 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + }, + "rougail.var2": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/60_0family_dynamic_jinja_number_empty/makedict/base.json b/tests/dictionaries/60_0family_dynamic_jinja_number_empty/makedict/base.json new file mode 100644 index 000000000..cd9083c3d --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_jinja_number_empty/makedict/base.json @@ -0,0 +1,4 @@ +{ + "rougail.var": [], + "rougail.var2": null +} diff --git a/tests/dictionaries/60_0family_dynamic_jinja_number_empty/makedict/before.json b/tests/dictionaries/60_0family_dynamic_jinja_number_empty/makedict/before.json new file mode 100644 index 000000000..1e7f5d7ff --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_jinja_number_empty/makedict/before.json @@ -0,0 +1,10 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + }, + "rougail.var2": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/60_0family_dynamic_jinja_number_empty/makedict/mandatory.json b/tests/dictionaries/60_0family_dynamic_jinja_number_empty/makedict/mandatory.json new file mode 100644 index 000000000..4fb69ce52 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_jinja_number_empty/makedict/mandatory.json @@ -0,0 +1 @@ +["rougail.var2"] \ No newline at end of file diff --git a/tests/dictionaries/60_0family_dynamic_jinja_number_empty/tiramisu/base.py b/tests/dictionaries/60_0family_dynamic_jinja_number_empty/tiramisu/base.py new file mode 100644 index 000000000..72e82a110 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_jinja_number_empty/tiramisu/base.py @@ -0,0 +1,19 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_rougail.var2'] = "{% if rougail.dyn1 is defined %}\n{{ rougail.dyn1.var }}\n{% endif %}\n" +option_2 = IntOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'number', 'test': (1, 2)}) +option_4 = StrOption(name="var", doc="a variable inside dynamic family", default="val", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_4], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var'}) +option_5 = StrOption(name="var2", doc="a variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_0family_dynamic_jinja_number_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("rougail.var2"), 'rougail.dyn1.var': ParamDynOption(option_4, ["1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3, option_5], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_0family_dynamic_jinja_number_empty/tiramisu/multi.py b/tests/dictionaries/60_0family_dynamic_jinja_number_empty/tiramisu/multi.py new file mode 100644 index 000000000..1b141ddb4 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_jinja_number_empty/tiramisu/multi.py @@ -0,0 +1,27 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_1.rougail.var2'] = "{% if rougail.dyn1 is defined %}\n{{ rougail.dyn1.var }}\n{% endif %}\n" +dict_env['default_2.rougail.var2'] = "{% if rougail.dyn1 is defined %}\n{{ rougail.dyn1.var }}\n{% endif %}\n" +option_3 = IntOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'number', 'test': (1, 2)}) +option_5 = StrOption(name="var", doc="a variable inside dynamic family", default="val", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_5], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.rougail.var'}) +option_6 = StrOption(name="var2", doc="a variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_0family_dynamic_jinja_number_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("1.rougail.var2"), 'rougail.dyn1.var': ParamDynOption(option_5, ["1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4, option_6], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_9 = IntOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'number', 'test': (1, 2)}) +option_11 = StrOption(name="var", doc="a variable inside dynamic family", default="val", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_10 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_9)))), children=[option_11], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.rougail.var'}) +option_12 = StrOption(name="var2", doc="a variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_0family_dynamic_jinja_number_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("2.rougail.var2"), 'rougail.dyn1.var': ParamDynOption(option_11, ["1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_9, optiondescription_10, option_12], properties=frozenset({"standard"})) +optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7]) diff --git a/tests/dictionaries/60_0family_dynamic_no_description/__init__.py b/tests/dictionaries/60_0family_dynamic_no_description/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_0family_dynamic_no_description/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_0family_dynamic_no_description/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..f9400c02a --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_no_description/dictionaries/rougail/00-base.yml @@ -0,0 +1,12 @@ +--- +version: '1.1' + +var: # A suffix variable + - val1 + - val2 + +"dyn{{ identifier }}": + description: A dynamic family + dynamic: + variable: _.var + var: diff --git a/tests/dictionaries/60_0family_dynamic_no_description/makedict/after.json b/tests/dictionaries/60_0family_dynamic_no_description/makedict/after.json new file mode 100644 index 000000000..e72db9d1d --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_no_description/makedict/after.json @@ -0,0 +1,17 @@ +{ + "rougail.var": { + "owner": "default", + "value": [ + "val1", + "val2" + ] + }, + "rougail.dynval1.var": { + "owner": "default", + "value": null + }, + "rougail.dynval2.var": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/60_0family_dynamic_no_description/makedict/base.json b/tests/dictionaries/60_0family_dynamic_no_description/makedict/base.json new file mode 100644 index 000000000..475b83369 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_no_description/makedict/base.json @@ -0,0 +1,8 @@ +{ + "rougail.var": [ + "val1", + "val2" + ], + "rougail.dynval1.var": null, + "rougail.dynval2.var": null +} diff --git a/tests/dictionaries/60_0family_dynamic_no_description/makedict/before.json b/tests/dictionaries/60_0family_dynamic_no_description/makedict/before.json new file mode 100644 index 000000000..e72db9d1d --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_no_description/makedict/before.json @@ -0,0 +1,17 @@ +{ + "rougail.var": { + "owner": "default", + "value": [ + "val1", + "val2" + ] + }, + "rougail.dynval1.var": { + "owner": "default", + "value": null + }, + "rougail.dynval2.var": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/60_0family_dynamic_no_description/makedict/mandatory.json b/tests/dictionaries/60_0family_dynamic_no_description/makedict/mandatory.json new file mode 100644 index 000000000..ab51d9ec5 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_no_description/makedict/mandatory.json @@ -0,0 +1 @@ +["rougail.dynval1.var", "rougail.dynval2.var"] \ No newline at end of file diff --git a/tests/dictionaries/60_0family_dynamic_no_description/tiramisu/base.py b/tests/dictionaries/60_0family_dynamic_no_description/tiramisu/base.py new file mode 100644 index 000000000..f8ecfe7ef --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_no_description/tiramisu/base.py @@ -0,0 +1,17 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_2 = StrOption(name="var", doc="A suffix variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_4 = StrOption(name="var", doc="var", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_4], properties=frozenset({"basic"}), informations={'dynamic_variable': 'rougail.var'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_0family_dynamic_no_description/tiramisu/multi.py b/tests/dictionaries/60_0family_dynamic_no_description/tiramisu/multi.py new file mode 100644 index 000000000..2fd24d6e2 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_no_description/tiramisu/multi.py @@ -0,0 +1,23 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="var", doc="A suffix variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_5 = StrOption(name="var", doc="var", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_5], properties=frozenset({"basic"}), informations={'dynamic_variable': '1.rougail.var'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4], properties=frozenset({"basic"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) +option_8 = StrOption(name="var", doc="A suffix variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_10 = StrOption(name="var", doc="var", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_9 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_8)))), children=[option_10], properties=frozenset({"basic"}), informations={'dynamic_variable': '2.rougail.var'}) +optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_8, optiondescription_9], properties=frozenset({"basic"})) +optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6]) diff --git a/tests/dictionaries/60_0family_dynamic_no_description/tiramisu/no_namespace.py b/tests/dictionaries/60_0family_dynamic_no_description/tiramisu/no_namespace.py new file mode 100644 index 000000000..f0aeea986 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_no_description/tiramisu/no_namespace.py @@ -0,0 +1,12 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_1 = StrOption(name="var", doc="A suffix variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_3 = StrOption(name="var", doc="var", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_2 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_1)))), children=[option_3], properties=frozenset({"basic"}), informations={'dynamic_variable': 'var'}) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, optiondescription_2]) diff --git a/tests/dictionaries/60_0family_dynamic_no_description_empty/__init__.py b/tests/dictionaries/60_0family_dynamic_no_description_empty/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_0family_dynamic_no_description_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_0family_dynamic_no_description_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..fff5b27ad --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_no_description_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,16 @@ +--- +version: '1.1' + +var: + description: A suffix variable + multi: true + mandatory: false + test: + - val1 + - val2 + +"dyn{{ identifier }}": + description: A dynamic family + dynamic: + variable: _.var + var: diff --git a/tests/dictionaries/60_0family_dynamic_no_description_empty/makedict/after.json b/tests/dictionaries/60_0family_dynamic_no_description_empty/makedict/after.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_no_description_empty/makedict/after.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_0family_dynamic_no_description_empty/makedict/base.json b/tests/dictionaries/60_0family_dynamic_no_description_empty/makedict/base.json new file mode 100644 index 000000000..a132f4593 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_no_description_empty/makedict/base.json @@ -0,0 +1,3 @@ +{ + "rougail.var": [] +} diff --git a/tests/dictionaries/60_0family_dynamic_no_description_empty/makedict/before.json b/tests/dictionaries/60_0family_dynamic_no_description_empty/makedict/before.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_no_description_empty/makedict/before.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_0family_dynamic_no_description_empty/makedict/mandatory.json b/tests/dictionaries/60_0family_dynamic_no_description_empty/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_no_description_empty/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/60_0family_dynamic_no_description_empty/tiramisu/base.py b/tests/dictionaries/60_0family_dynamic_no_description_empty/tiramisu/base.py new file mode 100644 index 000000000..234ae55d5 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_no_description_empty/tiramisu/base.py @@ -0,0 +1,17 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_2 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_4 = StrOption(name="var", doc="var", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_4], properties=frozenset({"basic"}), informations={'dynamic_variable': 'rougail.var'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_0family_dynamic_no_description_empty/tiramisu/multi.py b/tests/dictionaries/60_0family_dynamic_no_description_empty/tiramisu/multi.py new file mode 100644 index 000000000..09f51501d --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_no_description_empty/tiramisu/multi.py @@ -0,0 +1,23 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_5 = StrOption(name="var", doc="var", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_5], properties=frozenset({"basic"}), informations={'dynamic_variable': '1.rougail.var'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4], properties=frozenset({"basic"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) +option_8 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_10 = StrOption(name="var", doc="var", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_9 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_8)))), children=[option_10], properties=frozenset({"basic"}), informations={'dynamic_variable': '2.rougail.var'}) +optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_8, optiondescription_9], properties=frozenset({"basic"})) +optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6]) diff --git a/tests/dictionaries/60_0family_dynamic_no_description_empty/tiramisu/no_namespace.py b/tests/dictionaries/60_0family_dynamic_no_description_empty/tiramisu/no_namespace.py new file mode 100644 index 000000000..4f2f7f9b8 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_no_description_empty/tiramisu/no_namespace.py @@ -0,0 +1,12 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_1 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_3 = StrOption(name="var", doc="var", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_2 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_1)))), children=[option_3], properties=frozenset({"basic"}), informations={'dynamic_variable': 'var'}) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, optiondescription_2]) diff --git a/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/__init__.py b/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..4eeaa4672 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,13 @@ +--- +version: '1.1' +var: + description: A suffix variable + multi: true + test: + - val1 + - val2 +"dyn{{ identifier }}": + description: A dynamic family + dynamic: + variable: _.var + var: a value # A dynamic variable with suffix {{ identifier }} diff --git a/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/makedict/after.json b/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/makedict/after.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/makedict/after.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/makedict/base.json b/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/makedict/base.json new file mode 100644 index 000000000..a132f4593 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/makedict/base.json @@ -0,0 +1,3 @@ +{ + "rougail.var": [] +} diff --git a/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/makedict/before.json b/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/makedict/before.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/makedict/before.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/makedict/mandatory.json b/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/makedict/mandatory.json new file mode 100644 index 000000000..f030b0c48 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/makedict/mandatory.json @@ -0,0 +1 @@ +["rougail.var"] \ No newline at end of file diff --git a/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/tiramisu/base.py b/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/tiramisu/base.py new file mode 100644 index 000000000..67cf584db --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/tiramisu/base.py @@ -0,0 +1,17 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_2 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"basic", "mandatory"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_4 = StrOption(name="var", doc="A dynamic variable with suffix {{ identifier }}", default="a value", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_4], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/tiramisu/multi.py b/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/tiramisu/multi.py new file mode 100644 index 000000000..26d422ac1 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/tiramisu/multi.py @@ -0,0 +1,23 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"basic", "mandatory"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_5 = StrOption(name="var", doc="A dynamic variable with suffix {{ identifier }}", default="a value", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_5], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.rougail.var'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4], properties=frozenset({"basic"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) +option_8 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"basic", "mandatory"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_10 = StrOption(name="var", doc="A dynamic variable with suffix {{ identifier }}", default="a value", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_9 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_8)))), children=[option_10], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.rougail.var'}) +optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_8, optiondescription_9], properties=frozenset({"basic"})) +optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6]) diff --git a/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/tiramisu/no_namespace.py b/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/tiramisu/no_namespace.py new file mode 100644 index 000000000..3302c3f61 --- /dev/null +++ b/tests/dictionaries/60_0family_dynamic_variable_suffix_empty/tiramisu/no_namespace.py @@ -0,0 +1,12 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_1 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"basic", "mandatory"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_3 = StrOption(name="var", doc="A dynamic variable with suffix {{ identifier }}", default="a value", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_2 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_1)))), children=[option_3], properties=frozenset({"standard"}), informations={'dynamic_variable': 'var'}) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, optiondescription_2]) diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group/tiramisu/base.py b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group/tiramisu/base.py index 447e20ce1..0e25bef38 100644 --- a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group/tiramisu/base.py +++ b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group/tiramisu/base.py @@ -15,6 +15,6 @@ option_2 = StrOption(name="var1", doc="a suffix variable", multi=True, default=[ option_5 = StrOption(name="var", doc="with a variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) optiondescription_4 = OptionDescription(name="family", doc="a family", children=[option_5], properties=frozenset({"basic"})) optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[optiondescription_4], properties=frozenset({"basic"}), informations={'dynamic_variable': 'rougail.var1'}) -option_6 = StrOption(name="var2", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("rougail.var2"), '_.dynval1.family.var': ParamDynOption(option_5, ["val1"], notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_6 = StrOption(name="var2", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("rougail.var2"), '_.dynval1.family.var': ParamDynOption(option_5, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3, option_6], properties=frozenset({"basic"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group/tiramisu/multi.py b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group/tiramisu/multi.py index 250dd9ad9..a77ebc6ee 100644 --- a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group/tiramisu/multi.py +++ b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group/tiramisu/multi.py @@ -16,14 +16,14 @@ option_3 = StrOption(name="var1", doc="a suffix variable", multi=True, default=[ option_6 = StrOption(name="var", doc="with a variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) optiondescription_5 = OptionDescription(name="family", doc="a family", children=[option_6], properties=frozenset({"basic"})) optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[optiondescription_5], properties=frozenset({"basic"}), informations={'dynamic_variable': '1.rougail.var1'}) -option_7 = StrOption(name="var2", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("1.rougail.var2"), '_.dynval1.family.var': ParamDynOption(option_6, ["val1"], notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_7 = StrOption(name="var2", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("1.rougail.var2"), '_.dynval1.family.var': ParamDynOption(option_6, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4, option_7], properties=frozenset({"basic"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) option_10 = StrOption(name="var1", doc="a suffix variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_13 = StrOption(name="var", doc="with a variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) optiondescription_12 = OptionDescription(name="family", doc="a family", children=[option_13], properties=frozenset({"basic"})) optiondescription_11 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_10)))), children=[optiondescription_12], properties=frozenset({"basic"}), informations={'dynamic_variable': '2.rougail.var1'}) -option_14 = StrOption(name="var2", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("2.rougail.var2"), '_.dynval1.family.var': ParamDynOption(option_13, ["val1"], notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_14 = StrOption(name="var2", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("2.rougail.var2"), '_.dynval1.family.var': ParamDynOption(option_13, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_9 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_10, optiondescription_11, option_14], properties=frozenset({"basic"})) optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"basic"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8]) diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group/tiramisu/no_namespace.py b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group/tiramisu/no_namespace.py index 5d3ad7832..fdcad340d 100644 --- a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group/tiramisu/no_namespace.py +++ b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group/tiramisu/no_namespace.py @@ -11,5 +11,5 @@ option_1 = StrOption(name="var1", doc="a suffix variable", multi=True, default=[ option_4 = StrOption(name="var", doc="with a variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) optiondescription_3 = OptionDescription(name="family", doc="a family", children=[option_4], properties=frozenset({"basic"})) optiondescription_2 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_1)))), children=[optiondescription_3], properties=frozenset({"basic"}), informations={'dynamic_variable': 'var1'}) -option_5 = StrOption(name="var2", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("var2"), '_.dynval1.family.var': ParamDynOption(option_4, ["val1"], notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_5 = StrOption(name="var2", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("var2"), '_.dynval1.family.var': ParamDynOption(option_4, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, optiondescription_2, option_5]) diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2/tiramisu/base.py b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2/tiramisu/base.py index 9ee3bfff2..17aa55b3d 100644 --- a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2/tiramisu/base.py +++ b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2/tiramisu/base.py @@ -15,6 +15,6 @@ option_2 = StrOption(name="var", doc="a identifier variable", multi=True, defaul option_5 = StrOption(name="var", doc="a dynamic variable", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_4 = OptionDescription(name="family", doc="a family inside dynamic family", children=[option_5], properties=frozenset({"standard"})) optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[optiondescription_4], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var'}) -option_6 = StrOption(name="var2", doc="a varible outside dynamic family", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("rougail.var2"), '_.dynval1.family.var': ParamDynOption(option_5, ["val1"], notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_6 = StrOption(name="var2", doc="a varible outside dynamic family", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("rougail.var2"), '_.dynval1.family.var': ParamDynOption(option_5, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3, option_6], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2/tiramisu/multi.py b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2/tiramisu/multi.py index b77203231..4ed5dd156 100644 --- a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2/tiramisu/multi.py +++ b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2/tiramisu/multi.py @@ -16,14 +16,14 @@ option_3 = StrOption(name="var", doc="a identifier variable", multi=True, defaul option_6 = StrOption(name="var", doc="a dynamic variable", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_5 = OptionDescription(name="family", doc="a family inside dynamic family", children=[option_6], properties=frozenset({"standard"})) optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[optiondescription_5], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.rougail.var'}) -option_7 = StrOption(name="var2", doc="a varible outside dynamic family", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("1.rougail.var2"), '_.dynval1.family.var': ParamDynOption(option_6, ["val1"], notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_7 = StrOption(name="var2", doc="a varible outside dynamic family", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("1.rougail.var2"), '_.dynval1.family.var': ParamDynOption(option_6, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4, option_7], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_10 = StrOption(name="var", doc="a identifier variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_13 = StrOption(name="var", doc="a dynamic variable", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_12 = OptionDescription(name="family", doc="a family inside dynamic family", children=[option_13], properties=frozenset({"standard"})) optiondescription_11 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_10)))), children=[optiondescription_12], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.rougail.var'}) -option_14 = StrOption(name="var2", doc="a varible outside dynamic family", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("2.rougail.var2"), '_.dynval1.family.var': ParamDynOption(option_13, ["val1"], notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_14 = StrOption(name="var2", doc="a varible outside dynamic family", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("2.rougail.var2"), '_.dynval1.family.var': ParamDynOption(option_13, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_9 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_10, optiondescription_11, option_14], properties=frozenset({"standard"})) optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8]) diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2/tiramisu/no_namespace.py b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2/tiramisu/no_namespace.py index cc11eac76..c9633252c 100644 --- a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2/tiramisu/no_namespace.py +++ b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2/tiramisu/no_namespace.py @@ -11,5 +11,5 @@ option_1 = StrOption(name="var", doc="a identifier variable", multi=True, defaul option_4 = StrOption(name="var", doc="a dynamic variable", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_3 = OptionDescription(name="family", doc="a family inside dynamic family", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_1)))), children=[optiondescription_3], properties=frozenset({"standard"}), informations={'dynamic_variable': 'var'}) -option_5 = StrOption(name="var2", doc="a varible outside dynamic family", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("var2"), '_.dynval1.family.var': ParamDynOption(option_4, ["val1"], notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_5 = StrOption(name="var2", doc="a varible outside dynamic family", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("var2"), '_.dynval1.family.var': ParamDynOption(option_4, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, optiondescription_2, option_5]) diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/__init__.py b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..34db8f993 --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,28 @@ +--- +version: '1.1' +var: + description: a identifier variable + multi: true + mandatory: false + test: + - val1 + - val2 +"dyn{{ identifier }}": + description: a dynamic family + dynamic: + variable: _.var + family: + description: a family inside dynamic family + var: + description: a dynamic variable + default: + type: 'identifier' +var2: + description: a varible outside dynamic family + mandatory: false + default: + jinja: | + {% if _.dynval1 is defined %} + {{ _.dynval1.family.var }} + {% endif %} + description: the value of var diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/makedict/after.json b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/makedict/after.json new file mode 100644 index 000000000..1e7f5d7ff --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/makedict/after.json @@ -0,0 +1,10 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + }, + "rougail.var2": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/makedict/base.json b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/makedict/base.json new file mode 100644 index 000000000..cd9083c3d --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/makedict/base.json @@ -0,0 +1,4 @@ +{ + "rougail.var": [], + "rougail.var2": null +} diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/makedict/before.json b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/makedict/before.json new file mode 100644 index 000000000..1e7f5d7ff --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/makedict/before.json @@ -0,0 +1,10 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + }, + "rougail.var2": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/makedict/mandatory.json b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/tiramisu/base.py b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/tiramisu/base.py new file mode 100644 index 000000000..186989ec3 --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/tiramisu/base.py @@ -0,0 +1,20 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_rougail.var2'] = "{% if _.dynval1 is defined %}\n{{ _.dynval1.family.var }}\n{% endif %}\n" +option_2 = StrOption(name="var", doc="a identifier variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_5 = StrOption(name="var", doc="a dynamic variable", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_4 = OptionDescription(name="family", doc="a family inside dynamic family", children=[option_5], properties=frozenset({"standard"})) +optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[optiondescription_4], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var'}) +option_6 = StrOption(name="var2", doc="a varible outside dynamic family", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("rougail.var2"), '_.dynval1.family.var': ParamDynOption(option_5, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3, option_6], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/tiramisu/multi.py b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/tiramisu/multi.py new file mode 100644 index 000000000..1b10bfc44 --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/tiramisu/multi.py @@ -0,0 +1,29 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_1.rougail.var2'] = "{% if _.dynval1 is defined %}\n{{ _.dynval1.family.var }}\n{% endif %}\n" +dict_env['default_2.rougail.var2'] = "{% if _.dynval1 is defined %}\n{{ _.dynval1.family.var }}\n{% endif %}\n" +option_3 = StrOption(name="var", doc="a identifier variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_6 = StrOption(name="var", doc="a dynamic variable", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_5 = OptionDescription(name="family", doc="a family inside dynamic family", children=[option_6], properties=frozenset({"standard"})) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[optiondescription_5], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.rougail.var'}) +option_7 = StrOption(name="var2", doc="a varible outside dynamic family", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("1.rougail.var2"), '_.dynval1.family.var': ParamDynOption(option_6, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4, option_7], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_10 = StrOption(name="var", doc="a identifier variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_13 = StrOption(name="var", doc="a dynamic variable", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_12 = OptionDescription(name="family", doc="a family inside dynamic family", children=[option_13], properties=frozenset({"standard"})) +optiondescription_11 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_10)))), children=[optiondescription_12], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.rougail.var'}) +option_14 = StrOption(name="var2", doc="a varible outside dynamic family", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("2.rougail.var2"), '_.dynval1.family.var': ParamDynOption(option_13, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_9 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_10, optiondescription_11, option_14], properties=frozenset({"standard"})) +optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8]) diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/tiramisu/no_namespace.py b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/tiramisu/no_namespace.py new file mode 100644 index 000000000..b7d7f7fe7 --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/tiramisu/no_namespace.py @@ -0,0 +1,15 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_var2'] = "{% if _.dynval1 is defined %}\n{{ _.dynval1.family.var }}\n{% endif %}\n" +option_1 = StrOption(name="var", doc="a identifier variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_4 = StrOption(name="var", doc="a dynamic variable", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_3 = OptionDescription(name="family", doc="a family inside dynamic family", children=[option_4], properties=frozenset({"standard"})) +optiondescription_2 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_1)))), children=[optiondescription_3], properties=frozenset({"standard"}), informations={'dynamic_variable': 'var'}) +option_5 = StrOption(name="var2", doc="a varible outside dynamic family", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_2_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("var2"), '_.dynval1.family.var': ParamDynOption(option_4, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"standard"}), informations={'type': 'string'}) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, optiondescription_2, option_5]) diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/__init__.py b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..f070e142b --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,24 @@ +--- +version: '1.1' +var1: + description: a suffix variable + multi: true + mandatory: false + test: + - val1 + - val2 +"dyn{{ identifier }}": + description: a dynamic family + dynamic: + variable: _.var1 + family: # a family + var: # with a variable +var2: + description: a second variable + mandatory: false + default: + jinja: | + {% if _.dynval1 is defined %} + {{ _.dynval1.family.var }} + {% endif %} + description: the value of var diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/makedict/after.json b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/makedict/after.json new file mode 100644 index 000000000..fec8f4dc2 --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/makedict/after.json @@ -0,0 +1,10 @@ +{ + "rougail.var1": { + "owner": "default", + "value": [] + }, + "rougail.var2": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/makedict/base.json b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/makedict/base.json new file mode 100644 index 000000000..a20d18a3f --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/makedict/base.json @@ -0,0 +1,4 @@ +{ + "rougail.var1": [], + "rougail.var2": null +} diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/makedict/before.json b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/makedict/before.json new file mode 100644 index 000000000..fec8f4dc2 --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/makedict/before.json @@ -0,0 +1,10 @@ +{ + "rougail.var1": { + "owner": "default", + "value": [] + }, + "rougail.var2": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/makedict/mandatory.json b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/tiramisu/base.py b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/tiramisu/base.py new file mode 100644 index 000000000..9e03006e7 --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/tiramisu/base.py @@ -0,0 +1,20 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_rougail.var2'] = "{% if _.dynval1 is defined %}\n{{ _.dynval1.family.var }}\n{% endif %}\n" +option_2 = StrOption(name="var1", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_5 = StrOption(name="var", doc="with a variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_4 = OptionDescription(name="family", doc="a family", children=[option_5], properties=frozenset({"basic"})) +optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[optiondescription_4], properties=frozenset({"basic"}), informations={'dynamic_variable': 'rougail.var1'}) +option_6 = StrOption(name="var2", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("rougail.var2"), '_.dynval1.family.var': ParamDynOption(option_5, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3, option_6], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/tiramisu/multi.py b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/tiramisu/multi.py new file mode 100644 index 000000000..00435119a --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/tiramisu/multi.py @@ -0,0 +1,29 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_1.rougail.var2'] = "{% if _.dynval1 is defined %}\n{{ _.dynval1.family.var }}\n{% endif %}\n" +dict_env['default_2.rougail.var2'] = "{% if _.dynval1 is defined %}\n{{ _.dynval1.family.var }}\n{% endif %}\n" +option_3 = StrOption(name="var1", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_6 = StrOption(name="var", doc="with a variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_5 = OptionDescription(name="family", doc="a family", children=[option_6], properties=frozenset({"basic"})) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[optiondescription_5], properties=frozenset({"basic"}), informations={'dynamic_variable': '1.rougail.var1'}) +option_7 = StrOption(name="var2", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("1.rougail.var2"), '_.dynval1.family.var': ParamDynOption(option_6, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4, option_7], properties=frozenset({"basic"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) +option_10 = StrOption(name="var1", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_13 = StrOption(name="var", doc="with a variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_12 = OptionDescription(name="family", doc="a family", children=[option_13], properties=frozenset({"basic"})) +optiondescription_11 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_10)))), children=[optiondescription_12], properties=frozenset({"basic"}), informations={'dynamic_variable': '2.rougail.var1'}) +option_14 = StrOption(name="var2", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("2.rougail.var2"), '_.dynval1.family.var': ParamDynOption(option_13, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_9 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_10, optiondescription_11, option_14], properties=frozenset({"basic"})) +optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8]) diff --git a/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/tiramisu/no_namespace.py b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/tiramisu/no_namespace.py new file mode 100644 index 000000000..69db0298b --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/tiramisu/no_namespace.py @@ -0,0 +1,15 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_var2'] = "{% if _.dynval1 is defined %}\n{{ _.dynval1.family.var }}\n{% endif %}\n" +option_1 = StrOption(name="var1", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_4 = StrOption(name="var", doc="with a variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_3 = OptionDescription(name="family", doc="a family", children=[option_4], properties=frozenset({"basic"})) +optiondescription_2 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_1)))), children=[optiondescription_3], properties=frozenset({"basic"}), informations={'dynamic_variable': 'var1'}) +option_5 = StrOption(name="var2", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_jinja_fill_sub_group_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("var2"), '_.dynval1.family.var': ParamDynOption(option_4, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"standard"}), informations={'type': 'string'}) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, optiondescription_2, option_5]) diff --git a/tests/dictionaries/60_2family_dynamic_outside_calc/tiramisu/base.py b/tests/dictionaries/60_2family_dynamic_outside_calc/tiramisu/base.py index f4ea15fdc..4d88ac21e 100644 --- a/tests/dictionaries/60_2family_dynamic_outside_calc/tiramisu/base.py +++ b/tests/dictionaries/60_2family_dynamic_outside_calc/tiramisu/base.py @@ -14,6 +14,6 @@ dict_env['default_rougail.newvar'] = "{{ _.dynval1.var }}\n" option_2 = StrOption(name="var1", doc="a suffx variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_4 = StrOption(name="var", doc="a dynamic variable", default="val", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_4], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var1'}) -option_5 = StrOption(name="newvar", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_outside_calc/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("rougail.newvar"), '_.dynval1.var': ParamDynOption(option_4, ["val1"], notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_5 = StrOption(name="newvar", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_outside_calc/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("rougail.newvar"), '_.dynval1.var': ParamDynOption(option_4, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3, option_5], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_2family_dynamic_outside_calc/tiramisu/multi.py b/tests/dictionaries/60_2family_dynamic_outside_calc/tiramisu/multi.py index 29b3bc3b0..b78440c5e 100644 --- a/tests/dictionaries/60_2family_dynamic_outside_calc/tiramisu/multi.py +++ b/tests/dictionaries/60_2family_dynamic_outside_calc/tiramisu/multi.py @@ -15,13 +15,13 @@ dict_env['default_2.rougail.newvar'] = "{{ _.dynval1.var }}\n" option_3 = StrOption(name="var1", doc="a suffx variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_5 = StrOption(name="var", doc="a dynamic variable", default="val", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_5], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.rougail.var1'}) -option_6 = StrOption(name="newvar", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_outside_calc/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("1.rougail.newvar"), '_.dynval1.var': ParamDynOption(option_5, ["val1"], notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_6 = StrOption(name="newvar", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_outside_calc/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("1.rougail.newvar"), '_.dynval1.var': ParamDynOption(option_5, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4, option_6], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_9 = StrOption(name="var1", doc="a suffx variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_11 = StrOption(name="var", doc="a dynamic variable", default="val", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_10 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_9)))), children=[option_11], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.rougail.var1'}) -option_12 = StrOption(name="newvar", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_outside_calc/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("2.rougail.newvar"), '_.dynval1.var': ParamDynOption(option_11, ["val1"], notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_12 = StrOption(name="newvar", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_outside_calc/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("2.rougail.newvar"), '_.dynval1.var': ParamDynOption(option_11, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_9, optiondescription_10, option_12], properties=frozenset({"standard"})) optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7]) diff --git a/tests/dictionaries/60_2family_dynamic_outside_calc/tiramisu/no_namespace.py b/tests/dictionaries/60_2family_dynamic_outside_calc/tiramisu/no_namespace.py index 25edfe177..e6b3d227e 100644 --- a/tests/dictionaries/60_2family_dynamic_outside_calc/tiramisu/no_namespace.py +++ b/tests/dictionaries/60_2family_dynamic_outside_calc/tiramisu/no_namespace.py @@ -10,5 +10,5 @@ dict_env['default_newvar'] = "{{ _.dynval1.var }}\n" option_1 = StrOption(name="var1", doc="a suffx variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_3 = StrOption(name="var", doc="a dynamic variable", default="val", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_2 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_1)))), children=[option_3], properties=frozenset({"standard"}), informations={'dynamic_variable': 'var1'}) -option_4 = StrOption(name="newvar", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_outside_calc/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("newvar"), '_.dynval1.var': ParamDynOption(option_3, ["val1"], notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_4 = StrOption(name="newvar", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_outside_calc/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("newvar"), '_.dynval1.var': ParamDynOption(option_3, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, optiondescription_2, option_4]) diff --git a/tests/dictionaries/60_2family_dynamic_outside_calc_empty/__init__.py b/tests/dictionaries/60_2family_dynamic_outside_calc_empty/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_2family_dynamic_outside_calc_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_2family_dynamic_outside_calc_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..1ec6690b4 --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_outside_calc_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,23 @@ +--- +version: '1.1' +var1: + description: a suffx variable + multi: true + mandatory: false + test: + - val1 + - val2 +"dyn{{ identifier }}": + description: a dynamic family + dynamic: + variable: _.var1 + var: val # a dynamic variable +newvar: + description: a second variable + mandatory: false + default: + jinja: | + {% if _.dynval1 is defined %} + {{ _.dynval1.var }} + {% endif %} + description: the value of var diff --git a/tests/dictionaries/60_2family_dynamic_outside_calc_empty/makedict/after.json b/tests/dictionaries/60_2family_dynamic_outside_calc_empty/makedict/after.json new file mode 100644 index 000000000..19f12898c --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_outside_calc_empty/makedict/after.json @@ -0,0 +1,10 @@ +{ + "rougail.var1": { + "owner": "default", + "value": [] + }, + "rougail.newvar": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/60_2family_dynamic_outside_calc_empty/makedict/base.json b/tests/dictionaries/60_2family_dynamic_outside_calc_empty/makedict/base.json new file mode 100644 index 000000000..5dbbc8de5 --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_outside_calc_empty/makedict/base.json @@ -0,0 +1,4 @@ +{ + "rougail.var1": [], + "rougail.newvar": null +} diff --git a/tests/dictionaries/60_2family_dynamic_outside_calc_empty/makedict/before.json b/tests/dictionaries/60_2family_dynamic_outside_calc_empty/makedict/before.json new file mode 100644 index 000000000..19f12898c --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_outside_calc_empty/makedict/before.json @@ -0,0 +1,10 @@ +{ + "rougail.var1": { + "owner": "default", + "value": [] + }, + "rougail.newvar": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/60_2family_dynamic_outside_calc_empty/makedict/mandatory.json b/tests/dictionaries/60_2family_dynamic_outside_calc_empty/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_outside_calc_empty/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/60_2family_dynamic_outside_calc_empty/tiramisu/base.py b/tests/dictionaries/60_2family_dynamic_outside_calc_empty/tiramisu/base.py new file mode 100644 index 000000000..dae623193 --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_outside_calc_empty/tiramisu/base.py @@ -0,0 +1,19 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_rougail.newvar'] = "{% if _.dynval1 is defined %}\n{{ _.dynval1.var }}\n{% endif %}\n" +option_2 = StrOption(name="var1", doc="a suffx variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_4 = StrOption(name="var", doc="a dynamic variable", default="val", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_4], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var1'}) +option_5 = StrOption(name="newvar", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_outside_calc_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("rougail.newvar"), '_.dynval1.var': ParamDynOption(option_4, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3, option_5], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_2family_dynamic_outside_calc_empty/tiramisu/multi.py b/tests/dictionaries/60_2family_dynamic_outside_calc_empty/tiramisu/multi.py new file mode 100644 index 000000000..f4e2ba59e --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_outside_calc_empty/tiramisu/multi.py @@ -0,0 +1,27 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_1.rougail.newvar'] = "{% if _.dynval1 is defined %}\n{{ _.dynval1.var }}\n{% endif %}\n" +dict_env['default_2.rougail.newvar'] = "{% if _.dynval1 is defined %}\n{{ _.dynval1.var }}\n{% endif %}\n" +option_3 = StrOption(name="var1", doc="a suffx variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_5 = StrOption(name="var", doc="a dynamic variable", default="val", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_5], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.rougail.var1'}) +option_6 = StrOption(name="newvar", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_outside_calc_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("1.rougail.newvar"), '_.dynval1.var': ParamDynOption(option_5, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4, option_6], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_9 = StrOption(name="var1", doc="a suffx variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_11 = StrOption(name="var", doc="a dynamic variable", default="val", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_10 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_9)))), children=[option_11], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.rougail.var1'}) +option_12 = StrOption(name="newvar", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_outside_calc_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("2.rougail.newvar"), '_.dynval1.var': ParamDynOption(option_11, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_9, optiondescription_10, option_12], properties=frozenset({"standard"})) +optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7]) diff --git a/tests/dictionaries/60_2family_dynamic_outside_calc_empty/tiramisu/no_namespace.py b/tests/dictionaries/60_2family_dynamic_outside_calc_empty/tiramisu/no_namespace.py new file mode 100644 index 000000000..f4ac472a2 --- /dev/null +++ b/tests/dictionaries/60_2family_dynamic_outside_calc_empty/tiramisu/no_namespace.py @@ -0,0 +1,14 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_newvar'] = "{% if _.dynval1 is defined %}\n{{ _.dynval1.var }}\n{% endif %}\n" +option_1 = StrOption(name="var1", doc="a suffx variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_3 = StrOption(name="var", doc="a dynamic variable", default="val", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_2 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_1)))), children=[option_3], properties=frozenset({"standard"}), informations={'dynamic_variable': 'var1'}) +option_4 = StrOption(name="newvar", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_2family_dynamic_outside_calc_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("newvar"), '_.dynval1.var': ParamDynOption(option_3, ["val1"], optional=True, notraisepropertyerror=True)})), properties=frozenset({"standard"}), informations={'type': 'string'}) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, optiondescription_2, option_4]) diff --git a/tests/dictionaries/60_5family_dynamic_calc2_empty/__init__.py b/tests/dictionaries/60_5family_dynamic_calc2_empty/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_5family_dynamic_calc2_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_5family_dynamic_calc2_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..5289faf64 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc2_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,25 @@ +--- +version: '1.1' + +var: + description: A suffix variable + multi: true + mandatory: false + test: + - val1 + - val2 + +var2: # a second variable + +"dyn{{ identifier }}": + description: A dynamic family + dynamic: + variable: _.var + hidden: + jinja: | + {% if _.var2 == "no" %} + var2 is no + {% endif %} + description: if var2 is no + + vardyn: val # a dynamic variable diff --git a/tests/dictionaries/60_5family_dynamic_calc2_empty/force_namespace b/tests/dictionaries/60_5family_dynamic_calc2_empty/force_namespace new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_5family_dynamic_calc2_empty/makedict/after.json b/tests/dictionaries/60_5family_dynamic_calc2_empty/makedict/after.json new file mode 100644 index 000000000..1e7f5d7ff --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc2_empty/makedict/after.json @@ -0,0 +1,10 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + }, + "rougail.var2": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/60_5family_dynamic_calc2_empty/makedict/base.json b/tests/dictionaries/60_5family_dynamic_calc2_empty/makedict/base.json new file mode 100644 index 000000000..cd9083c3d --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc2_empty/makedict/base.json @@ -0,0 +1,4 @@ +{ + "rougail.var": [], + "rougail.var2": null +} diff --git a/tests/dictionaries/60_5family_dynamic_calc2_empty/makedict/before.json b/tests/dictionaries/60_5family_dynamic_calc2_empty/makedict/before.json new file mode 100644 index 000000000..1e7f5d7ff --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc2_empty/makedict/before.json @@ -0,0 +1,10 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + }, + "rougail.var2": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/60_5family_dynamic_calc2_empty/makedict/mandatory.json b/tests/dictionaries/60_5family_dynamic_calc2_empty/makedict/mandatory.json new file mode 100644 index 000000000..4fb69ce52 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc2_empty/makedict/mandatory.json @@ -0,0 +1 @@ +["rougail.var2"] \ No newline at end of file diff --git a/tests/dictionaries/60_5family_dynamic_calc2_empty/tiramisu/base.py b/tests/dictionaries/60_5family_dynamic_calc2_empty/tiramisu/base.py new file mode 100644 index 000000000..9a72452d1 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc2_empty/tiramisu/base.py @@ -0,0 +1,20 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['frozen_rougail.dyn{{ identifier }}.vardyn'] = "{% if _.var2 == \"no\" %}\nvar2 is no\n{% endif %}\n" +dict_env['hidden_rougail.dyn{{ identifier }}'] = "{% if _.var2 == \"no\" %}\nvar2 is no\n{% endif %}\n" +option_2 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_3 = StrOption(name="var2", doc="a second variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +option_5 = StrOption(name="vardyn", doc="a dynamic variable", default="val", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.dyn{{ identifier }}.vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_5family_dynamic_calc2_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("frozen"), '__internal_variable': ParamValue("rougail.dyn{{ identifier }}.vardyn"), 'when': ParamValue(True), 'inverse': ParamValue(False), '_.var2': ParamOption(option_3, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}), informations={'type': 'string'}) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_5], properties=frozenset({"standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.dyn{{ identifier }}"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_5family_dynamic_calc2_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("hidden"), '__internal_variable': ParamValue("rougail.dyn{{ identifier }}"), 'when': ParamValue(True), 'inverse': ParamValue(False), '_.var2': ParamOption(option_3, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}), informations={'dynamic_variable': 'rougail.var'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, option_3, optiondescription_4], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_5family_dynamic_calc2_empty/tiramisu/multi.py b/tests/dictionaries/60_5family_dynamic_calc2_empty/tiramisu/multi.py new file mode 100644 index 000000000..0eb8e16a9 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc2_empty/tiramisu/multi.py @@ -0,0 +1,29 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['frozen_1.rougail.dyn{{ identifier }}.vardyn'] = "{% if _.var2 == \"no\" %}\nvar2 is no\n{% endif %}\n" +dict_env['hidden_1.rougail.dyn{{ identifier }}'] = "{% if _.var2 == \"no\" %}\nvar2 is no\n{% endif %}\n" +dict_env['frozen_2.rougail.dyn{{ identifier }}.vardyn'] = "{% if _.var2 == \"no\" %}\nvar2 is no\n{% endif %}\n" +dict_env['hidden_2.rougail.dyn{{ identifier }}'] = "{% if _.var2 == \"no\" %}\nvar2 is no\n{% endif %}\n" +option_3 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_4 = StrOption(name="var2", doc="a second variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +option_6 = StrOption(name="vardyn", doc="a dynamic variable", default="val", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.dyn{{ identifier }}.vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_5family_dynamic_calc2_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("frozen"), '__internal_variable': ParamValue("1.rougail.dyn{{ identifier }}.vardyn"), 'when': ParamValue(True), 'inverse': ParamValue(False), '_.var2': ParamOption(option_4, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}), informations={'type': 'string'}) +optiondescription_5 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_6], properties=frozenset({"standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.dyn{{ identifier }}"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_5family_dynamic_calc2_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("hidden"), '__internal_variable': ParamValue("1.rougail.dyn{{ identifier }}"), 'when': ParamValue(True), 'inverse': ParamValue(False), '_.var2': ParamOption(option_4, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}), informations={'dynamic_variable': '1.rougail.var'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, option_4, optiondescription_5], properties=frozenset({"basic"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) +option_9 = StrOption(name="var", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_10 = StrOption(name="var2", doc="a second variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +option_12 = StrOption(name="vardyn", doc="a dynamic variable", default="val", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.dyn{{ identifier }}.vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_5family_dynamic_calc2_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("frozen"), '__internal_variable': ParamValue("2.rougail.dyn{{ identifier }}.vardyn"), 'when': ParamValue(True), 'inverse': ParamValue(False), '_.var2': ParamOption(option_10, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}), informations={'type': 'string'}) +optiondescription_11 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_9)))), children=[option_12], properties=frozenset({"standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.dyn{{ identifier }}"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_5family_dynamic_calc2_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("hidden"), '__internal_variable': ParamValue("2.rougail.dyn{{ identifier }}"), 'when': ParamValue(True), 'inverse': ParamValue(False), '_.var2': ParamOption(option_10, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}), informations={'dynamic_variable': '2.rougail.var'}) +optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_9, option_10, optiondescription_11], properties=frozenset({"basic"})) +optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7]) diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/__init__.py b/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..a02c68246 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,17 @@ +--- +version: '1.1' +var: + description: a suffix variable + multi: true + mandatory: false + test: + - val1 + - val2 +"dyn{{ identifier }}": + description: a dynamic family + dynamic: + variable: _.var + var: + description: Suffix has value + default: + type: identifier diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/makedict/after.json b/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/makedict/after.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/makedict/after.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/makedict/base.json b/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/makedict/base.json new file mode 100644 index 000000000..a132f4593 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/makedict/base.json @@ -0,0 +1,3 @@ +{ + "rougail.var": [] +} diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/makedict/before.json b/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/makedict/before.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/makedict/before.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/makedict/mandatory.json b/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/tiramisu/base.py b/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/tiramisu/base.py new file mode 100644 index 000000000..dd8f61046 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/tiramisu/base.py @@ -0,0 +1,17 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_2 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_4 = StrOption(name="var", doc="Suffix has value", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_4], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/tiramisu/multi.py b/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/tiramisu/multi.py new file mode 100644 index 000000000..23837e848 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/tiramisu/multi.py @@ -0,0 +1,23 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_5 = StrOption(name="var", doc="Suffix has value", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_5], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.rougail.var'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_8 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_10 = StrOption(name="var", doc="Suffix has value", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_9 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_8)))), children=[option_10], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.rougail.var'}) +optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_8, optiondescription_9], properties=frozenset({"standard"})) +optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6]) diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/tiramisu/no_namespace.py b/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/tiramisu/no_namespace.py new file mode 100644 index 000000000..4c7efeabb --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix2_empty/tiramisu/no_namespace.py @@ -0,0 +1,12 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_1 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_3 = StrOption(name="var", doc="Suffix has value", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_2 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_1)))), children=[option_3], properties=frozenset({"standard"}), informations={'dynamic_variable': 'var'}) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, optiondescription_2]) diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/__init__.py b/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..dcfdfa888 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,23 @@ +--- +version: '1.1' + +var1: + description: A suffix variable + multi: true + mandatory: false + test: + - val1 + - val2 + +"dyn{{ identifier }}": + dynamic: + variable: _.var1 + + var: + description: A dynamic variable + +var2: + description: A variable calculated + default: + variable: rougail.dynval1.var + optional: true diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/force_namespace b/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/force_namespace new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/makedict/after.json b/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/makedict/after.json new file mode 100644 index 000000000..fec8f4dc2 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/makedict/after.json @@ -0,0 +1,10 @@ +{ + "rougail.var1": { + "owner": "default", + "value": [] + }, + "rougail.var2": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/makedict/base.json b/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/makedict/base.json new file mode 100644 index 000000000..a20d18a3f --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/makedict/base.json @@ -0,0 +1,4 @@ +{ + "rougail.var1": [], + "rougail.var2": null +} diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/makedict/before.json b/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/makedict/before.json new file mode 100644 index 000000000..fec8f4dc2 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/makedict/before.json @@ -0,0 +1,10 @@ +{ + "rougail.var1": { + "owner": "default", + "value": [] + }, + "rougail.var2": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/makedict/mandatory.json b/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/makedict/mandatory.json new file mode 100644 index 000000000..4fb69ce52 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/makedict/mandatory.json @@ -0,0 +1 @@ +["rougail.var2"] \ No newline at end of file diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/tiramisu/base.py b/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/tiramisu/base.py new file mode 100644 index 000000000..b58ed8cbc --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/tiramisu/base.py @@ -0,0 +1,18 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_2 = StrOption(name="var1", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_4 = StrOption(name="var", doc="A dynamic variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="dyn{{ identifier }}", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_4], properties=frozenset({"basic"}), informations={'dynamic_variable': 'rougail.var1'}) +option_5 = StrOption(name="var2", doc="A variable calculated", default=Calculation(func['calc_value'], Params((ParamDynOption(option_4, ["val1"], optional=True)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3, option_5], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/tiramisu/multi.py b/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/tiramisu/multi.py new file mode 100644 index 000000000..17c73c74e --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix_empty/tiramisu/multi.py @@ -0,0 +1,25 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="var1", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_5 = StrOption(name="var", doc="A dynamic variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="dyn{{ identifier }}", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_5], properties=frozenset({"basic"}), informations={'dynamic_variable': '1.rougail.var1'}) +option_6 = StrOption(name="var2", doc="A variable calculated", default=Calculation(func['calc_value'], Params((ParamDynOption(option_5, ["val1"], optional=True)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4, option_6], properties=frozenset({"basic"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) +option_9 = StrOption(name="var1", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_11 = StrOption(name="var", doc="A dynamic variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_10 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="dyn{{ identifier }}", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_9)))), children=[option_11], properties=frozenset({"basic"}), informations={'dynamic_variable': '2.rougail.var1'}) +option_12 = StrOption(name="var2", doc="A variable calculated", default=Calculation(func['calc_value'], Params((ParamDynOption(option_11, ["val1"], optional=True)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_9, optiondescription_10, option_12], properties=frozenset({"basic"})) +optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7]) diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/__init__.py b/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..a3471cbc0 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,22 @@ +--- +version: '1.1' +var: + description: A identifier variable + multi: true + mandatory: false + test: + - val1 + - val2 +"dyn{{ identifier }}": + description: A dynamic family + dynamic: + variable: _.var + var: + description: A dynamic variable + default: + jinja: | + {{ identifier }} + params: + identifier: + type: identifier + description: from suffix diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/makedict/after.json b/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/makedict/after.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/makedict/after.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/makedict/base.json b/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/makedict/base.json new file mode 100644 index 000000000..a132f4593 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/makedict/base.json @@ -0,0 +1,3 @@ +{ + "rougail.var": [] +} diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/makedict/before.json b/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/makedict/before.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/makedict/before.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/makedict/mandatory.json b/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/tiramisu/base.py b/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/tiramisu/base.py new file mode 100644 index 000000000..44da9a3c0 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/tiramisu/base.py @@ -0,0 +1,18 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_rougail.dyn{{ identifier }}.var'] = "{{ identifier }}\n" +option_2 = StrOption(name="var", doc="A identifier variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_4 = StrOption(name="var", doc="A dynamic variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.dyn{{ identifier }}.var"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("rougail.dyn{{ identifier }}.var"), 'identifier': ParamIdentifier()})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_4], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/tiramisu/multi.py b/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/tiramisu/multi.py new file mode 100644 index 000000000..3bbecf78c --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/tiramisu/multi.py @@ -0,0 +1,25 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_1.rougail.dyn{{ identifier }}.var'] = "{{ identifier }}\n" +dict_env['default_2.rougail.dyn{{ identifier }}.var'] = "{{ identifier }}\n" +option_3 = StrOption(name="var", doc="A identifier variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_5 = StrOption(name="var", doc="A dynamic variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.dyn{{ identifier }}.var"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("1.rougail.dyn{{ identifier }}.var"), 'identifier': ParamIdentifier()})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_5], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.rougail.var'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_8 = StrOption(name="var", doc="A identifier variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_10 = StrOption(name="var", doc="A dynamic variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.dyn{{ identifier }}.var"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("2.rougail.dyn{{ identifier }}.var"), 'identifier': ParamIdentifier()})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_9 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_8)))), children=[option_10], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.rougail.var'}) +optiondescription_7 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_8, optiondescription_9], properties=frozenset({"standard"})) +optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6]) diff --git a/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/tiramisu/no_namespace.py b/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/tiramisu/no_namespace.py new file mode 100644 index 000000000..3ebbd92e4 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/tiramisu/no_namespace.py @@ -0,0 +1,13 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_dyn{{ identifier }}.var'] = "{{ identifier }}\n" +option_1 = StrOption(name="var", doc="A identifier variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_3 = StrOption(name="var", doc="A dynamic variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_dyn{{ identifier }}.var"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_5family_dynamic_calc_suffix_param_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("dyn{{ identifier }}.var"), 'identifier': ParamIdentifier()})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_2 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_1)))), children=[option_3], properties=frozenset({"standard"}), informations={'dynamic_variable': 'var'}) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, optiondescription_2]) diff --git a/tests/dictionaries/60_5family_dynamic_calc_variable_empty/__init__.py b/tests/dictionaries/60_5family_dynamic_calc_variable_empty/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_5family_dynamic_calc_variable_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_5family_dynamic_calc_variable_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..9f9d953fb --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_variable_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,20 @@ +--- +version: '1.1' +var1: + description: A suffix variable + multi: true + mandatory: false + test: + - val1 + - val2 +"dyn{{ identifier }}": + dynamic: + variable: _.var1 + propertyerror: false + var: + description: A dynamic variable +var2: + description: A variable calculated + default: + variable: _.dynval1.var + optional: true diff --git a/tests/dictionaries/60_5family_dynamic_calc_variable_empty/makedict/after.json b/tests/dictionaries/60_5family_dynamic_calc_variable_empty/makedict/after.json new file mode 100644 index 000000000..fec8f4dc2 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_variable_empty/makedict/after.json @@ -0,0 +1,10 @@ +{ + "rougail.var1": { + "owner": "default", + "value": [] + }, + "rougail.var2": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/60_5family_dynamic_calc_variable_empty/makedict/base.json b/tests/dictionaries/60_5family_dynamic_calc_variable_empty/makedict/base.json new file mode 100644 index 000000000..a20d18a3f --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_variable_empty/makedict/base.json @@ -0,0 +1,4 @@ +{ + "rougail.var1": [], + "rougail.var2": null +} diff --git a/tests/dictionaries/60_5family_dynamic_calc_variable_empty/makedict/before.json b/tests/dictionaries/60_5family_dynamic_calc_variable_empty/makedict/before.json new file mode 100644 index 000000000..fec8f4dc2 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_variable_empty/makedict/before.json @@ -0,0 +1,10 @@ +{ + "rougail.var1": { + "owner": "default", + "value": [] + }, + "rougail.var2": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/60_5family_dynamic_calc_variable_empty/makedict/mandatory.json b/tests/dictionaries/60_5family_dynamic_calc_variable_empty/makedict/mandatory.json new file mode 100644 index 000000000..4fb69ce52 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_variable_empty/makedict/mandatory.json @@ -0,0 +1 @@ +["rougail.var2"] \ No newline at end of file diff --git a/tests/dictionaries/60_5family_dynamic_calc_variable_empty/tiramisu/base.py b/tests/dictionaries/60_5family_dynamic_calc_variable_empty/tiramisu/base.py new file mode 100644 index 000000000..84ca49d88 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_variable_empty/tiramisu/base.py @@ -0,0 +1,18 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_2 = StrOption(name="var1", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_4 = StrOption(name="var", doc="A dynamic variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="dyn{{ identifier }}", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"basic"}), informations={'dynamic_variable': 'rougail.var1'}) +option_5 = StrOption(name="var2", doc="A variable calculated", default=Calculation(func['calc_value'], Params((ParamDynOption(option_4, ["val1"], optional=True)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3, option_5], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_5family_dynamic_calc_variable_empty/tiramisu/multi.py b/tests/dictionaries/60_5family_dynamic_calc_variable_empty/tiramisu/multi.py new file mode 100644 index 000000000..946c928f1 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_variable_empty/tiramisu/multi.py @@ -0,0 +1,25 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="var1", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_5 = StrOption(name="var", doc="A dynamic variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="dyn{{ identifier }}", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"basic"}), informations={'dynamic_variable': '1.rougail.var1'}) +option_6 = StrOption(name="var2", doc="A variable calculated", default=Calculation(func['calc_value'], Params((ParamDynOption(option_5, ["val1"], optional=True)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4, option_6], properties=frozenset({"basic"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) +option_9 = StrOption(name="var1", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_11 = StrOption(name="var", doc="A dynamic variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_10 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="dyn{{ identifier }}", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_9, notraisepropertyerror=True)))), children=[option_11], properties=frozenset({"basic"}), informations={'dynamic_variable': '2.rougail.var1'}) +option_12 = StrOption(name="var2", doc="A variable calculated", default=Calculation(func['calc_value'], Params((ParamDynOption(option_11, ["val1"], optional=True)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_9, optiondescription_10, option_12], properties=frozenset({"basic"})) +optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7]) diff --git a/tests/dictionaries/60_5family_dynamic_calc_variable_empty/tiramisu/no_namespace.py b/tests/dictionaries/60_5family_dynamic_calc_variable_empty/tiramisu/no_namespace.py new file mode 100644 index 000000000..3f6b91d3a --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_calc_variable_empty/tiramisu/no_namespace.py @@ -0,0 +1,13 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_1 = StrOption(name="var1", doc="A suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_3 = StrOption(name="var", doc="A dynamic variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_2 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="dyn{{ identifier }}", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_1, notraisepropertyerror=True)))), children=[option_3], properties=frozenset({"basic"}), informations={'dynamic_variable': 'var1'}) +option_4 = StrOption(name="var2", doc="A variable calculated", default=Calculation(func['calc_value'], Params((ParamDynOption(option_3, ["val1"], optional=True)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, optiondescription_2, option_4]) diff --git a/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/__init__.py b/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..1c828eae7 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,41 @@ +--- +version: '1.1' +var: + description: a suffix variable + multi: true + mandatory: false + test: + - val1 + - val2 + - val3 + - val4 + +"{{ identifier }}_dyn": + description: a dynamic family + dynamic: + variable: _.var + + var1: + description: a variable 1 + default: + type: identifier + + var2: + description: a variable 2 + default: + variable: rougail.{{ identifier }}_dyn.var1 + + var3: + description: a variable 3 + default: + variable: _.var1 + + var4: + description: a variable 4 + default: + variable: rougail.val4_dyn.var1 + disabled: + jinja: | + {% if 'val4' not in __.var %} + val4 is not a valid value + {% endif %} diff --git a/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/force_namespace b/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/force_namespace new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/makedict/after.json b/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/makedict/after.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/makedict/after.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/makedict/base.json b/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/makedict/base.json new file mode 100644 index 000000000..a132f4593 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/makedict/base.json @@ -0,0 +1,3 @@ +{ + "rougail.var": [] +} diff --git a/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/makedict/before.json b/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/makedict/before.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/makedict/before.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/makedict/mandatory.json b/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/tiramisu/base.py b/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/tiramisu/base.py new file mode 100644 index 000000000..1d348bef9 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/tiramisu/base.py @@ -0,0 +1,21 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['disabled_rougail.{{ identifier }}_dyn.var4'] = "{% if 'val4' not in __.var %}\nval4 is not a valid value\n{% endif %}\n" +option_2 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2', 'val3', 'val4')}) +option_4 = StrOption(name="var1", doc="a variable 1", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_5 = StrOption(name="var2", doc="a variable 2", default=Calculation(func['calc_value'], Params((ParamOption(option_4)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_6 = StrOption(name="var3", doc="a variable 3", default=Calculation(func['calc_value'], Params((ParamOption(option_4)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_7 = StrOption(name="var4", doc="a variable 4", default=Calculation(func['calc_value'], Params((ParamDynOption(option_4, ["val4"])))), properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.{{ identifier }}_dyn.var4"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("disabled"), '__internal_variable': ParamValue("rougail.{{ identifier }}_dyn.var4"), 'when': ParamValue(True), 'inverse': ParamValue(False), '__.var': ParamOption(option_2, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}), informations={'type': 'string'}) +optiondescription_3 = ConvertDynOptionDescription(name="{{ identifier }}_dyn", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_4, option_5, option_6, option_7], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/tiramisu/multi.py b/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/tiramisu/multi.py new file mode 100644 index 000000000..db23ca771 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/tiramisu/multi.py @@ -0,0 +1,31 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['disabled_1.rougail.{{ identifier }}_dyn.var4'] = "{% if 'val4' not in __.var %}\nval4 is not a valid value\n{% endif %}\n" +dict_env['disabled_2.rougail.{{ identifier }}_dyn.var4'] = "{% if 'val4' not in __.var %}\nval4 is not a valid value\n{% endif %}\n" +option_3 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2', 'val3', 'val4')}) +option_5 = StrOption(name="var1", doc="a variable 1", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_6 = StrOption(name="var2", doc="a variable 2", default=Calculation(func['calc_value'], Params((ParamOption(option_5)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_7 = StrOption(name="var3", doc="a variable 3", default=Calculation(func['calc_value'], Params((ParamOption(option_5)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_8 = StrOption(name="var4", doc="a variable 4", default=Calculation(func['calc_value'], Params((ParamDynOption(option_5, ["val4"])))), properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.{{ identifier }}_dyn.var4"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("disabled"), '__internal_variable': ParamValue("1.rougail.{{ identifier }}_dyn.var4"), 'when': ParamValue(True), 'inverse': ParamValue(False), '__.var': ParamOption(option_3, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}), informations={'type': 'string'}) +optiondescription_4 = ConvertDynOptionDescription(name="{{ identifier }}_dyn", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_5, option_6, option_7, option_8], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.rougail.var'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_11 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2', 'val3', 'val4')}) +option_13 = StrOption(name="var1", doc="a variable 1", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_14 = StrOption(name="var2", doc="a variable 2", default=Calculation(func['calc_value'], Params((ParamOption(option_13)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_15 = StrOption(name="var3", doc="a variable 3", default=Calculation(func['calc_value'], Params((ParamOption(option_13)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_16 = StrOption(name="var4", doc="a variable 4", default=Calculation(func['calc_value'], Params((ParamDynOption(option_13, ["val4"])))), properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.rougail.{{ identifier }}_dyn.var4"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_5family_dynamic_unknown_suffix_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("disabled"), '__internal_variable': ParamValue("2.rougail.{{ identifier }}_dyn.var4"), 'when': ParamValue(True), 'inverse': ParamValue(False), '__.var': ParamOption(option_11, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}), informations={'type': 'string'}) +optiondescription_12 = ConvertDynOptionDescription(name="{{ identifier }}_dyn", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_11)))), children=[option_13, option_14, option_15, option_16], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.rougail.var'}) +optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_11, optiondescription_12], properties=frozenset({"standard"})) +optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9]) diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside/tiramisu/base.py b/tests/dictionaries/60_5family_dynamic_variable_outside/tiramisu/base.py index afc68e259..b77b62a1c 100644 --- a/tests/dictionaries/60_5family_dynamic_variable_outside/tiramisu/base.py +++ b/tests/dictionaries/60_5family_dynamic_variable_outside/tiramisu/base.py @@ -13,6 +13,6 @@ ALLOWED_LEADER_PROPERTIES.add("advanced") option_2 = StrOption(name="var", doc="a suffix variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_4 = StrOption(name="var", doc="a variable inside a dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"standard"}), informations={'type': 'string'}) optiondescription_3 = ConvertDynOptionDescription(name="my_dyn_family_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_4], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var'}) -option_5 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_4)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_5 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_4)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3, option_5], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside/tiramisu/multi.py b/tests/dictionaries/60_5family_dynamic_variable_outside/tiramisu/multi.py index a488669d8..35f245a18 100644 --- a/tests/dictionaries/60_5family_dynamic_variable_outside/tiramisu/multi.py +++ b/tests/dictionaries/60_5family_dynamic_variable_outside/tiramisu/multi.py @@ -13,13 +13,13 @@ ALLOWED_LEADER_PROPERTIES.add("advanced") option_3 = StrOption(name="var", doc="a suffix variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_5 = StrOption(name="var", doc="a variable inside a dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"standard"}), informations={'type': 'string'}) optiondescription_4 = ConvertDynOptionDescription(name="my_dyn_family_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_5], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.rougail.var'}) -option_6 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_5)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_6 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_5)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4, option_6], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_9 = StrOption(name="var", doc="a suffix variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_11 = StrOption(name="var", doc="a variable inside a dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"standard"}), informations={'type': 'string'}) optiondescription_10 = ConvertDynOptionDescription(name="my_dyn_family_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_9)))), children=[option_11], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.rougail.var'}) -option_12 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_11)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_12 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_11)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_9, optiondescription_10, option_12], properties=frozenset({"standard"})) optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7]) diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside2/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_5family_dynamic_variable_outside2/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..4713f6c8d --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside2/dictionaries/rougail/00-base.yml @@ -0,0 +1,23 @@ +--- +version: '1.1' + +var2: + description: a variable + multi: true + default: + variable: "rougail.my_dyn_family_{{ identifier }}.var" + +var: # a suffix variable + - val1 + - val2 + +"my_dyn_family_{{ identifier }}": + description: a dynamic family + dynamic: + variable: _.var + + var: + description: a variable inside a dynamic family + default: + type: identifier + mandatory: false diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside2/force_namespace b/tests/dictionaries/60_5family_dynamic_variable_outside2/force_namespace new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside2/makedict/after.json b/tests/dictionaries/60_5family_dynamic_variable_outside2/makedict/after.json new file mode 100644 index 000000000..498679c17 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside2/makedict/after.json @@ -0,0 +1,24 @@ +{ + "rougail.var2": { + "owner": "default", + "value": [ + "val1", + "val2" + ] + }, + "rougail.var": { + "owner": "default", + "value": [ + "val1", + "val2" + ] + }, + "rougail.my_dyn_family_val1.var": { + "owner": "default", + "value": "val1" + }, + "rougail.my_dyn_family_val2.var": { + "owner": "default", + "value": "val2" + } +} diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside2/makedict/base.json b/tests/dictionaries/60_5family_dynamic_variable_outside2/makedict/base.json new file mode 100644 index 000000000..26d5f93e7 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside2/makedict/base.json @@ -0,0 +1,12 @@ +{ + "rougail.var2": [ + "val1", + "val2" + ], + "rougail.var": [ + "val1", + "val2" + ], + "rougail.my_dyn_family_val1.var": "val1", + "rougail.my_dyn_family_val2.var": "val2" +} diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside2/makedict/before.json b/tests/dictionaries/60_5family_dynamic_variable_outside2/makedict/before.json new file mode 100644 index 000000000..498679c17 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside2/makedict/before.json @@ -0,0 +1,24 @@ +{ + "rougail.var2": { + "owner": "default", + "value": [ + "val1", + "val2" + ] + }, + "rougail.var": { + "owner": "default", + "value": [ + "val1", + "val2" + ] + }, + "rougail.my_dyn_family_val1.var": { + "owner": "default", + "value": "val1" + }, + "rougail.my_dyn_family_val2.var": { + "owner": "default", + "value": "val2" + } +} diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside2/makedict/mandatory.json b/tests/dictionaries/60_5family_dynamic_variable_outside2/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside2/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside2/tiramisu/base.py b/tests/dictionaries/60_5family_dynamic_variable_outside2/tiramisu/base.py new file mode 100644 index 000000000..8f9f2ce7c --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside2/tiramisu/base.py @@ -0,0 +1,18 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_5 = StrOption(name="var", doc="a variable inside a dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"standard"}), informations={'type': 'string'}) +option_2 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_5)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_3 = StrOption(name="var", doc="a suffix variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_4 = ConvertDynOptionDescription(name="my_dyn_family_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_5], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, option_3, optiondescription_4], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside2/tiramisu/multi.py b/tests/dictionaries/60_5family_dynamic_variable_outside2/tiramisu/multi.py new file mode 100644 index 000000000..6ff32b28e --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside2/tiramisu/multi.py @@ -0,0 +1,25 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_6 = StrOption(name="var", doc="a variable inside a dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"standard"}), informations={'type': 'string'}) +option_3 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_6)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_4 = StrOption(name="var", doc="a suffix variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_5 = ConvertDynOptionDescription(name="my_dyn_family_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_4)))), children=[option_6], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.rougail.var'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, option_4, optiondescription_5], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_12 = StrOption(name="var", doc="a variable inside a dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"standard"}), informations={'type': 'string'}) +option_9 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_12)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_10 = StrOption(name="var", doc="a suffix variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_11 = ConvertDynOptionDescription(name="my_dyn_family_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_10)))), children=[option_12], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.rougail.var'}) +optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_9, option_10, optiondescription_11], properties=frozenset({"standard"})) +optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7]) diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..81167bc3a --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,27 @@ +--- +version: '1.1' + +var2: + description: a variable + multi: true + default: + variable: "rougail.my_dyn_family_{{ identifier }}.var" + +var: + description: a suffix variable + multi: true + mandatory: false + test: + - val1 + - val2 + +"my_dyn_family_{{ identifier }}": + description: a dynamic family + dynamic: + variable: _.var + + var: + description: a variable inside a dynamic family + default: + type: identifier + mandatory: false diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/force_namespace b/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/force_namespace new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/makedict/after.json b/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/makedict/after.json new file mode 100644 index 000000000..9999e57ab --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/makedict/after.json @@ -0,0 +1,10 @@ +{ + "rougail.var2": { + "owner": "default", + "value": [] + }, + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/makedict/base.json b/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/makedict/base.json new file mode 100644 index 000000000..9323db63f --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/makedict/base.json @@ -0,0 +1,4 @@ +{ + "rougail.var2": [], + "rougail.var": [] +} diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/makedict/before.json b/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/makedict/before.json new file mode 100644 index 000000000..9999e57ab --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/makedict/before.json @@ -0,0 +1,10 @@ +{ + "rougail.var2": { + "owner": "default", + "value": [] + }, + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/makedict/mandatory.json b/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/makedict/mandatory.json new file mode 100644 index 000000000..4fb69ce52 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/makedict/mandatory.json @@ -0,0 +1 @@ +["rougail.var2"] \ No newline at end of file diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/tiramisu/base.py b/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/tiramisu/base.py new file mode 100644 index 000000000..58559dfaf --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/tiramisu/base.py @@ -0,0 +1,18 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_5 = StrOption(name="var", doc="a variable inside a dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"standard"}), informations={'type': 'string'}) +option_2 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_5)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_3 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +optiondescription_4 = ConvertDynOptionDescription(name="my_dyn_family_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_5], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, option_3, optiondescription_4], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/tiramisu/multi.py b/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/tiramisu/multi.py new file mode 100644 index 000000000..8684ef107 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside2_empty/tiramisu/multi.py @@ -0,0 +1,25 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_6 = StrOption(name="var", doc="a variable inside a dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"standard"}), informations={'type': 'string'}) +option_3 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_6)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_4 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +optiondescription_5 = ConvertDynOptionDescription(name="my_dyn_family_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_4)))), children=[option_6], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.rougail.var'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, option_4, optiondescription_5], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_12 = StrOption(name="var", doc="a variable inside a dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"standard"}), informations={'type': 'string'}) +option_9 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_12)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_10 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +optiondescription_11 = ConvertDynOptionDescription(name="my_dyn_family_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_10)))), children=[option_12], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.rougail.var'}) +optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_9, option_10, optiondescription_11], properties=frozenset({"standard"})) +optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7]) diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_5family_dynamic_variable_outside_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..53c8653d3 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,25 @@ +--- +version: '1.1' + +var: + description: a suffix variable + multi: true + mandatory: false + test: + - val1 + - val2 + +"my_dyn_family_{{ identifier }}": + description: a dynamic family + dynamic: + variable: _.var + var: + description: a variable inside a dynamic family + default: + type: identifier + mandatory: false +var2: + description: a variable + multi: true + default: + variable: "rougail.my_dyn_family_{{ identifier }}.var" diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_empty/force_namespace b/tests/dictionaries/60_5family_dynamic_variable_outside_empty/force_namespace new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_empty/makedict/after.json b/tests/dictionaries/60_5family_dynamic_variable_outside_empty/makedict/after.json new file mode 100644 index 000000000..a67db444b --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_empty/makedict/after.json @@ -0,0 +1,10 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + }, + "rougail.var2": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_empty/makedict/base.json b/tests/dictionaries/60_5family_dynamic_variable_outside_empty/makedict/base.json new file mode 100644 index 000000000..287085aaf --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_empty/makedict/base.json @@ -0,0 +1,4 @@ +{ + "rougail.var": [], + "rougail.var2": [] +} diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_empty/makedict/before.json b/tests/dictionaries/60_5family_dynamic_variable_outside_empty/makedict/before.json new file mode 100644 index 000000000..a67db444b --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_empty/makedict/before.json @@ -0,0 +1,10 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + }, + "rougail.var2": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_empty/makedict/mandatory.json b/tests/dictionaries/60_5family_dynamic_variable_outside_empty/makedict/mandatory.json new file mode 100644 index 000000000..4fb69ce52 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_empty/makedict/mandatory.json @@ -0,0 +1 @@ +["rougail.var2"] \ No newline at end of file diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_empty/tiramisu/base.py b/tests/dictionaries/60_5family_dynamic_variable_outside_empty/tiramisu/base.py new file mode 100644 index 000000000..1f44635bd --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_empty/tiramisu/base.py @@ -0,0 +1,18 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_2 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_4 = StrOption(name="var", doc="a variable inside a dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_3 = ConvertDynOptionDescription(name="my_dyn_family_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_4], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var'}) +option_5 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_4)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3, option_5], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_empty/tiramisu/multi.py b/tests/dictionaries/60_5family_dynamic_variable_outside_empty/tiramisu/multi.py new file mode 100644 index 000000000..e465e95f1 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_empty/tiramisu/multi.py @@ -0,0 +1,25 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_5 = StrOption(name="var", doc="a variable inside a dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_4 = ConvertDynOptionDescription(name="my_dyn_family_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_5], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.rougail.var'}) +option_6 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_5)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4, option_6], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_9 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_11 = StrOption(name="var", doc="a variable inside a dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_10 = ConvertDynOptionDescription(name="my_dyn_family_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_9)))), children=[option_11], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.rougail.var'}) +option_12 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_11)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_9, optiondescription_10, option_12], properties=frozenset({"standard"})) +optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7]) diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..e34a219f8 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,32 @@ +--- +version: '1.1' + +var: + description: a suffix variable + multi: true + mandatory: false + test: + - val1 + - val2 + +"my_dyn_family_{{ identifier }}": + description: a dynamic family + dynamic: + variable: _.var + var: + description: a variable inside a dynamic family + default: + type: identifier + mandatory: false + +var2: + description: a variable + multi: true + default: + jinja: |- + {%- for v in var %} + {{ v }} + {%- endfor -%} + params: + var: + variable: rougail.my_dyn_family_{{ identifier }}.var diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/force_namespace b/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/force_namespace new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/makedict/after.json b/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/makedict/after.json new file mode 100644 index 000000000..a67db444b --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/makedict/after.json @@ -0,0 +1,10 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + }, + "rougail.var2": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/makedict/base.json b/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/makedict/base.json new file mode 100644 index 000000000..287085aaf --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/makedict/base.json @@ -0,0 +1,4 @@ +{ + "rougail.var": [], + "rougail.var2": [] +} diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/makedict/before.json b/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/makedict/before.json new file mode 100644 index 000000000..a67db444b --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/makedict/before.json @@ -0,0 +1,10 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + }, + "rougail.var2": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/makedict/mandatory.json b/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/makedict/mandatory.json new file mode 100644 index 000000000..4fb69ce52 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/makedict/mandatory.json @@ -0,0 +1 @@ +["rougail.var2"] \ No newline at end of file diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/tiramisu/base.py b/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/tiramisu/base.py new file mode 100644 index 000000000..ae34ec6fc --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/tiramisu/base.py @@ -0,0 +1,19 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_rougail.var2'] = "{%- for v in var %}\n{{ v }}\n{%- endfor -%}" +option_2 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_4 = StrOption(name="var", doc="a variable inside a dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_3 = ConvertDynOptionDescription(name="my_dyn_family_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_4], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var'}) +option_5 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), '__internal_files': ParamValue(['tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("rougail.var2"), 'var': ParamOption(option_4)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3, option_5], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/tiramisu/multi.py b/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/tiramisu/multi.py new file mode 100644 index 000000000..4c5c68653 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/tiramisu/multi.py @@ -0,0 +1,27 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_1.rougail.var2'] = "{%- for v in var %}\n{{ v }}\n{%- endfor -%}" +dict_env['default_2.rougail.var2'] = "{%- for v in var %}\n{{ v }}\n{%- endfor -%}" +option_3 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_5 = StrOption(name="var", doc="a variable inside a dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_4 = ConvertDynOptionDescription(name="my_dyn_family_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_5], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.rougail.var'}) +option_6 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), '__internal_files': ParamValue(['tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("1.rougail.var2"), 'var': ParamOption(option_5)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4, option_6], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_9 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_11 = StrOption(name="var", doc="a variable inside a dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_10 = ConvertDynOptionDescription(name="my_dyn_family_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_9)))), children=[option_11], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.rougail.var'}) +option_12 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), '__internal_files': ParamValue(['tests/dictionaries/60_5family_dynamic_variable_outside_jinja_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("2.rougail.var2"), 'var': ParamOption(option_11)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_9, optiondescription_10, option_12], properties=frozenset({"standard"})) +optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7]) diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix/tiramisu/base.py b/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix/tiramisu/base.py index 3034dd0c9..5cc11ea62 100644 --- a/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix/tiramisu/base.py +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix/tiramisu/base.py @@ -14,6 +14,6 @@ option_2 = StrOption(name="var", doc="a suffix variable", multi=True, default=[" option_5 = StrOption(name="var", doc="a variable inside a sub dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_4 = ConvertDynOptionDescription(name="subdyn_{{ identifier }}", doc="a sub dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_5], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var'}) optiondescription_3 = ConvertDynOptionDescription(name="my_dyn_family_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[optiondescription_4], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var'}) -option_6 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamDynOption(option_5, ["val1", None])))), properties=frozenset({"standard"}), informations={'type': 'string'}) +option_6 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamDynOption(option_5, ["val1", None])), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"standard"}), informations={'type': 'string'}) optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3, option_6], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix/tiramisu/multi.py b/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix/tiramisu/multi.py index c9963ccb7..82bbc6157 100644 --- a/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix/tiramisu/multi.py +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix/tiramisu/multi.py @@ -14,14 +14,14 @@ option_3 = StrOption(name="var", doc="a suffix variable", multi=True, default=[" option_6 = StrOption(name="var", doc="a variable inside a sub dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_5 = ConvertDynOptionDescription(name="subdyn_{{ identifier }}", doc="a sub dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_6], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.var'}) optiondescription_4 = ConvertDynOptionDescription(name="my_dyn_family_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[optiondescription_5], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.rougail.var'}) -option_7 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamDynOption(option_6, ["val1", None])))), properties=frozenset({"standard"}), informations={'type': 'string'}) +option_7 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamDynOption(option_6, ["val1", None])), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"standard"}), informations={'type': 'string'}) optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4, option_7], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_10 = StrOption(name="var", doc="a suffix variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_13 = StrOption(name="var", doc="a variable inside a sub dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_12 = ConvertDynOptionDescription(name="subdyn_{{ identifier }}", doc="a sub dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_10)))), children=[option_13], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.var'}) optiondescription_11 = ConvertDynOptionDescription(name="my_dyn_family_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_10, notraisepropertyerror=True)))), children=[optiondescription_12], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.rougail.var'}) -option_14 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamDynOption(option_13, ["val1", None])))), properties=frozenset({"standard"}), informations={'type': 'string'}) +option_14 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamDynOption(option_13, ["val1", None])), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"standard"}), informations={'type': 'string'}) optiondescription_9 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_10, optiondescription_11, option_14], properties=frozenset({"standard"})) optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8]) diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..87c3ffc61 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,32 @@ +--- +version: '1.1' + +var: + description: a suffix variable + multi: true + mandatory: false + test: + - val1 + - val2 + +"my_dyn_family_{{ identifier }}": + description: a dynamic family + dynamic: + variable: _.var + propertyerror: false + "subdyn_{{ identifier }}": + description: a sub dynamic family + dynamic: + variable: rougail.var + var: + description: a variable inside a sub dynamic family + default: + type: identifier + +var2: + description: a variable + mandatory: false + multi: true + default: + variable: "rougail.my_dyn_family_val1.subdyn_{{ identifier }}.var" + optional: true diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/force_namespace b/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/force_namespace new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/makedict/after.json b/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/makedict/after.json new file mode 100644 index 000000000..a67db444b --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/makedict/after.json @@ -0,0 +1,10 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + }, + "rougail.var2": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/makedict/base.json b/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/makedict/base.json new file mode 100644 index 000000000..287085aaf --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/makedict/base.json @@ -0,0 +1,4 @@ +{ + "rougail.var": [], + "rougail.var2": [] +} diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/makedict/before.json b/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/makedict/before.json new file mode 100644 index 000000000..a67db444b --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/makedict/before.json @@ -0,0 +1,10 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + }, + "rougail.var2": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/makedict/mandatory.json b/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/tiramisu/base.py b/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/tiramisu/base.py new file mode 100644 index 000000000..38d162e64 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/tiramisu/base.py @@ -0,0 +1,19 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_2 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_5 = StrOption(name="var", doc="a variable inside a sub dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_4 = ConvertDynOptionDescription(name="subdyn_{{ identifier }}", doc="a sub dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_5], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var'}) +optiondescription_3 = ConvertDynOptionDescription(name="my_dyn_family_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[optiondescription_4], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var'}) +option_6 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamDynOption(option_5, ["val1", None], optional=True)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3, option_6], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/tiramisu/multi.py b/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/tiramisu/multi.py new file mode 100644 index 000000000..9fef16011 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_sub_suffix_empty/tiramisu/multi.py @@ -0,0 +1,27 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_6 = StrOption(name="var", doc="a variable inside a sub dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_5 = ConvertDynOptionDescription(name="subdyn_{{ identifier }}", doc="a sub dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_6], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.var'}) +optiondescription_4 = ConvertDynOptionDescription(name="my_dyn_family_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[optiondescription_5], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.rougail.var'}) +option_7 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamDynOption(option_6, ["val1", None], optional=True)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4, option_7], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_10 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_13 = StrOption(name="var", doc="a variable inside a sub dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_12 = ConvertDynOptionDescription(name="subdyn_{{ identifier }}", doc="a sub dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_10)))), children=[option_13], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.var'}) +optiondescription_11 = ConvertDynOptionDescription(name="my_dyn_family_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_10, notraisepropertyerror=True)))), children=[optiondescription_12], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.rougail.var'}) +option_14 = StrOption(name="var2", doc="a variable", multi=True, default=Calculation(func['calc_value'], Params((ParamDynOption(option_13, ["val1", None], optional=True)), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_9 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_10, optiondescription_11, option_14], properties=frozenset({"standard"})) +optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8]) diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..6f4d3243f --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,27 @@ +--- +version: '1.1' + +var: + description: asuffix variable + multi: true + mandatory: false + test: + - val1 + - val2 + +"dyn_{{ identifier }}": + description: a dynamic family + dynamic: + variable: _.var + + var: + description: a variable inside dynamic family + default: + type: identifier + +var2: + description: a variable + mandatory: false + default: + variable: _.dyn_val1.var + optional: true diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/makedict/after.json b/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/makedict/after.json new file mode 100644 index 000000000..1e7f5d7ff --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/makedict/after.json @@ -0,0 +1,10 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + }, + "rougail.var2": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/makedict/base.json b/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/makedict/base.json new file mode 100644 index 000000000..cd9083c3d --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/makedict/base.json @@ -0,0 +1,4 @@ +{ + "rougail.var": [], + "rougail.var2": null +} diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/makedict/before.json b/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/makedict/before.json new file mode 100644 index 000000000..1e7f5d7ff --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/makedict/before.json @@ -0,0 +1,10 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + }, + "rougail.var2": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/makedict/mandatory.json b/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/tiramisu/base.py b/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/tiramisu/base.py new file mode 100644 index 000000000..59faf0c9b --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/tiramisu/base.py @@ -0,0 +1,18 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_2 = StrOption(name="var", doc="asuffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_4 = StrOption(name="var", doc="a variable inside dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_3 = ConvertDynOptionDescription(name="dyn_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_4], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var'}) +option_5 = StrOption(name="var2", doc="a variable", default=Calculation(func['calc_value'], Params((ParamDynOption(option_4, ["val1"], optional=True)))), properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3, option_5], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/tiramisu/multi.py b/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/tiramisu/multi.py new file mode 100644 index 000000000..c23938901 --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/tiramisu/multi.py @@ -0,0 +1,25 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="var", doc="asuffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_5 = StrOption(name="var", doc="a variable inside dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_4 = ConvertDynOptionDescription(name="dyn_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_5], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.rougail.var'}) +option_6 = StrOption(name="var2", doc="a variable", default=Calculation(func['calc_value'], Params((ParamDynOption(option_5, ["val1"], optional=True)))), properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4, option_6], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_9 = StrOption(name="var", doc="asuffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_11 = StrOption(name="var", doc="a variable inside dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_10 = ConvertDynOptionDescription(name="dyn_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_9)))), children=[option_11], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.rougail.var'}) +option_12 = StrOption(name="var2", doc="a variable", default=Calculation(func['calc_value'], Params((ParamDynOption(option_11, ["val1"], optional=True)))), properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_9, optiondescription_10, option_12], properties=frozenset({"standard"})) +optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7]) diff --git a/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/tiramisu/no_namespace.py b/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/tiramisu/no_namespace.py new file mode 100644 index 000000000..592b5cabe --- /dev/null +++ b/tests/dictionaries/60_5family_dynamic_variable_outside_suffix_empty/tiramisu/no_namespace.py @@ -0,0 +1,13 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_1 = StrOption(name="var", doc="asuffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_3 = StrOption(name="var", doc="a variable inside dynamic family", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_2 = ConvertDynOptionDescription(name="dyn_{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_1)))), children=[option_3], properties=frozenset({"standard"}), informations={'dynamic_variable': 'var'}) +option_4 = StrOption(name="var2", doc="a variable", default=Calculation(func['calc_value'], Params((ParamDynOption(option_3, ["val1"], optional=True)))), properties=frozenset({"standard"}), informations={'type': 'string'}) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, optiondescription_2, option_4]) diff --git a/tests/dictionaries/60_6family_dynamic_inside_empty/__init__.py b/tests/dictionaries/60_6family_dynamic_inside_empty/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_6family_dynamic_inside_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_6family_dynamic_inside_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..3b4cd2a81 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_inside_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,31 @@ +--- +version: '1.1' + +var: + description: a suffix variable + multi: true + mandatory: false + test: + - val1 + - val2 + +"{{ identifier }}_dyn": + description: a dynamic family + dynamic: + variable: _.var + var1: + description: value is suffix + default: + type: identifier + var2: + description: value is first variable + default: + variable: rougail.{{ identifier }}_dyn.var1 + var3: + description: value is relative first variable + default: + variable: _.var1 + var4: + description: value is first variable of val1 + default: + variable: rougail.val1_dyn.var1 diff --git a/tests/dictionaries/60_6family_dynamic_inside_empty/force_namespace b/tests/dictionaries/60_6family_dynamic_inside_empty/force_namespace new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_6family_dynamic_inside_empty/makedict/after.json b/tests/dictionaries/60_6family_dynamic_inside_empty/makedict/after.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_inside_empty/makedict/after.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_6family_dynamic_inside_empty/makedict/base.json b/tests/dictionaries/60_6family_dynamic_inside_empty/makedict/base.json new file mode 100644 index 000000000..a132f4593 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_inside_empty/makedict/base.json @@ -0,0 +1,3 @@ +{ + "rougail.var": [] +} diff --git a/tests/dictionaries/60_6family_dynamic_inside_empty/makedict/before.json b/tests/dictionaries/60_6family_dynamic_inside_empty/makedict/before.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_inside_empty/makedict/before.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_6family_dynamic_inside_empty/makedict/mandatory.json b/tests/dictionaries/60_6family_dynamic_inside_empty/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_inside_empty/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/60_6family_dynamic_inside_empty/tiramisu/base.py b/tests/dictionaries/60_6family_dynamic_inside_empty/tiramisu/base.py new file mode 100644 index 000000000..8c8302da2 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_inside_empty/tiramisu/base.py @@ -0,0 +1,20 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_2 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_4 = StrOption(name="var1", doc="value is suffix", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_5 = StrOption(name="var2", doc="value is first variable", default=Calculation(func['calc_value'], Params((ParamOption(option_4)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_6 = StrOption(name="var3", doc="value is relative first variable", default=Calculation(func['calc_value'], Params((ParamOption(option_4)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_7 = StrOption(name="var4", doc="value is first variable of val1", default=Calculation(func['calc_value'], Params((ParamDynOption(option_4, ["val1"])))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_3 = ConvertDynOptionDescription(name="{{ identifier }}_dyn", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_4, option_5, option_6, option_7], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_6family_dynamic_inside_empty/tiramisu/multi.py b/tests/dictionaries/60_6family_dynamic_inside_empty/tiramisu/multi.py new file mode 100644 index 000000000..3a8dfa926 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_inside_empty/tiramisu/multi.py @@ -0,0 +1,29 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_5 = StrOption(name="var1", doc="value is suffix", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_6 = StrOption(name="var2", doc="value is first variable", default=Calculation(func['calc_value'], Params((ParamOption(option_5)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_7 = StrOption(name="var3", doc="value is relative first variable", default=Calculation(func['calc_value'], Params((ParamOption(option_5)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_8 = StrOption(name="var4", doc="value is first variable of val1", default=Calculation(func['calc_value'], Params((ParamDynOption(option_5, ["val1"])))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_4 = ConvertDynOptionDescription(name="{{ identifier }}_dyn", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_5, option_6, option_7, option_8], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.rougail.var'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_11 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_13 = StrOption(name="var1", doc="value is suffix", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_14 = StrOption(name="var2", doc="value is first variable", default=Calculation(func['calc_value'], Params((ParamOption(option_13)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_15 = StrOption(name="var3", doc="value is relative first variable", default=Calculation(func['calc_value'], Params((ParamOption(option_13)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_16 = StrOption(name="var4", doc="value is first variable of val1", default=Calculation(func['calc_value'], Params((ParamDynOption(option_13, ["val1"])))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_12 = ConvertDynOptionDescription(name="{{ identifier }}_dyn", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_11)))), children=[option_13, option_14, option_15, option_16], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.rougail.var'}) +optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_11, optiondescription_12], properties=frozenset({"standard"})) +optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9]) diff --git a/tests/dictionaries/60_6family_dynamic_leadership_empty/__init__.py b/tests/dictionaries/60_6family_dynamic_leadership_empty/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_6family_dynamic_leadership_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_6family_dynamic_leadership_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..998ccfe05 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_leadership_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,27 @@ +--- +version: '1.1' + +var: + description: a suffix variable + multi: true + mandatory: false + test: + - val1 + - val2 + +"dyn{{ identifier }}": + description: a dynamic family + dynamic: + variable: _.var + leadership: + description: a leadership + type: leadership + leader: + description: a leader + multi: true + follower1: + description: a follower1 + mandatory: false + follower2: + description: a follower2 + mandatory: false diff --git a/tests/dictionaries/60_6family_dynamic_leadership_empty/makedict/after.json b/tests/dictionaries/60_6family_dynamic_leadership_empty/makedict/after.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_leadership_empty/makedict/after.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_6family_dynamic_leadership_empty/makedict/base.json b/tests/dictionaries/60_6family_dynamic_leadership_empty/makedict/base.json new file mode 100644 index 000000000..a132f4593 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_leadership_empty/makedict/base.json @@ -0,0 +1,3 @@ +{ + "rougail.var": [] +} diff --git a/tests/dictionaries/60_6family_dynamic_leadership_empty/makedict/before.json b/tests/dictionaries/60_6family_dynamic_leadership_empty/makedict/before.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_leadership_empty/makedict/before.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_6family_dynamic_leadership_empty/makedict/mandatory.json b/tests/dictionaries/60_6family_dynamic_leadership_empty/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_leadership_empty/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/60_6family_dynamic_leadership_empty/tiramisu/base.py b/tests/dictionaries/60_6family_dynamic_leadership_empty/tiramisu/base.py new file mode 100644 index 000000000..c3d63db7c --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_leadership_empty/tiramisu/base.py @@ -0,0 +1,20 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_2 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_5 = StrOption(name="leader", doc="a leader", multi=True, properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +option_6 = StrOption(name="follower1", doc="a follower1", multi=True, properties=frozenset({"standard"}), informations={'type': 'string'}) +option_7 = StrOption(name="follower2", doc="a follower2", multi=True, properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_4 = Leadership(name="leadership", doc="a leadership", children=[option_5, option_6, option_7], properties=frozenset({"basic"})) +optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[optiondescription_4], properties=frozenset({"basic"}), informations={'dynamic_variable': 'rougail.var'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_6family_dynamic_leadership_empty/tiramisu/multi.py b/tests/dictionaries/60_6family_dynamic_leadership_empty/tiramisu/multi.py new file mode 100644 index 000000000..a6b375503 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_leadership_empty/tiramisu/multi.py @@ -0,0 +1,29 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_6 = StrOption(name="leader", doc="a leader", multi=True, properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +option_7 = StrOption(name="follower1", doc="a follower1", multi=True, properties=frozenset({"standard"}), informations={'type': 'string'}) +option_8 = StrOption(name="follower2", doc="a follower2", multi=True, properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_5 = Leadership(name="leadership", doc="a leadership", children=[option_6, option_7, option_8], properties=frozenset({"basic"})) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[optiondescription_5], properties=frozenset({"basic"}), informations={'dynamic_variable': '1.rougail.var'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4], properties=frozenset({"basic"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) +option_11 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_14 = StrOption(name="leader", doc="a leader", multi=True, properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +option_15 = StrOption(name="follower1", doc="a follower1", multi=True, properties=frozenset({"standard"}), informations={'type': 'string'}) +option_16 = StrOption(name="follower2", doc="a follower2", multi=True, properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_13 = Leadership(name="leadership", doc="a leadership", children=[option_14, option_15, option_16], properties=frozenset({"basic"})) +optiondescription_12 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_11)))), children=[optiondescription_13], properties=frozenset({"basic"}), informations={'dynamic_variable': '2.rougail.var'}) +optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_11, optiondescription_12], properties=frozenset({"basic"})) +optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9]) diff --git a/tests/dictionaries/60_6family_dynamic_leadership_empty/tiramisu/no_namespace.py b/tests/dictionaries/60_6family_dynamic_leadership_empty/tiramisu/no_namespace.py new file mode 100644 index 000000000..08ced2b9b --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_leadership_empty/tiramisu/no_namespace.py @@ -0,0 +1,15 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_1 = StrOption(name="var", doc="a suffix variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_4 = StrOption(name="leader", doc="a leader", multi=True, properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +option_5 = StrOption(name="follower1", doc="a follower1", multi=True, properties=frozenset({"standard"}), informations={'type': 'string'}) +option_6 = StrOption(name="follower2", doc="a follower2", multi=True, properties=frozenset({"standard"}), informations={'type': 'string'}) +optiondescription_3 = Leadership(name="leadership", doc="a leadership", children=[option_4, option_5, option_6], properties=frozenset({"basic"})) +optiondescription_2 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="a dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_1)))), children=[optiondescription_3], properties=frozenset({"basic"}), informations={'dynamic_variable': 'var'}) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, optiondescription_2]) diff --git a/tests/dictionaries/60_6family_dynamic_sub_dynamic/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_6family_dynamic_sub_dynamic/dictionaries/rougail/00-base.yml index 20d21fde1..1e89265a9 100644 --- a/tests/dictionaries/60_6family_dynamic_sub_dynamic/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/60_6family_dynamic_sub_dynamic/dictionaries/rougail/00-base.yml @@ -1,12 +1,15 @@ --- version: '1.1' + var: # A identifier variable - val1 - val2 + "dyn{{ identifier }}": description: A dynamic family dynamic: variable: _.var + var: description: A dynamic variable multi: true @@ -16,19 +19,23 @@ var: # A identifier variable t{{ val }} {% endfor %} description: add 't' to each var value + "dyn_{{ identifier }}": description: a Second dynamic variable dynamic: variable: "rougail.dyn{{ identifier }}.var" + var: description: A variable dynamic default: type: identifier + var_identifier: description: identifier from first family default: type: identifier identifier: 0 + var_identifiers: description: merge identifiers default: diff --git a/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/__init__.py b/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..a27b2871c --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/dictionaries/rougail/00-base.yml @@ -0,0 +1,54 @@ +--- +version: '1.0' + +var: + description: A identifier variable + multi: true + default: + - val1 + - val2 + +"dyn{{ suffix }}": + description: A dynamic family + type: dynamic + variable: rougail.var + + var: + description: A dynamic variable + multi: true + default: + jinja: | + {% for val in rougail.var %} + t{{ val }} + {% endfor %} + description: add 't' to each var value + + "dyn_{{ suffix }}": + description: a Second dynamic variable + type: dynamic + variable: "rougail.dyn{{ suffix }}.var" + + var: + description: A variable dynamic + default: + type: identifier + + var_identifier: + description: identifier from first family + default: + type: identifier + identifier: 0 + + var_identifiers: + description: merge identifiers + default: + jinja: | + {{ s1 }}-{{ s2 }} + params: + s1: + type: identifier + identifier: 0 + s2: + type: identifier + identifier: 1 + description: join identifier 1 et identifier 2 diff --git a/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/force_namespace b/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/force_namespace new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/makedict/after.json b/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/makedict/after.json new file mode 100644 index 000000000..2c5f0e043 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/makedict/after.json @@ -0,0 +1,71 @@ +{ + "rougail.var": { + "owner": "default", + "value": [ + "val1", + "val2" + ] + }, + "rougail.dynval1.var": { + "owner": "default", + "value": [ + "tval1", + "tval2" + ] + }, + "rougail.dynval1.dyn_tval1.var": { + "owner": "default", + "value": "tval1" + }, + "rougail.dynval1.dyn_tval1.var_identifier": { + "owner": "default", + "value": "val1" + }, + "rougail.dynval1.dyn_tval1.var_identifiers": { + "owner": "default", + "value": "val1-tval1" + }, + "rougail.dynval1.dyn_tval2.var": { + "owner": "default", + "value": "tval2" + }, + "rougail.dynval1.dyn_tval2.var_identifier": { + "owner": "default", + "value": "val1" + }, + "rougail.dynval1.dyn_tval2.var_identifiers": { + "owner": "default", + "value": "val1-tval2" + }, + "rougail.dynval2.var": { + "owner": "default", + "value": [ + "tval1", + "tval2" + ] + }, + "rougail.dynval2.dyn_tval1.var": { + "owner": "default", + "value": "tval1" + }, + "rougail.dynval2.dyn_tval1.var_identifier": { + "owner": "default", + "value": "val2" + }, + "rougail.dynval2.dyn_tval1.var_identifiers": { + "owner": "default", + "value": "val2-tval1" + }, + "rougail.dynval2.dyn_tval2.var": { + "owner": "default", + "value": "tval2" + }, + "rougail.dynval2.dyn_tval2.var_identifier": { + "owner": "default", + "value": "val2" + }, + "rougail.dynval2.dyn_tval2.var_identifiers": { + "owner": "default", + "value": "val2-tval2" + } +} diff --git a/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/makedict/base.json b/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/makedict/base.json new file mode 100644 index 000000000..07461b674 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/makedict/base.json @@ -0,0 +1,26 @@ +{ + "rougail.var": [ + "val1", + "val2" + ], + "rougail.dynval1.var": [ + "tval1", + "tval2" + ], + "rougail.dynval1.dyn_tval1.var": "tval1", + "rougail.dynval1.dyn_tval1.var_identifier": "val1", + "rougail.dynval1.dyn_tval1.var_identifiers": "val1-tval1", + "rougail.dynval1.dyn_tval2.var": "tval2", + "rougail.dynval1.dyn_tval2.var_identifier": "val1", + "rougail.dynval1.dyn_tval2.var_identifiers": "val1-tval2", + "rougail.dynval2.var": [ + "tval1", + "tval2" + ], + "rougail.dynval2.dyn_tval1.var": "tval1", + "rougail.dynval2.dyn_tval1.var_identifier": "val2", + "rougail.dynval2.dyn_tval1.var_identifiers": "val2-tval1", + "rougail.dynval2.dyn_tval2.var": "tval2", + "rougail.dynval2.dyn_tval2.var_identifier": "val2", + "rougail.dynval2.dyn_tval2.var_identifiers": "val2-tval2" +} diff --git a/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/makedict/before.json b/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/makedict/before.json new file mode 100644 index 000000000..2c5f0e043 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/makedict/before.json @@ -0,0 +1,71 @@ +{ + "rougail.var": { + "owner": "default", + "value": [ + "val1", + "val2" + ] + }, + "rougail.dynval1.var": { + "owner": "default", + "value": [ + "tval1", + "tval2" + ] + }, + "rougail.dynval1.dyn_tval1.var": { + "owner": "default", + "value": "tval1" + }, + "rougail.dynval1.dyn_tval1.var_identifier": { + "owner": "default", + "value": "val1" + }, + "rougail.dynval1.dyn_tval1.var_identifiers": { + "owner": "default", + "value": "val1-tval1" + }, + "rougail.dynval1.dyn_tval2.var": { + "owner": "default", + "value": "tval2" + }, + "rougail.dynval1.dyn_tval2.var_identifier": { + "owner": "default", + "value": "val1" + }, + "rougail.dynval1.dyn_tval2.var_identifiers": { + "owner": "default", + "value": "val1-tval2" + }, + "rougail.dynval2.var": { + "owner": "default", + "value": [ + "tval1", + "tval2" + ] + }, + "rougail.dynval2.dyn_tval1.var": { + "owner": "default", + "value": "tval1" + }, + "rougail.dynval2.dyn_tval1.var_identifier": { + "owner": "default", + "value": "val2" + }, + "rougail.dynval2.dyn_tval1.var_identifiers": { + "owner": "default", + "value": "val2-tval1" + }, + "rougail.dynval2.dyn_tval2.var": { + "owner": "default", + "value": "tval2" + }, + "rougail.dynval2.dyn_tval2.var_identifier": { + "owner": "default", + "value": "val2" + }, + "rougail.dynval2.dyn_tval2.var_identifiers": { + "owner": "default", + "value": "val2-tval2" + } +} diff --git a/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/makedict/mandatory.json b/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/tiramisu/base.py b/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/tiramisu/base.py new file mode 100644 index 000000000..e2e0ca4e0 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/tiramisu/base.py @@ -0,0 +1,23 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_rougail.dyn{{ identifier }}.var'] = "{% for val in rougail.var %}\nt{{ val }}\n{% endfor %}\n" +dict_env['default_rougail.dyn{{ identifier }}.dyn_{{ identifier }}.var_identifiers'] = "{{ s1 }}-{{ s2 }}\n" +option_2 = StrOption(name="var", doc="A identifier variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_4 = StrOption(name="var", doc="A dynamic variable", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.dyn{{ identifier }}.var"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), '__internal_files': ParamValue(['tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("rougail.dyn{{ identifier }}.var"), 'rougail.var': ParamOption(option_2)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_6 = StrOption(name="var", doc="A variable dynamic", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_7 = StrOption(name="var_identifier", doc="identifier from first family", default=Calculation(func['calc_value'], Params((ParamIdentifier(identifier_index=0)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_8 = StrOption(name="var_identifiers", doc="merge identifiers", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.dyn{{ identifier }}.dyn_{{ identifier }}.var_identifiers"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("rougail.dyn{{ identifier }}.dyn_{{ identifier }}.var_identifiers"), 's1': ParamIdentifier(identifier_index=0), 's2': ParamIdentifier(identifier_index=1)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_5 = ConvertDynOptionDescription(name="dyn_{{ identifier }}", doc="a Second dynamic variable", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_6, option_7, option_8], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.dyn{{ identifier }}.var'}) +optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_4, optiondescription_5], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/tiramisu/multi.py b/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/tiramisu/multi.py new file mode 100644 index 000000000..c9ae25872 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/tiramisu/multi.py @@ -0,0 +1,35 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_1.rougail.dyn{{ identifier }}.var'] = "{% for val in rougail.var %}\nt{{ val }}\n{% endfor %}\n" +dict_env['default_1.rougail.dyn{{ identifier }}.dyn_{{ identifier }}.var_identifiers'] = "{{ s1 }}-{{ s2 }}\n" +dict_env['default_2.rougail.dyn{{ identifier }}.var'] = "{% for val in rougail.var %}\nt{{ val }}\n{% endfor %}\n" +dict_env['default_2.rougail.dyn{{ identifier }}.dyn_{{ identifier }}.var_identifiers'] = "{{ s1 }}-{{ s2 }}\n" +option_3 = StrOption(name="var", doc="A identifier variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_5 = StrOption(name="var", doc="A dynamic variable", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.dyn{{ identifier }}.var"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), '__internal_files': ParamValue(['tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("1.rougail.dyn{{ identifier }}.var"), 'rougail.var': ParamOption(option_3)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_7 = StrOption(name="var", doc="A variable dynamic", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_8 = StrOption(name="var_identifier", doc="identifier from first family", default=Calculation(func['calc_value'], Params((ParamIdentifier(identifier_index=0)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_9 = StrOption(name="var_identifiers", doc="merge identifiers", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.dyn{{ identifier }}.dyn_{{ identifier }}.var_identifiers"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("1.rougail.dyn{{ identifier }}.dyn_{{ identifier }}.var_identifiers"), 's1': ParamIdentifier(identifier_index=0), 's2': ParamIdentifier(identifier_index=1)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_6 = ConvertDynOptionDescription(name="dyn_{{ identifier }}", doc="a Second dynamic variable", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_5, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_7, option_8, option_9], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.dyn{{ identifier }}.var'}) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_5, optiondescription_6], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.var'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_12 = StrOption(name="var", doc="A identifier variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_14 = StrOption(name="var", doc="A dynamic variable", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.dyn{{ identifier }}.var"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), '__internal_files': ParamValue(['tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("2.rougail.dyn{{ identifier }}.var"), 'rougail.var': ParamOption(option_12)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_16 = StrOption(name="var", doc="A variable dynamic", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_17 = StrOption(name="var_identifier", doc="identifier from first family", default=Calculation(func['calc_value'], Params((ParamIdentifier(identifier_index=0)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_18 = StrOption(name="var_identifiers", doc="merge identifiers", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.dyn{{ identifier }}.dyn_{{ identifier }}.var_identifiers"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_6family_dynamic_sub_dynamic_1_0/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("2.rougail.dyn{{ identifier }}.dyn_{{ identifier }}.var_identifiers"), 's1': ParamIdentifier(identifier_index=0), 's2': ParamIdentifier(identifier_index=1)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_15 = ConvertDynOptionDescription(name="dyn_{{ identifier }}", doc="a Second dynamic variable", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_14, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_16, option_17, option_18], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.dyn{{ identifier }}.var'}) +optiondescription_13 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_12, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_14, optiondescription_15], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.var'}) +optiondescription_11 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_12, optiondescription_13], properties=frozenset({"standard"})) +optiondescription_10 = OptionDescription(name="2", doc="2", children=[optiondescription_11], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_10]) diff --git a/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/__init__.py b/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/dictionaries/rougail/00-base.yml b/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..3e7fa31f1 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/dictionaries/rougail/00-base.yml @@ -0,0 +1,55 @@ +--- +version: '1.1' + +var: + description: A identifier variable + multi: true + mandatory: false + test: + - val1 + - val2 + +"dyn{{ identifier }}": + description: A dynamic family + dynamic: + variable: _.var + + var: + description: A dynamic variable + multi: true + default: + jinja: | + {% for val in __.var %} + t{{ val }} + {% endfor %} + description: add 't' to each var value + + "dyn_{{ identifier }}": + description: a Second dynamic variable + dynamic: + variable: "rougail.dyn{{ identifier }}.var" + + var: + description: A variable dynamic + default: + type: identifier + + var_identifier: + description: identifier from first family + default: + type: identifier + identifier: 0 + + var_identifiers: + description: merge identifiers + default: + jinja: | + {{ s1 }}-{{ s2 }} + params: + s1: + type: identifier + identifier: 0 + s2: + type: identifier + identifier: 1 + description: join identifier 1 et identifier 2 diff --git a/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/force_namespace b/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/force_namespace new file mode 100644 index 000000000..e69de29bb diff --git a/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/makedict/after.json b/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/makedict/after.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/makedict/after.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/makedict/base.json b/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/makedict/base.json new file mode 100644 index 000000000..a132f4593 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/makedict/base.json @@ -0,0 +1,3 @@ +{ + "rougail.var": [] +} diff --git a/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/makedict/before.json b/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/makedict/before.json new file mode 100644 index 000000000..7799ba404 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/makedict/before.json @@ -0,0 +1,6 @@ +{ + "rougail.var": { + "owner": "default", + "value": [] + } +} diff --git a/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/makedict/mandatory.json b/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/tiramisu/base.py b/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/tiramisu/base.py new file mode 100644 index 000000000..d5179f8b0 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/tiramisu/base.py @@ -0,0 +1,23 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_rougail.dyn{{ identifier }}.var'] = "{% for val in __.var %}\nt{{ val }}\n{% endfor %}\n" +dict_env['default_rougail.dyn{{ identifier }}.dyn_{{ identifier }}.var_identifiers'] = "{{ s1 }}-{{ s2 }}\n" +option_2 = StrOption(name="var", doc="A identifier variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_4 = StrOption(name="var", doc="A dynamic variable", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.dyn{{ identifier }}.var"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), '__internal_files': ParamValue(['tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("rougail.dyn{{ identifier }}.var"), '__.var': ParamOption(option_2, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_6 = StrOption(name="var", doc="A variable dynamic", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_7 = StrOption(name="var_identifier", doc="identifier from first family", default=Calculation(func['calc_value'], Params((ParamIdentifier(identifier_index=0)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_8 = StrOption(name="var_identifiers", doc="merge identifiers", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.dyn{{ identifier }}.dyn_{{ identifier }}.var_identifiers"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("rougail.dyn{{ identifier }}.dyn_{{ identifier }}.var_identifiers"), 's1': ParamIdentifier(identifier_index=0), 's2': ParamIdentifier(identifier_index=1)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_5 = ConvertDynOptionDescription(name="dyn_{{ identifier }}", doc="a Second dynamic variable", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_4)))), children=[option_6, option_7, option_8], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.dyn{{ identifier }}.var'}) +optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_4, optiondescription_5], properties=frozenset({"standard"}), informations={'dynamic_variable': 'rougail.var'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/tiramisu/multi.py b/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/tiramisu/multi.py new file mode 100644 index 000000000..8683847b5 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/tiramisu/multi.py @@ -0,0 +1,35 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_1.rougail.dyn{{ identifier }}.var'] = "{% for val in __.var %}\nt{{ val }}\n{% endfor %}\n" +dict_env['default_1.rougail.dyn{{ identifier }}.dyn_{{ identifier }}.var_identifiers'] = "{{ s1 }}-{{ s2 }}\n" +dict_env['default_2.rougail.dyn{{ identifier }}.var'] = "{% for val in __.var %}\nt{{ val }}\n{% endfor %}\n" +dict_env['default_2.rougail.dyn{{ identifier }}.dyn_{{ identifier }}.var_identifiers'] = "{{ s1 }}-{{ s2 }}\n" +option_3 = StrOption(name="var", doc="A identifier variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_5 = StrOption(name="var", doc="A dynamic variable", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.dyn{{ identifier }}.var"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), '__internal_files': ParamValue(['tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("1.rougail.dyn{{ identifier }}.var"), '__.var': ParamOption(option_3, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_7 = StrOption(name="var", doc="A variable dynamic", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_8 = StrOption(name="var_identifier", doc="identifier from first family", default=Calculation(func['calc_value'], Params((ParamIdentifier(identifier_index=0)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_9 = StrOption(name="var_identifiers", doc="merge identifiers", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.dyn{{ identifier }}.dyn_{{ identifier }}.var_identifiers"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("1.rougail.dyn{{ identifier }}.dyn_{{ identifier }}.var_identifiers"), 's1': ParamIdentifier(identifier_index=0), 's2': ParamIdentifier(identifier_index=1)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_6 = ConvertDynOptionDescription(name="dyn_{{ identifier }}", doc="a Second dynamic variable", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_5)))), children=[option_7, option_8, option_9], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.dyn{{ identifier }}.var'}) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_5, optiondescription_6], properties=frozenset({"standard"}), informations={'dynamic_variable': '1.rougail.var'}) +optiondescription_2 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_3, optiondescription_4], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_12 = StrOption(name="var", doc="A identifier variable", multi=True, properties=frozenset({"standard"}), informations={'type': 'string', 'test': ('val1', 'val2')}) +option_14 = StrOption(name="var", doc="A dynamic variable", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.dyn{{ identifier }}.var"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), '__internal_files': ParamValue(['tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("2.rougail.dyn{{ identifier }}.var"), '__.var': ParamOption(option_12, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_16 = StrOption(name="var", doc="A variable dynamic", default=Calculation(func['calc_value'], Params((ParamIdentifier()))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_17 = StrOption(name="var_identifier", doc="identifier from first family", default=Calculation(func['calc_value'], Params((ParamIdentifier(identifier_index=0)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_18 = StrOption(name="var_identifiers", doc="merge identifiers", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.dyn{{ identifier }}.dyn_{{ identifier }}.var_identifiers"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['tests/dictionaries/60_6family_dynamic_sub_dynamic_empty/dictionaries/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("2.rougail.dyn{{ identifier }}.dyn_{{ identifier }}.var_identifiers"), 's1': ParamIdentifier(identifier_index=0), 's2': ParamIdentifier(identifier_index=1)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +optiondescription_15 = ConvertDynOptionDescription(name="dyn_{{ identifier }}", doc="a Second dynamic variable", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_14)))), children=[option_16, option_17, option_18], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.dyn{{ identifier }}.var'}) +optiondescription_13 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_12)))), children=[option_14, optiondescription_15], properties=frozenset({"standard"}), informations={'dynamic_variable': '2.rougail.var'}) +optiondescription_11 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_12, optiondescription_13], properties=frozenset({"standard"})) +optiondescription_10 = OptionDescription(name="2", doc="2", children=[optiondescription_11], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_10])