feat: support leadership inside types
This commit is contained in:
parent
e5f1b8a84e
commit
21f416b7b8
10 changed files with 265 additions and 2 deletions
|
|
@ -68,8 +68,6 @@ def to_dict_family(family_name, paths, parents, families, root=True):
|
|||
variable = paths[variable_path]
|
||||
variable_name = variable.name
|
||||
if variable_path in families:
|
||||
if variable.type == "leadership":
|
||||
raise DictConsistencyError(_("type is not compatible with leadership family"), 86, variable.xmlfiles)
|
||||
if variable_name in ret:
|
||||
ret["_" + variable_name] = ret.pop(variable_name)
|
||||
ret[variable_name] = to_dict_family(variable.path, paths, parents, families, False)
|
||||
|
|
|
|||
|
|
@ -139,3 +139,11 @@ def test_type_error_version():
|
|||
|
||||
def test_type_family_name_description():
|
||||
type_variable("family_name_description")
|
||||
|
||||
|
||||
def test_type_leadership():
|
||||
type_variable("leadership")
|
||||
|
||||
|
||||
def test_type_leadership_namespace():
|
||||
type_variable("leadership", namespace=True)
|
||||
|
|
|
|||
33
tests/types/result/leadership/namespace_tiramisu.py
Normal file
33
tests/types/result/leadership/namespace_tiramisu.py
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
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
|
||||
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="a_leader", doc="My first variable", multi=True, default=["a value"], properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml'], 'type': 'string'})
|
||||
option_4 = StrOption(name="a_first_follower", doc="My second variable", multi=True, default_multi="an other value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml'], 'type': 'string'})
|
||||
option_5 = StrOption(name="a_second_follower", doc="My third variable", multi=True, default_multi="again an other value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml'], 'type': 'string'})
|
||||
optiondescription_2 = Leadership(name="my_leadership", doc="my_leadership", children=[option_3, option_4, option_5], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml']})
|
||||
optiondescription_1 = OptionDescription(name="my_leadership_1", doc="My family type", children=[optiondescription_2], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml', 'tests/types/structures/leadership/00_structure.yml']})
|
||||
option_8 = StrOption(name="a_leader", doc="My first variable", multi=True, default=["a value"], properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml'], 'type': 'string'})
|
||||
option_9 = StrOption(name="a_first_follower", doc="My second variable", multi=True, default_multi="a modified value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml', 'tests/types/structures/leadership/00_structure.yml'], 'type': 'string'})
|
||||
option_10 = StrOption(name="a_second_follower", doc="My third variable", multi=True, default_multi="again an other value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml'], 'type': 'string'})
|
||||
optiondescription_7 = Leadership(name="my_leadership", doc="my_leadership", children=[option_8, option_9, option_10], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml', 'tests/types/structures/leadership/00_structure.yml']})
|
||||
optiondescription_6 = OptionDescription(name="my_leadership_2", doc="My family type", children=[optiondescription_7], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml', 'tests/types/structures/leadership/00_structure.yml']})
|
||||
option_13 = StrOption(name="a_leader", doc="My first variable", multi=True, default=["a value"], properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml'], 'type': 'string'})
|
||||
option_14 = StrOption(name="a_first_follower", doc="My second variable", multi=True, default_multi="an other value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml'], 'type': 'string'})
|
||||
option_15 = StrOption(name="a_second_follower", doc="My third variable", multi=True, default_multi="again an other value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml'], 'type': 'string'})
|
||||
option_16 = StrOption(name="a_new_follower", doc="a description", multi=True, default_multi="a value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/structures/leadership/00_structure.yml'], 'type': 'string'})
|
||||
optiondescription_12 = Leadership(name="my_leadership", doc="my_leadership", children=[option_13, option_14, option_15, option_16], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml', 'tests/types/structures/leadership/00_structure.yml']})
|
||||
optiondescription_11 = OptionDescription(name="my_leadership_3", doc="My family type", children=[optiondescription_12], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml', 'tests/types/structures/leadership/00_structure.yml']})
|
||||
option_19 = StrOption(name="a_leader", doc="a description", multi=True, default=["a value leader", "a second leader"], properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml', 'tests/types/structures/leadership/00_structure.yml'], 'type': 'string'})
|
||||
option_20 = StrOption(name="a_first_follower", doc="My second variable", multi=True, default_multi="an other value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml'], 'type': 'string'})
|
||||
option_21 = StrOption(name="a_second_follower", doc="My third variable", multi=True, default_multi="again an other value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml'], 'type': 'string'})
|
||||
optiondescription_18 = Leadership(name="my_leadership", doc="my_leadership", children=[option_19, option_20, option_21], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml', 'tests/types/structures/leadership/00_structure.yml']})
|
||||
optiondescription_17 = OptionDescription(name="my_leadership_4", doc="My family type", children=[optiondescription_18], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml', 'tests/types/structures/leadership/00_structure.yml']})
|
||||
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6, optiondescription_11, optiondescription_17])
|
||||
36
tests/types/result/leadership/namespace_variables.json
Normal file
36
tests/types/result/leadership/namespace_variables.json
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
"my_leadership_1.my_leadership.a_leader": [
|
||||
{
|
||||
"my_leadership_1.my_leadership.a_leader": "a value",
|
||||
"my_leadership_1.my_leadership.a_first_follower": "an other value",
|
||||
"my_leadership_1.my_leadership.a_second_follower": "again an other value"
|
||||
}
|
||||
],
|
||||
"my_leadership_2.my_leadership.a_leader": [
|
||||
{
|
||||
"my_leadership_2.my_leadership.a_leader": "a value",
|
||||
"my_leadership_2.my_leadership.a_first_follower": "a modified value",
|
||||
"my_leadership_2.my_leadership.a_second_follower": "again an other value"
|
||||
}
|
||||
],
|
||||
"my_leadership_3.my_leadership.a_leader": [
|
||||
{
|
||||
"my_leadership_3.my_leadership.a_leader": "a value",
|
||||
"my_leadership_3.my_leadership.a_first_follower": "an other value",
|
||||
"my_leadership_3.my_leadership.a_second_follower": "again an other value",
|
||||
"my_leadership_3.my_leadership.a_new_follower": "a value"
|
||||
}
|
||||
],
|
||||
"my_leadership_4.my_leadership.a_leader": [
|
||||
{
|
||||
"my_leadership_4.my_leadership.a_leader": "a value leader",
|
||||
"my_leadership_4.my_leadership.a_first_follower": "an other value",
|
||||
"my_leadership_4.my_leadership.a_second_follower": "again an other value"
|
||||
},
|
||||
{
|
||||
"my_leadership_4.my_leadership.a_leader": "a second leader",
|
||||
"my_leadership_4.my_leadership.a_first_follower": "an other value",
|
||||
"my_leadership_4.my_leadership.a_second_follower": "again an other value"
|
||||
}
|
||||
]
|
||||
}
|
||||
36
tests/types/result/leadership/namespace_variables_rw.json
Normal file
36
tests/types/result/leadership/namespace_variables_rw.json
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
"my_leadership_1.my_leadership.a_leader": [
|
||||
{
|
||||
"my_leadership_1.my_leadership.a_leader": "a value",
|
||||
"my_leadership_1.my_leadership.a_first_follower": "an other value",
|
||||
"my_leadership_1.my_leadership.a_second_follower": "again an other value"
|
||||
}
|
||||
],
|
||||
"my_leadership_2.my_leadership.a_leader": [
|
||||
{
|
||||
"my_leadership_2.my_leadership.a_leader": "a value",
|
||||
"my_leadership_2.my_leadership.a_first_follower": "a modified value",
|
||||
"my_leadership_2.my_leadership.a_second_follower": "again an other value"
|
||||
}
|
||||
],
|
||||
"my_leadership_3.my_leadership.a_leader": [
|
||||
{
|
||||
"my_leadership_3.my_leadership.a_leader": "a value",
|
||||
"my_leadership_3.my_leadership.a_first_follower": "an other value",
|
||||
"my_leadership_3.my_leadership.a_second_follower": "again an other value",
|
||||
"my_leadership_3.my_leadership.a_new_follower": "a value"
|
||||
}
|
||||
],
|
||||
"my_leadership_4.my_leadership.a_leader": [
|
||||
{
|
||||
"my_leadership_4.my_leadership.a_leader": "a value leader",
|
||||
"my_leadership_4.my_leadership.a_first_follower": "an other value",
|
||||
"my_leadership_4.my_leadership.a_second_follower": "again an other value"
|
||||
},
|
||||
{
|
||||
"my_leadership_4.my_leadership.a_leader": "a second leader",
|
||||
"my_leadership_4.my_leadership.a_first_follower": "an other value",
|
||||
"my_leadership_4.my_leadership.a_second_follower": "again an other value"
|
||||
}
|
||||
]
|
||||
}
|
||||
34
tests/types/result/leadership/tiramisu.py
Normal file
34
tests/types/result/leadership/tiramisu.py
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
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
|
||||
try:
|
||||
groups.namespace
|
||||
except:
|
||||
groups.addgroup('namespace')
|
||||
ALLOWED_LEADER_PROPERTIES.add("basic")
|
||||
ALLOWED_LEADER_PROPERTIES.add("standard")
|
||||
ALLOWED_LEADER_PROPERTIES.add("advanced")
|
||||
option_4 = StrOption(name="a_leader", doc="My first variable", multi=True, default=["a value"], properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml'], 'type': 'string'})
|
||||
option_5 = StrOption(name="a_first_follower", doc="My second variable", multi=True, default_multi="an other value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml'], 'type': 'string'})
|
||||
option_6 = StrOption(name="a_second_follower", doc="My third variable", multi=True, default_multi="again an other value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml'], 'type': 'string'})
|
||||
optiondescription_3 = Leadership(name="my_leadership", doc="my_leadership", children=[option_4, option_5, option_6], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml']})
|
||||
optiondescription_2 = OptionDescription(name="my_leadership_1", doc="My family type", children=[optiondescription_3], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml', 'tests/types/structures/leadership/00_structure.yml']})
|
||||
option_9 = StrOption(name="a_leader", doc="My first variable", multi=True, default=["a value"], properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml'], 'type': 'string'})
|
||||
option_10 = StrOption(name="a_first_follower", doc="My second variable", multi=True, default_multi="a modified value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml', 'tests/types/structures/leadership/00_structure.yml'], 'type': 'string'})
|
||||
option_11 = StrOption(name="a_second_follower", doc="My third variable", multi=True, default_multi="again an other value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml'], 'type': 'string'})
|
||||
optiondescription_8 = Leadership(name="my_leadership", doc="my_leadership", children=[option_9, option_10, option_11], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml', 'tests/types/structures/leadership/00_structure.yml']})
|
||||
optiondescription_7 = OptionDescription(name="my_leadership_2", doc="My family type", children=[optiondescription_8], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml', 'tests/types/structures/leadership/00_structure.yml']})
|
||||
option_14 = StrOption(name="a_leader", doc="My first variable", multi=True, default=["a value"], properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml'], 'type': 'string'})
|
||||
option_15 = StrOption(name="a_first_follower", doc="My second variable", multi=True, default_multi="an other value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml'], 'type': 'string'})
|
||||
option_16 = StrOption(name="a_second_follower", doc="My third variable", multi=True, default_multi="again an other value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml'], 'type': 'string'})
|
||||
option_17 = StrOption(name="a_new_follower", doc="a description", multi=True, default_multi="a value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/structures/leadership/00_structure.yml'], 'type': 'string'})
|
||||
optiondescription_13 = Leadership(name="my_leadership", doc="my_leadership", children=[option_14, option_15, option_16, option_17], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml', 'tests/types/structures/leadership/00_structure.yml']})
|
||||
optiondescription_12 = OptionDescription(name="my_leadership_3", doc="My family type", children=[optiondescription_13], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml', 'tests/types/structures/leadership/00_structure.yml']})
|
||||
option_20 = StrOption(name="a_leader", doc="a description", multi=True, default=["a value leader", "a second leader"], properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml', 'tests/types/structures/leadership/00_structure.yml'], 'type': 'string'})
|
||||
option_21 = StrOption(name="a_first_follower", doc="My second variable", multi=True, default_multi="an other value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml'], 'type': 'string'})
|
||||
option_22 = StrOption(name="a_second_follower", doc="My third variable", multi=True, default_multi="again an other value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml'], 'type': 'string'})
|
||||
optiondescription_19 = Leadership(name="my_leadership", doc="my_leadership", children=[option_20, option_21, option_22], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml', 'tests/types/structures/leadership/00_structure.yml']})
|
||||
optiondescription_18 = OptionDescription(name="my_leadership_4", doc="My family type", children=[optiondescription_19], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/leadership/00_type.yml', 'tests/types/structures/leadership/00_structure.yml']})
|
||||
optiondescription_1 = OptionDescription(name="ns2", doc="NS2", group_type=groups.namespace, children=[optiondescription_2, optiondescription_7, optiondescription_12, optiondescription_18], properties=frozenset({"standard"}))
|
||||
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])
|
||||
36
tests/types/result/leadership/variables.json
Normal file
36
tests/types/result/leadership/variables.json
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
"ns2.my_leadership_1.my_leadership.a_leader": [
|
||||
{
|
||||
"ns2.my_leadership_1.my_leadership.a_leader": "a value",
|
||||
"ns2.my_leadership_1.my_leadership.a_first_follower": "an other value",
|
||||
"ns2.my_leadership_1.my_leadership.a_second_follower": "again an other value"
|
||||
}
|
||||
],
|
||||
"ns2.my_leadership_2.my_leadership.a_leader": [
|
||||
{
|
||||
"ns2.my_leadership_2.my_leadership.a_leader": "a value",
|
||||
"ns2.my_leadership_2.my_leadership.a_first_follower": "a modified value",
|
||||
"ns2.my_leadership_2.my_leadership.a_second_follower": "again an other value"
|
||||
}
|
||||
],
|
||||
"ns2.my_leadership_3.my_leadership.a_leader": [
|
||||
{
|
||||
"ns2.my_leadership_3.my_leadership.a_leader": "a value",
|
||||
"ns2.my_leadership_3.my_leadership.a_first_follower": "an other value",
|
||||
"ns2.my_leadership_3.my_leadership.a_second_follower": "again an other value",
|
||||
"ns2.my_leadership_3.my_leadership.a_new_follower": "a value"
|
||||
}
|
||||
],
|
||||
"ns2.my_leadership_4.my_leadership.a_leader": [
|
||||
{
|
||||
"ns2.my_leadership_4.my_leadership.a_leader": "a value leader",
|
||||
"ns2.my_leadership_4.my_leadership.a_first_follower": "an other value",
|
||||
"ns2.my_leadership_4.my_leadership.a_second_follower": "again an other value"
|
||||
},
|
||||
{
|
||||
"ns2.my_leadership_4.my_leadership.a_leader": "a second leader",
|
||||
"ns2.my_leadership_4.my_leadership.a_first_follower": "an other value",
|
||||
"ns2.my_leadership_4.my_leadership.a_second_follower": "again an other value"
|
||||
}
|
||||
]
|
||||
}
|
||||
36
tests/types/result/leadership/variables_rw.json
Normal file
36
tests/types/result/leadership/variables_rw.json
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
"ns2.my_leadership_1.my_leadership.a_leader": [
|
||||
{
|
||||
"ns2.my_leadership_1.my_leadership.a_leader": "a value",
|
||||
"ns2.my_leadership_1.my_leadership.a_first_follower": "an other value",
|
||||
"ns2.my_leadership_1.my_leadership.a_second_follower": "again an other value"
|
||||
}
|
||||
],
|
||||
"ns2.my_leadership_2.my_leadership.a_leader": [
|
||||
{
|
||||
"ns2.my_leadership_2.my_leadership.a_leader": "a value",
|
||||
"ns2.my_leadership_2.my_leadership.a_first_follower": "a modified value",
|
||||
"ns2.my_leadership_2.my_leadership.a_second_follower": "again an other value"
|
||||
}
|
||||
],
|
||||
"ns2.my_leadership_3.my_leadership.a_leader": [
|
||||
{
|
||||
"ns2.my_leadership_3.my_leadership.a_leader": "a value",
|
||||
"ns2.my_leadership_3.my_leadership.a_first_follower": "an other value",
|
||||
"ns2.my_leadership_3.my_leadership.a_second_follower": "again an other value",
|
||||
"ns2.my_leadership_3.my_leadership.a_new_follower": "a value"
|
||||
}
|
||||
],
|
||||
"ns2.my_leadership_4.my_leadership.a_leader": [
|
||||
{
|
||||
"ns2.my_leadership_4.my_leadership.a_leader": "a value leader",
|
||||
"ns2.my_leadership_4.my_leadership.a_first_follower": "an other value",
|
||||
"ns2.my_leadership_4.my_leadership.a_second_follower": "again an other value"
|
||||
},
|
||||
{
|
||||
"ns2.my_leadership_4.my_leadership.a_leader": "a second leader",
|
||||
"ns2.my_leadership_4.my_leadership.a_first_follower": "an other value",
|
||||
"ns2.my_leadership_4.my_leadership.a_second_follower": "again an other value"
|
||||
}
|
||||
]
|
||||
}
|
||||
30
tests/types/structures/leadership/00_structure.yml
Normal file
30
tests/types/structures/leadership/00_structure.yml
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
version: 1.1
|
||||
|
||||
my_leadership_1:
|
||||
type: my_family_type_with_leadership
|
||||
|
||||
my_leadership_2:
|
||||
type: my_family_type_with_leadership
|
||||
|
||||
my_leadership:
|
||||
|
||||
a_first_follower: a modified value
|
||||
|
||||
my_leadership_3:
|
||||
type: my_family_type_with_leadership
|
||||
|
||||
my_leadership:
|
||||
|
||||
a_new_follower: a value # a description
|
||||
|
||||
my_leadership_4:
|
||||
type: my_family_type_with_leadership
|
||||
|
||||
my_leadership:
|
||||
|
||||
a_leader: # a description
|
||||
- a value leader
|
||||
- a second leader
|
||||
...
|
||||
16
tests/types/types/leadership/00_type.yml
Normal file
16
tests/types/types/leadership/00_type.yml
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
version: 1.1
|
||||
|
||||
my_family_type_with_leadership: # My family type
|
||||
|
||||
my_leadership:
|
||||
type: leadership
|
||||
|
||||
a_leader: # My first variable
|
||||
- a value
|
||||
|
||||
a_first_follower: an other value # My second variable
|
||||
|
||||
a_second_follower: again an other value # My third variable
|
||||
...
|
||||
Loading…
Reference in a new issue