From d9ea33abb612ec1228a37753f7bab66e7793d3cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mose=20M=C3=BCller?= Date: Tue, 26 Mar 2024 10:50:16 +0100 Subject: [PATCH] adds enum name to serialized object representation --- src/pydase/utils/serializer.py | 2 ++ tests/utils/test_serializer.py | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/src/pydase/utils/serializer.py b/src/pydase/utils/serializer.py index 8536eca..30a65f1 100644 --- a/src/pydase/utils/serializer.py +++ b/src/pydase/utils/serializer.py @@ -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, diff --git a/tests/utils/test_serializer.py b/tests/utils/test_serializer.py index ba7c3e3..29be23c 100644 --- a/tests/utils/test_serializer.py +++ b/tests/utils/test_serializer.py @@ -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",