fix feature for removing commands

from a bug introduced in the 'fix parameter inheritance' change

Change-Id: I757c354130077d8838aac864b21b4f81caa9bccf
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/27096
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
This commit is contained in:
zolliker 2021-11-10 15:29:55 +01:00
parent ad7cfe4ea0
commit 45dd14a72c
2 changed files with 19 additions and 2 deletions

View File

@ -68,11 +68,15 @@ class HasAccessibles(HasProperties):
override_values.pop(key, None) override_values.pop(key, None)
elif key in accessibles: elif key in accessibles:
override_values[key] = value override_values[key] = value
for aname, aobj in accessibles.items(): for aname, aobj in list(accessibles.items()):
if aname in override_values: if aname in override_values:
aobj = aobj.copy() aobj = aobj.copy()
value = override_values[aname]
if value is None:
accessibles.pop(aname)
continue
aobj.merge(merged_properties[aname]) aobj.merge(merged_properties[aname])
aobj.override(override_values[aname]) aobj.override(value)
# replace the bare value by the created accessible # replace the bare value by the created accessible
setattr(cls, aname, aobj) setattr(cls, aname, aobj)
else: else:

View File

@ -346,3 +346,16 @@ def test_command_config():
'argument': {'type': 'bool'}, 'argument': {'type': 'bool'},
'result': {'type': 'bool'}, 'result': {'type': 'bool'},
} }
def test_command_none():
srv = ServerStub({})
class Mod(Drivable):
pass
class Mod2(Drivable):
stop = None
assert 'stop' in Mod('o', logger, {'description': ''}, srv).accessibles
assert 'stop' not in Mod2('o', logger, {'description': ''}, srv).accessibles