mirror of
https://github.com/tiqi-group/pydase.git
synced 2025-04-20 00:10:03 +02:00
48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
from pydase.components.coloured_enum import ColouredEnum
|
|
from pydase.data_service.data_service import DataService
|
|
from pydase.data_service.data_service_observer import DataServiceObserver
|
|
from pydase.data_service.state_manager import StateManager
|
|
from pytest import LogCaptureFixture
|
|
|
|
|
|
def test_ColouredEnum(caplog: LogCaptureFixture) -> None:
|
|
class MyStatus(ColouredEnum):
|
|
RUNNING = "#00FF00"
|
|
FAILING = "#FF0000"
|
|
|
|
class ServiceClass(DataService):
|
|
_status = MyStatus.RUNNING
|
|
|
|
@property
|
|
def status(self) -> MyStatus:
|
|
return self._status
|
|
|
|
@status.setter
|
|
def status(self, value: MyStatus) -> None:
|
|
# do something ...
|
|
self._status = value
|
|
|
|
service_instance = ServiceClass()
|
|
state_manager = StateManager(service_instance)
|
|
DataServiceObserver(state_manager)
|
|
|
|
service_instance.status = MyStatus.FAILING
|
|
|
|
assert "'status' changed to 'MyStatus.FAILING'" in caplog.text
|
|
|
|
|
|
def test_warning(caplog: LogCaptureFixture) -> None:
|
|
class MyStatus(ColouredEnum):
|
|
RUNNING = "#00FF00"
|
|
FAILING = "#FF0000"
|
|
|
|
class ServiceClass(DataService):
|
|
status = MyStatus.RUNNING
|
|
|
|
ServiceClass()
|
|
|
|
assert (
|
|
"Class 'MyStatus' does not inherit from DataService. This may lead to "
|
|
"unexpected behaviour!" not in caplog.text
|
|
)
|