mirror of
https://github.com/tiqi-group/pydase.git
synced 2025-04-20 00:10:03 +02:00
adds test for (dynamic / static) property dependencies
This commit is contained in:
parent
3169531a24
commit
5a76d76d2b
76
tests/data_service/test_data_service_observer.py
Normal file
76
tests/data_service/test_data_service_observer.py
Normal file
@ -0,0 +1,76 @@
|
||||
import logging
|
||||
|
||||
import pydase
|
||||
from pydase.data_service.data_service_observer import DataServiceObserver
|
||||
from pydase.data_service.state_manager import StateManager
|
||||
|
||||
logger = logging.getLogger()
|
||||
|
||||
|
||||
def test_static_property_dependencies() -> None:
|
||||
class SubClass(pydase.DataService):
|
||||
_name = "SubClass"
|
||||
|
||||
@property
|
||||
def name(self) -> str:
|
||||
return self._name
|
||||
|
||||
@name.setter
|
||||
def name(self, value: str) -> None:
|
||||
self._name = value
|
||||
|
||||
class ServiceClass(pydase.DataService):
|
||||
def __init__(self) -> None:
|
||||
super().__init__()
|
||||
self.list_attr = [SubClass()]
|
||||
self._name = "ServiceClass"
|
||||
|
||||
@property
|
||||
def name(self) -> str:
|
||||
return self._name
|
||||
|
||||
@name.setter
|
||||
def name(self, value: str) -> None:
|
||||
self._name = value
|
||||
|
||||
service_instance = ServiceClass()
|
||||
state_manager = StateManager(service_instance)
|
||||
observer = DataServiceObserver(state_manager)
|
||||
logger.debug(observer.property_deps_dict)
|
||||
assert observer.property_deps_dict == {
|
||||
"list_attr[0]._name": ["list_attr[0].name"],
|
||||
"_name": ["name"],
|
||||
}
|
||||
|
||||
|
||||
def test_dynamic_list_property_dependencies() -> None:
|
||||
class SubClass(pydase.DataService):
|
||||
_name = "SubClass"
|
||||
|
||||
@property
|
||||
def name(self) -> str:
|
||||
return self._name
|
||||
|
||||
@name.setter
|
||||
def name(self, value: str) -> None:
|
||||
self._name = value
|
||||
|
||||
class ServiceClass(pydase.DataService):
|
||||
def __init__(self) -> None:
|
||||
super().__init__()
|
||||
self.list_attr = [SubClass()]
|
||||
|
||||
service_instance = ServiceClass()
|
||||
state_manager = StateManager(service_instance)
|
||||
observer = DataServiceObserver(state_manager)
|
||||
|
||||
assert observer.property_deps_dict == {
|
||||
"list_attr[0]._name": ["list_attr[0].name"],
|
||||
}
|
||||
|
||||
service_instance.list_attr.append(SubClass())
|
||||
|
||||
assert observer.property_deps_dict == {
|
||||
"list_attr[0]._name": ["list_attr[0].name"],
|
||||
"list_attr[1]._name": ["list_attr[1].name"],
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user