manage test attribute

This commit is contained in:
2021-01-23 08:45:41 +01:00
parent 562ef23dd2
commit c05c0b9716
21 changed files with 170 additions and 29 deletions

View File

@ -53,6 +53,38 @@ class VariableAnnotator: # pylint: disable=R0903
return
self.objectspace = objectspace
self.convert_variable()
self.convert_test()
def convert_variable(self):
"""convert variable
"""
for families in self.objectspace.space.variables.values():
families.doc = families.name
families.path = families.name
for family in families.family.values():
if not hasattr(family, 'description'):
family.description = family.name
for key, value in RENAME_ATTIBUTES.items():
setattr(family, value, getattr(family, key))
setattr(family, key, None)
family.name = normalize_family(family.name)
if not hasattr(family, 'variable'):
continue
for variable in family.variable.values():
if isinstance(variable, self.objectspace.leadership):
# first variable is a leader, others are follower
variable_type = 'leader'
for follower in variable.variable:
self._convert_variable(families.name,
follower,
variable_type,
)
variable_type = 'follower'
else:
self._convert_variable(families.name,
variable,
'variable',
)
def _convert_variable(self,
namespace: str,
@ -113,33 +145,33 @@ class VariableAnnotator: # pylint: disable=R0903
self.objectspace.space.constraints.check.append(check)
variable.type = 'string'
def convert_variable(self):
"""convert variable
def convert_test(self):
"""Convert variable tests value
"""
for families in self.objectspace.space.variables.values():
families.doc = families.name
families.path = families.name
for family in families.family.values():
if not hasattr(family, 'description'):
family.description = family.name
for key, value in RENAME_ATTIBUTES.items():
setattr(family, value, getattr(family, key))
setattr(family, key, None)
family.name = normalize_family(family.name)
if not hasattr(family, 'variable'):
continue
for variable in family.variable.values():
if isinstance(variable, self.objectspace.leadership):
# first variable is a leader, others are follower
variable_type = 'leader'
for follower in variable.variable:
self._convert_variable(families.name,
follower,
variable_type,
)
variable_type = 'follower'
self._convert_test(follower)
else:
self._convert_variable(families.name,
variable,
'variable',
)
self._convert_test(variable)
def _convert_test(self,
variable,
) -> None:
if hasattr(variable, 'test'):
if not variable.test:
del variable.test
return
values = variable.test.split('|')
new_values = []
for value in values:
if value == '':
value = None
else:
value = CONVERT_OPTION.get(variable.type, {}).get('func', str)(value)
new_values.append(value)
variable.test = tuple(new_values)

View File

@ -298,12 +298,6 @@ class Variable(Common):
for key in self.get_attributes(self.elt):
value = getattr(self.elt, key)
if key in FORCE_INFORMATIONS:
if key == 'test': # pragma: no cover
value = value.split('|')
if self.object_type == 'IntOption':
value = [int(v) for v in value]
elif self.object_type == 'FloatOption':
value = [float(v) for v in value]
self.informations[key] = value
else:
self.attrib[key] = value