From 5f64ec131c8922291d88775c2b7b714393cbe0f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mose=20M=C3=BCller?= Date: Tue, 10 Oct 2023 12:29:45 +0200 Subject: [PATCH] feat: adding enum_serialize test --- tests/data_service/test_data_service.py | 64 +++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 tests/data_service/test_data_service.py diff --git a/tests/data_service/test_data_service.py b/tests/data_service/test_data_service.py new file mode 100644 index 0000000..8d08a3c --- /dev/null +++ b/tests/data_service/test_data_service.py @@ -0,0 +1,64 @@ +from enum import Enum + +import pydase + + +def test_enum_serialize() -> None: + class EnumClass(Enum): + FOO = "foo" + BAR = "bar" + + class EnumAttribute(pydase.DataService): + def __init__(self) -> None: + self.some_enum = EnumClass.FOO + super().__init__() + + class EnumPropertyWithoutSetter(pydase.DataService): + def __init__(self) -> None: + self._some_enum = EnumClass.FOO + super().__init__() + + @property + def some_enum(self) -> EnumClass: + return self._some_enum + + class EnumPropertyWithSetter(pydase.DataService): + def __init__(self) -> None: + self._some_enum = EnumClass.FOO + super().__init__() + + @property + def some_enum(self) -> EnumClass: + return self._some_enum + + @some_enum.setter + def some_enum(self, value: EnumClass) -> None: + self._some_enum = value + + assert EnumAttribute().serialize() == { + "some_enum": { + "type": "Enum", + "value": "FOO", + "enum": {"FOO": "foo", "BAR": "bar"}, + "readonly": False, + "doc": None, + } + } + assert EnumPropertyWithoutSetter().serialize() == { + "some_enum": { + "type": "Enum", + "value": "FOO", + "enum": {"FOO": "foo", "BAR": "bar"}, + "readonly": True, + "doc": None, + } + } + assert EnumPropertyWithSetter().serialize() == { + "some_enum": { + "type": "Enum", + "value": "FOO", + "enum": {"FOO": "foo", "BAR": "bar"}, + "readonly": False, + "doc": None, + } + }