adds enum name to serialized object representation

This commit is contained in:
Mose Müller 2024-03-26 10:50:16 +01:00
parent 75c5bc6877
commit d9ea33abb6
2 changed files with 8 additions and 0 deletions

View File

@ -103,6 +103,7 @@ class Serializer:
value = obj.name
readonly = False
doc = obj.__doc__
class_name = type(obj).__name__
if sys.version_info < (3, 11) and doc == "An enumeration.":
doc = None
if isinstance(obj, pydase.components.coloured_enum.ColouredEnum):
@ -111,6 +112,7 @@ class Serializer:
obj_type = "Enum"
return {
"name": class_name,
"type": obj_type,
"value": value,
"readonly": readonly,

View File

@ -83,6 +83,7 @@ def test_enum_serialize() -> None:
assert dump(EnumAttribute())["value"] == {
"some_enum": {
"type": "Enum",
"name": "EnumClass",
"value": "FOO",
"enum": {"FOO": "foo", "BAR": "bar"},
"readonly": False,
@ -92,6 +93,7 @@ def test_enum_serialize() -> None:
assert dump(EnumPropertyWithoutSetter())["value"] == {
"some_enum": {
"type": "Enum",
"name": "EnumClass",
"value": "FOO",
"enum": {"FOO": "foo", "BAR": "bar"},
"readonly": True,
@ -101,6 +103,7 @@ def test_enum_serialize() -> None:
assert dump(EnumPropertyWithSetter())["value"] == {
"some_enum": {
"type": "Enum",
"name": "EnumClass",
"value": "FOO",
"enum": {"FOO": "foo", "BAR": "bar"},
"readonly": False,
@ -123,6 +126,7 @@ def test_ColouredEnum_serialize() -> None:
assert dump(Status.FAILED) == {
"type": "ColouredEnum",
"name": "Status",
"value": "FAILED",
"enum": {
"CANCELLED": "SlateGray",
@ -427,6 +431,7 @@ def test_update_nested_attribute(setup_dict: dict[str, Any]) -> None:
def test_update_float_attribute_to_enum(setup_dict: dict[str, Any]) -> None:
set_nested_value_by_path(setup_dict, "attr2.attr3", MyEnum.RUNNING)
assert setup_dict["attr2"]["value"]["attr3"] == {
"name": "MyEnum",
"doc": "MyEnum description",
"enum": {"FINISHED": "finished", "RUNNING": "running"},
"readonly": False,
@ -476,6 +481,7 @@ def test_update_list_append(setup_dict: dict[str, SerializedObject]) -> None:
set_nested_value_by_path(setup_dict, "attr_list[3]", MyEnum.RUNNING)
assert setup_dict["attr_list"]["value"][3] == {
"doc": "MyEnum description",
"name": "MyEnum",
"enum": {"FINISHED": "finished", "RUNNING": "running"},
"readonly": False,
"type": "Enum",