adds dict test for pydase.Client

The pop
This commit is contained in:
Mose Müller 2024-04-30 15:22:44 +02:00
parent 36e30970c5
commit ed80c92b1f

View File

@ -12,6 +12,8 @@ def pydase_client() -> Generator[pydase.Client, None, Any]:
class SubService(pydase.DataService): class SubService(pydase.DataService):
name = "SubService" name = "SubService"
subservice_instance = SubService()
class MyService(pydase.DataService): class MyService(pydase.DataService):
def __init__(self) -> None: def __init__(self) -> None:
super().__init__() super().__init__()
@ -19,6 +21,10 @@ def pydase_client() -> Generator[pydase.Client, None, Any]:
self._my_property = 12.1 self._my_property = 12.1
self.sub_service = SubService() self.sub_service = SubService()
self.list_attr = [1, 2] self.list_attr = [1, 2]
self.dict_attr = {
"foo": subservice_instance,
"dotted.key": subservice_instance,
}
@property @property
def my_property(self) -> float: def my_property(self) -> float:
@ -104,6 +110,18 @@ def test_list(pydase_client: pydase.Client) -> None:
assert pydase_client.proxy.list_attr == [] assert pydase_client.proxy.list_attr == []
def test_dict(pydase_client: pydase.Client) -> None:
pydase_client.proxy.dict_attr["foo"].name = "foo"
assert pydase_client.proxy.dict_attr["foo"].name == "foo"
assert pydase_client.proxy.dict_attr["dotted.key"].name == "foo"
# pop will not return anything as the server object was deleted
assert pydase_client.proxy.dict_attr.pop("dotted.key") is None
# pop will remove the dictionary entry on the server
assert list(pydase_client.proxy.dict_attr.keys()) == ["foo"]
def test_tab_completion(pydase_client: pydase.Client) -> None: def test_tab_completion(pydase_client: pydase.Client) -> None:
# Tab completion gets its suggestions from the __dir__ class method # Tab completion gets its suggestions from the __dir__ class method
assert all( assert all(