better test with valid_enum and number
This commit is contained in:
parent
dfa0b5678b
commit
2e0e17705b
5 changed files with 49 additions and 6 deletions
|
@ -75,6 +75,7 @@ KEY_TYPE = {'variable': 'symlink',
|
|||
TYPE_PARAM_CHECK = ('string', 'python', 'eole', 'variable')
|
||||
TYPE_PARAM_CONDITION = ('string', 'python', 'number', 'eole', 'variable')
|
||||
TYPE_PARAM_FILL = ('string', 'eole', 'number', 'context', 'variable')
|
||||
CONVERSION = {'number': int}
|
||||
|
||||
ERASED_FAMILY_ACTION_ATTRIBUTES = ('index', 'action')
|
||||
|
||||
|
@ -685,7 +686,13 @@ class SpaceAnnotator(object):
|
|||
choices = []
|
||||
for value in values:
|
||||
choice = self.objectspace.choice()
|
||||
try:
|
||||
if type_ in CONVERSION:
|
||||
choice.name = CONVERSION[type_](value)
|
||||
else:
|
||||
choice.name = str(value)
|
||||
except:
|
||||
raise CreoleDictConsistencyError(_(f'unable to change type of a valid_enum entry "{value}" is not a valid "{type_}" for "{variable.name}"'))
|
||||
choices.append(choice.name)
|
||||
choice.type = type_
|
||||
variable.choice.append(choice)
|
||||
|
@ -694,7 +701,11 @@ class SpaceAnnotator(object):
|
|||
if hasattr(variable, 'value'):
|
||||
for value in variable.value:
|
||||
value.type = type_
|
||||
if value.name not in choices:
|
||||
if type_ in CONVERSION:
|
||||
cvalue = CONVERSION[type_](value.name)
|
||||
else:
|
||||
cvalue = value.name
|
||||
if cvalue not in choices:
|
||||
raise CreoleDictConsistencyError(_('value "{}" of variable "{}" is not in list of all expected values ({})').format(value.name, variable.name, choices))
|
||||
else:
|
||||
new_value = self.objectspace.value()
|
||||
|
|
|
@ -44,8 +44,8 @@ mo_location = LOCALE_DIR
|
|||
|
||||
gettext.find(APP_NAME, mo_location)
|
||||
gettext.textdomain(APP_NAME)
|
||||
gettext.bind_textdomain_codeset(APP_NAME, "UTF-8")
|
||||
gettext.translation(APP_NAME, fallback=True)
|
||||
#gettext.bind_textdomain_codeset(APP_NAME, "UTF-8")
|
||||
#gettext.translation(APP_NAME, fallback=True)
|
||||
|
||||
t = gettext.translation(APP_NAME, fallback=True)
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
<constraints>
|
||||
<check name="valid_enum" target="enumvar">
|
||||
<param>[i for i in range(3, 13)]</param>
|
||||
<param>['a', 'b', 'c']</param>
|
||||
</check>
|
||||
</constraints>
|
||||
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<rougail>
|
||||
|
||||
<services/>
|
||||
|
||||
<variables>
|
||||
<family name="general" mode="expert">
|
||||
<variable name="mode_conteneur_actif" type="oui/non" description="No change">
|
||||
<value>non</value>
|
||||
</variable>
|
||||
</family>
|
||||
<family name="enumfam" mode="expert">
|
||||
<variable name="enumvar" type="string" description="enumvar">
|
||||
<value>a</value>
|
||||
</variable>
|
||||
</family>
|
||||
<separators/>
|
||||
</variables>
|
||||
|
||||
<constraints>
|
||||
<check name="valid_enum" target="enumvar">
|
||||
<param>[1, 2, 3]</param>
|
||||
</check>
|
||||
</constraints>
|
||||
|
||||
<help>
|
||||
<variable name="enumvar">bla bla bla</variable>
|
||||
</help>
|
||||
|
||||
</rougail>
|
||||
<!-- vim: ts=4 sw=4 expandtab
|
||||
-->
|
|
@ -83,7 +83,7 @@ def launch_flattener(test_dir, test_ok=False):
|
|||
eolobj.save(destfile)
|
||||
result_file = join(test_dir, 'result/00-base.xml')
|
||||
if isfile(result_file):
|
||||
eolobj.save(result_file)
|
||||
#eolobj.save(result_file)
|
||||
compare_xml(destfile, result_file)
|
||||
elif test_ok:
|
||||
raise Exception(f'no test found for {test_dir}')
|
||||
|
|
Loading…
Reference in a new issue