fix: fixed .get inconsistencies

This commit is contained in:
wakonig_k 2023-12-08 10:27:19 +01:00
parent 4789e379ed
commit 83af8127da
2 changed files with 5 additions and 4 deletions

View File

@ -329,7 +329,8 @@ class OphydInterfaceBase(RPCBase):
if filter_to_hints:
signals = {key: val for key, val in signals.items() if key in self._hints}
if self._signal_info:
return signals.get(self._signal_info.get("obj_name"))
obj_name = self._signal_info.get("obj_name")
return {obj_name: signals.get(obj_name, {})}
return {key: val for key, val in signals.items() if key.startswith(self.full_name)}
@rpc
@ -365,8 +366,8 @@ class OphydInterfaceBase(RPCBase):
ret = self.read()
if ret is None:
return None
return ret.get("value")
# return ret
return ret.get(self._signal_info.get("obj_name"), {}).get("value")
@rpc
def put(self, value: Any):

View File

@ -107,7 +107,7 @@ def test_read_kind_hinted(dev, kind, cached):
if cached:
mock_get.assert_called_once_with(MessageEndpoints.device_readback("samx"))
mock_run.assert_not_called()
assert res == {"value": 0, "timestamp": 1701105880.1711318}
assert res == {"samx": {"value": 0, "timestamp": 1701105880.1711318}}
else:
mock_run.assert_called_once_with(cached=False, fcn=dev.samx.readback.read)
mock_get.assert_not_called()