From 99c7ad0ec8eb4b399201909b4801fcfcbc554ba9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mose=20M=C3=BCller?= Date: Tue, 5 Mar 2024 14:24:49 +0100 Subject: [PATCH] updates serializer tests --- tests/utils/test_serializer.py | 38 +++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/tests/utils/test_serializer.py b/tests/utils/test_serializer.py index 4d4868d..096dec3 100644 --- a/tests/utils/test_serializer.py +++ b/tests/utils/test_serializer.py @@ -1,4 +1,5 @@ import asyncio +import enum from enum import Enum from typing import Any @@ -18,6 +19,11 @@ from pydase.utils.serializer import ( ) +class MyEnum(enum.Enum): + RUNNING = "running" + FINISHED = "finished" + + @pytest.mark.parametrize( "test_input, expected", [ @@ -396,33 +402,55 @@ def setup_dict() -> dict[str, Any]: class ServiceClass(pydase.DataService): attr1 = 1.0 attr2 = MySubclass() + enum_attr = MyEnum.RUNNING attr_list = [0, 1, MySubclass()] return ServiceClass().serialize()["value"] -def test_update_attribute(setup_dict) -> None: +def test_update_attribute(setup_dict: dict[str, Any]) -> None: set_nested_value_by_path(setup_dict, "attr1", 15) assert setup_dict["attr1"]["value"] == 15 -def test_update_nested_attribute(setup_dict) -> None: +def test_update_nested_attribute(setup_dict: dict[str, Any]) -> None: set_nested_value_by_path(setup_dict, "attr2.attr3", 25.0) assert setup_dict["attr2"]["value"]["attr3"]["value"] == 25.0 -def test_update_list_entry(setup_dict) -> 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"] == { + "doc": None, + "enum": {"FINISHED": "finished", "RUNNING": "running"}, + "readonly": False, + "type": "Enum", + "value": "RUNNING", + } + + +def test_update_enum_attribute_to_float(setup_dict: dict[str, Any]) -> None: + set_nested_value_by_path(setup_dict, "enum_attr", 1.01) + assert setup_dict["enum_attr"] == { + "doc": None, + "readonly": False, + "type": "float", + "value": 1.01, + } + + +def test_update_list_entry(setup_dict: dict[str, Any]) -> None: set_nested_value_by_path(setup_dict, "attr_list[1]", 20) assert setup_dict["attr_list"]["value"][1]["value"] == 20 -def test_update_list_append(setup_dict) -> None: +def test_update_list_append(setup_dict: dict[str, Any]) -> None: set_nested_value_by_path(setup_dict, "attr_list[3]", 20) assert setup_dict["attr_list"]["value"][3]["value"] == 20 def test_update_invalid_list_index( - setup_dict, caplog: pytest.LogCaptureFixture + setup_dict: dict[str, Any], caplog: pytest.LogCaptureFixture ) -> None: set_nested_value_by_path(setup_dict, "attr_list[10]", 30) assert (