From 0b05b9c0c7c25417cb76432de0eae067fc7a86ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stanis=C5=82aw=20Malinowski?= <56644812+stan-dot@users.noreply.github.com> Date: Wed, 5 Jun 2024 14:02:56 +0100 Subject: [PATCH] add no fields if no signal name (#366) * add no fields if no signal name * fix trailing whitespace * add the test * fix the imports * add an assert line and try changing encodings * add new line at the end --- src/ophyd_async/core/standard_readable.py | 2 ++ tests/core/test_standard_readable.py | 13 ++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/ophyd_async/core/standard_readable.py b/src/ophyd_async/core/standard_readable.py index 7e6999113e..7d25d9cd2a 100644 --- a/src/ophyd_async/core/standard_readable.py +++ b/src/ophyd_async/core/standard_readable.py @@ -254,6 +254,8 @@ def name(self) -> str: @property def hints(self) -> Hints: + if self.signal.name == "": + return {"fields": []} return {"fields": [self.signal.name]} @classmethod diff --git a/tests/core/test_standard_readable.py b/tests/core/test_standard_readable.py index 8074f6672a..182cadeabc 100644 --- a/tests/core/test_standard_readable.py +++ b/tests/core/test_standard_readable.py @@ -8,7 +8,7 @@ from ophyd_async.core import ConfigSignal, HintedSignal, StandardReadable from ophyd_async.core.device import Device, DeviceVector from ophyd_async.core.mock_signal_backend import MockSignalBackend -from ophyd_async.core.signal import SignalR +from ophyd_async.core.signal import SignalR, soft_signal_r_and_setter from ophyd_async.protocols import AsyncConfigurable, AsyncReadable, AsyncStageable @@ -219,3 +219,14 @@ def test_standard_readable_set_readable_signals(): assert all(isinstance(x, ConfigSignal) for x in sr._configurables) assert len(sr._stageables) == 1 assert all(isinstance(x, HintedSignal) for x in sr._stageables) + + +def test_standard_readable_add_children_multi_nested(): + inner = StandardReadable() + outer = StandardReadable() + with inner.add_children_as_readables(HintedSignal): + inner.a, _ = soft_signal_r_and_setter(float, initial_value=5.0) + inner.b, _ = soft_signal_r_and_setter(float, initial_value=6.0) + with outer.add_children_as_readables(): + outer.inner = inner + assert outer