make return value 'Done' unneccessary
'Done' was introduced in order to suppress unneccessary duplicate updates. However, since super calls on access methods are allowed, it is not nice when such a method returns Done, as this is not automagically replaced by the current parameter value. As a consequence: - using Done is discouraged, but not (yet) removed in all code - the 'omit_unchanged_within' property is moved from Module to an internal Parameter property 'update_unchanged' - its default is moved from a SEC node property to generalConfig - the 'update_unchanged' parameter property may be set to 'never' for parameters where duplicate updates make no sense - this property might be set to 'always', for measurements, where even unchanged values taken from HW should be transmitted Change-Id: I2847c983ca09c2c4098e402edd08d0c96c3913f4 Reviewed-on: https://forge.frm2.tum.de/review/c/secop/frappy/+/30672 Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de> Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
This commit is contained in:
@ -109,3 +109,21 @@ def test_Export():
|
||||
class Mod(HasAccessibles):
|
||||
param = Parameter('description1', datatype=BoolType, default=False)
|
||||
assert Mod.param.export == '_param'
|
||||
|
||||
|
||||
@pytest.mark.parametrize('arg, value', [
|
||||
('always', 0),
|
||||
(0, 0),
|
||||
('never', 999999999),
|
||||
(999999999, 999999999),
|
||||
(1, 1),
|
||||
])
|
||||
def test_update_unchanged_ok(arg, value):
|
||||
par = Parameter('', datatype=FloatRange(), default=0, update_unchanged=arg)
|
||||
assert par.update_unchanged == value
|
||||
|
||||
|
||||
@pytest.mark.parametrize('arg', ['alws', '', -2, -0.1, None])
|
||||
def test_update_unchanged_fail(arg):
|
||||
with pytest.raises(ProgrammingError):
|
||||
Parameter('', datatype=FloatRange(), default=0, update_unchanged=arg)
|
||||
|
Reference in New Issue
Block a user