mirror of
https://github.com/tiqi-group/pydase.git
synced 2025-04-22 09:10:01 +02:00
65 lines
1.7 KiB
Python
65 lines
1.7 KiB
Python
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,
|
|
}
|
|
}
|