From bbcba8b39f24800bae643fa88adbc0f87e500bb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mose=20M=C3=BCller?= Date: Wed, 11 Oct 2023 13:35:21 +0200 Subject: [PATCH] test: adding test for ColouredEnum component --- tests/components/test_coloured_enum.py | 51 ++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 tests/components/test_coloured_enum.py diff --git a/tests/components/test_coloured_enum.py b/tests/components/test_coloured_enum.py new file mode 100644 index 0000000..7ec8184 --- /dev/null +++ b/tests/components/test_coloured_enum.py @@ -0,0 +1,51 @@ +from pytest import CaptureFixture, LogCaptureFixture + +from pydase.components.coloured_enum import ColouredEnum +from pydase.data_service.data_service import DataService + +from .. import caplog # noqa + + +def test_ColouredEnum(capsys: CaptureFixture) -> 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 = ServiceClass() + + service.status = MyStatus.FAILING + + captured = capsys.readouterr() + + expected_output = sorted( + [ + "ServiceClass.status = #FF0000", + ] + ) + actual_output = sorted(captured.out.strip().split("\n")) # type: ignore + assert actual_output == expected_output + + +def test_warning(caplog: LogCaptureFixture) -> None: # noqa + class MyStatus(ColouredEnum): + RUNNING = "#00FF00" + FAILING = "#FF0000" + + class ServiceClass(DataService): + status = MyStatus.RUNNING + + assert ( + "Warning: Class MyStatus does not inherit from DataService." not in caplog.text + )