From dfb6f966aabb43eec9e50582bb9abda00b868edd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mose=20M=C3=BCller?= Date: Tue, 20 Feb 2024 12:29:44 +0100 Subject: [PATCH] adds test for dynamic list entries with properties --- .../test_data_service_observer.py | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tests/data_service/test_data_service_observer.py b/tests/data_service/test_data_service_observer.py index 875d239..9e487fb 100644 --- a/tests/data_service/test_data_service_observer.py +++ b/tests/data_service/test_data_service_observer.py @@ -94,3 +94,31 @@ def test_protected_or_private_change_logs(caplog: pytest.LogCaptureFixture) -> N service.subclass._name = "Hello" assert "'subclass._name' changed to 'Hello'" not in caplog.text + + +def test_dynamic_list_entry_with_property(caplog: pytest.LogCaptureFixture) -> None: + class PropertyClass(pydase.DataService): + _name = "Hello" + + @property + def name(self) -> str: + """The name property.""" + return self._name + + class MyService(pydase.DataService): + def __init__(self) -> None: + super().__init__() + self.list_attr = [] + + def toggle_high_voltage(self) -> None: + self.list_attr = [] + self.list_attr.append(PropertyClass()) + self.list_attr[0]._name = "Hoooo" + + service = MyService() + state_manager = StateManager(service) + DataServiceObserver(state_manager) + service.toggle_high_voltage() + + assert "'list_attr[0].name' changed to 'Hello'" not in caplog.text + assert "'list_attr[0].name' changed to 'Hoooo'" in caplog.text