better message when a parameter is overridden by an invalid value
happens e.g. then writing status = StatusType(...) instead of status = Parameter(datatype=StatusType(...)) on the class level + improve doc strings Change-Id: I05a0b0b0da4438a40b525da40018bb5b09fd5303 Reviewed-on: https://forge.frm2.tum.de/review/c/secop/frappy/+/35001 Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de> Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
This commit is contained in:
parent
8775103bf8
commit
e57ad9826e
@ -259,8 +259,16 @@ class Parameter(Accessible):
|
|||||||
merged_properties.update(self.ownProperties)
|
merged_properties.update(self.ownProperties)
|
||||||
|
|
||||||
def create_from_value(self, properties, value):
|
def create_from_value(self, properties, value):
|
||||||
"""return a clone with given value and inherited properties"""
|
"""return a clone with given value and inherited properties
|
||||||
return self.clone(properties, value=self.datatype(value))
|
|
||||||
|
called when a Parameter is overridden with a bare value
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
value = self.datatype(value)
|
||||||
|
except Exception as e:
|
||||||
|
raise ProgrammingError(f'{self.name} must be assigned to a Parameter '
|
||||||
|
f'or a value compatible with {type(self.datatype).name}') from e
|
||||||
|
return self.clone(properties, value=value)
|
||||||
|
|
||||||
def merge(self, merged_properties):
|
def merge(self, merged_properties):
|
||||||
"""merge with inherited properties
|
"""merge with inherited properties
|
||||||
@ -462,7 +470,8 @@ class Command(Accessible):
|
|||||||
def create_from_value(self, properties, value):
|
def create_from_value(self, properties, value):
|
||||||
"""return a clone with given value and inherited properties
|
"""return a clone with given value and inherited properties
|
||||||
|
|
||||||
this is needed when the @Command is missing on a method overriding a command"""
|
called when the @Command is missing on a method overriding a command
|
||||||
|
"""
|
||||||
if not callable(value):
|
if not callable(value):
|
||||||
raise ProgrammingError(f'{self.name} = {value!r} is overriding a Command')
|
raise ProgrammingError(f'{self.name} = {value!r} is overriding a Command')
|
||||||
return self.clone(properties)(value)
|
return self.clone(properties)(value)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user