Compare commits
3 commits
17db8caa5e
...
ea8bc3f02e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ea8bc3f02e | ||
|
|
366ab9918b | ||
|
|
7409062d7f |
18 changed files with 111 additions and 2 deletions
|
|
@ -55,6 +55,8 @@ class Annotator(Walk):
|
|||
if hasattr(family, 'dynamic'):
|
||||
msg = _(f'the family "{family.name}" cannot be leadership and dynamic together')
|
||||
raise DictConsistencyError(msg, 31, family.xmlfiles)
|
||||
if not hasattr(family, 'variable'):
|
||||
continue
|
||||
for idx, variable in enumerate(family.variable.values()):
|
||||
if idx == 0:
|
||||
# it's a leader
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ FORCE_REDEFINABLES = ('family', 'follower', 'service', 'disknod', 'variables')
|
|||
# RougailObjSpace's elements that shall be forced to the UnRedefinable type
|
||||
FORCE_UNREDEFINABLES = ('value',)
|
||||
# RougailObjSpace's elements that shall not be modify
|
||||
UNREDEFINABLE = ('multi', 'type',)
|
||||
UNREDEFINABLE = ('type',)
|
||||
# RougailObjSpace's elements that did not created automaticly
|
||||
FORCE_ELEMENTS = ('property_', 'information')
|
||||
# XML text are convert has name
|
||||
|
|
|
|||
|
|
@ -169,6 +169,9 @@ class RougailLeader:
|
|||
value = err
|
||||
self._follower[name].append(value)
|
||||
|
||||
def index(self, value):
|
||||
return self._value.index(value)
|
||||
|
||||
|
||||
class RougailExtra:
|
||||
"""Object that implement access to extra variable
|
||||
|
|
@ -310,6 +313,8 @@ class RougailBaseTemplate:
|
|||
destfilename = join(self.destinations_dir, true_destfilename[1:])
|
||||
makedirs(dirname(destfilename), exist_ok=True)
|
||||
self.log.info(_(f"{filevar['engine']} processing: '{destfilename}'"))
|
||||
if isfile(destfilename):
|
||||
raise TemplateError(_(f'destination file "{destfilename}" already exists'))
|
||||
self.engines[filevar['engine']].process(filename=filename,
|
||||
source=source,
|
||||
true_destfilename=true_destfilename,
|
||||
|
|
|
|||
11
tests/dictionaries/10leadership_empty/00_base.xml
Normal file
11
tests/dictionaries/10leadership_empty/00_base.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<rougail version="0.10">
|
||||
<services>
|
||||
<service name="tata">
|
||||
</service>
|
||||
</services>
|
||||
<variables>
|
||||
<family name="empty_leader" leadership="True">
|
||||
</family>
|
||||
</variables>
|
||||
</rougail>
|
||||
10
tests/dictionaries/10leadership_empty/makedict/after.json
Normal file
10
tests/dictionaries/10leadership_empty/makedict/after.json
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"services.tata_service.activate": {
|
||||
"owner": "default",
|
||||
"value": true
|
||||
},
|
||||
"services.tata_service.manage": {
|
||||
"owner": "default",
|
||||
"value": true
|
||||
}
|
||||
}
|
||||
4
tests/dictionaries/10leadership_empty/makedict/base.json
Normal file
4
tests/dictionaries/10leadership_empty/makedict/base.json
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"services.tata_service.activate": true,
|
||||
"services.tata_service.manage": true
|
||||
}
|
||||
10
tests/dictionaries/10leadership_empty/makedict/before.json
Normal file
10
tests/dictionaries/10leadership_empty/makedict/before.json
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"services.tata_service.activate": {
|
||||
"owner": "default",
|
||||
"value": true
|
||||
},
|
||||
"services.tata_service.manage": {
|
||||
"owner": "default",
|
||||
"value": true
|
||||
}
|
||||
}
|
||||
22
tests/dictionaries/10leadership_empty/tiramisu/base.py
Normal file
22
tests/dictionaries/10leadership_empty/tiramisu/base.py
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
from importlib.machinery import SourceFileLoader as _SourceFileLoader
|
||||
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
|
||||
class func:
|
||||
pass
|
||||
_loader = _SourceFileLoader('func', 'tests/dictionaries/../eosfunc/test.py')
|
||||
_spec = _spec_from_loader(_loader.name, _loader)
|
||||
_func = _module_from_spec(_spec)
|
||||
_loader.exec_module(_func)
|
||||
for function in dir(_func):
|
||||
if function.startswith('_'):
|
||||
continue
|
||||
setattr(func, function, getattr(_func, function))
|
||||
try:
|
||||
from tiramisu3 import *
|
||||
except:
|
||||
from tiramisu import *
|
||||
option_1 = OptionDescription(name="rougail", doc="rougail", children=[])
|
||||
option_4 = BoolOption(name="activate", doc="activate", default=True)
|
||||
option_5 = BoolOption(name="manage", doc="manage", default=True)
|
||||
option_3 = OptionDescription(name="tata_service", doc="tata.service", children=[option_4, option_5])
|
||||
option_2 = OptionDescription(name="services", doc="services", children=[option_3], properties=frozenset({"hidden"}))
|
||||
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_2])
|
||||
8
tests/dictionaries/51redefine_multi/makedict/after.json
Normal file
8
tests/dictionaries/51redefine_multi/makedict/after.json
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"rougail.general.mode_conteneur_actif": {
|
||||
"owner": "default",
|
||||
"value": [
|
||||
"non"
|
||||
]
|
||||
}
|
||||
}
|
||||
5
tests/dictionaries/51redefine_multi/makedict/base.json
Normal file
5
tests/dictionaries/51redefine_multi/makedict/base.json
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"rougail.general.mode_conteneur_actif": [
|
||||
"non"
|
||||
]
|
||||
}
|
||||
8
tests/dictionaries/51redefine_multi/makedict/before.json
Normal file
8
tests/dictionaries/51redefine_multi/makedict/before.json
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"rougail.general.mode_conteneur_actif": {
|
||||
"owner": "default",
|
||||
"value": [
|
||||
"non"
|
||||
]
|
||||
}
|
||||
}
|
||||
20
tests/dictionaries/51redefine_multi/tiramisu/base.py
Normal file
20
tests/dictionaries/51redefine_multi/tiramisu/base.py
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
from importlib.machinery import SourceFileLoader as _SourceFileLoader
|
||||
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
|
||||
class func:
|
||||
pass
|
||||
_loader = _SourceFileLoader('func', 'tests/dictionaries/../eosfunc/test.py')
|
||||
_spec = _spec_from_loader(_loader.name, _loader)
|
||||
_func = _module_from_spec(_spec)
|
||||
_loader.exec_module(_func)
|
||||
for function in dir(_func):
|
||||
if function.startswith('_'):
|
||||
continue
|
||||
setattr(func, function, getattr(_func, function))
|
||||
try:
|
||||
from tiramisu3 import *
|
||||
except:
|
||||
from tiramisu import *
|
||||
option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=['non'], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "normal"}))
|
||||
option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
|
||||
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
|
||||
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])
|
||||
|
|
@ -9,3 +9,4 @@ testpre
|
|||
pretest
|
||||
leader2: test
|
||||
follower2: pre
|
||||
index: 0
|
||||
|
|
|
|||
|
|
@ -9,3 +9,4 @@ testpre
|
|||
pretest
|
||||
leader2: test
|
||||
follower2: pre
|
||||
index: 0
|
||||
|
|
|
|||
|
|
@ -33,3 +33,4 @@ diff
|
|||
%end for
|
||||
leader2: %%extra.ejabberd.new_name.description[0].description
|
||||
follower2: %%extra.ejabberd.new_name.description[0].mode
|
||||
index: %%extra.ejabberd.new_name.description.index('test')
|
||||
|
|
|
|||
|
|
@ -31,3 +31,4 @@ diff
|
|||
{% endfor -%}
|
||||
leader2: {{ extra.ejabberd.new_name.description[0].description }}
|
||||
follower2: {{ extra.ejabberd.new_name.description[0].mode }}
|
||||
index: {{ extra.ejabberd.new_name.description.index('test') }}
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ excludes = set([])
|
|||
#excludes = set(['01base_file_utfchar'])
|
||||
test_ok -= excludes
|
||||
test_raise -= excludes
|
||||
#test_ok = ['00load_autofreeze']
|
||||
#test_ok = ['70container_filesredefine']
|
||||
#test_ok = []
|
||||
#test_raise = ['80auto_autofreeze']
|
||||
#test_raise = []
|
||||
|
|
|
|||
Loading…
Reference in a new issue