diff --git a/bec_widgets/widgets/services/device_browser/device_item/device_signal_display.py b/bec_widgets/widgets/services/device_browser/device_item/device_signal_display.py index 44c0cd68..934030a5 100644 --- a/bec_widgets/widgets/services/device_browser/device_item/device_signal_display.py +++ b/bec_widgets/widgets/services/device_browser/device_item/device_signal_display.py @@ -1,3 +1,4 @@ +from bec_lib.device import Device from bec_qthemes import material_icon from qtpy.QtCore import Qt from qtpy.QtWidgets import QHBoxLayout, QLabel, QToolButton, QVBoxLayout, QWidget @@ -64,16 +65,30 @@ class SignalDisplay(BECWidget, QWidget): self._add_refresh_button() if self._device in self.dev: - for sig, info in self.dev[self.device]._info.get("signals", {}).items(): - if info.get("kind_str") in [Kind.hinted.name, Kind.normal.name, Kind.config.name]: - self._content_layout.addWidget( - SignalLabel( - device=self._device, - signal=sig, - show_select_button=False, - show_default_units=True, + if isinstance(self.dev[self.device], Device): + for sig, info in self.dev[self.device]._info.get("signals", {}).items(): + if info.get("kind_str") in [ + Kind.hinted.name, + Kind.normal.name, + Kind.config.name, + ]: + self._content_layout.addWidget( + SignalLabel( + device=self._device, + signal=sig, + show_select_button=False, + show_default_units=True, + ) ) + else: + self._content_layout.addWidget( + SignalLabel( + device=self._device, + signal=self._device, + show_select_button=False, + show_default_units=True, ) + ) self._content_layout.addStretch(1) else: self._content_layout.addWidget( diff --git a/tests/unit_tests/test_device_browser.py b/tests/unit_tests/test_device_browser.py index c774249c..3ef97af8 100644 --- a/tests/unit_tests/test_device_browser.py +++ b/tests/unit_tests/test_device_browser.py @@ -2,6 +2,7 @@ from typing import TYPE_CHECKING from unittest import mock import pytest +from bec_lib.device import Device from qtpy.QtCore import QPoint, Qt from qtpy.QtWidgets import QTabWidget @@ -172,7 +173,7 @@ def test_signal_display_no_device(mocked_client, qtbot): def test_signal_display_omitted_not_added(mocked_client, qtbot): - device_mock = mock.MagicMock() + device_mock = mock.MagicMock(spec=Device) device_mock._info = {"signals": {"signal_1": {"kind_str": "omitted"}}} signal_display = SignalDisplay(client=mocked_client, device="test_device_1")