From c148eba5dddc28176f770f0ad2c25b0f1cd079dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mose=20M=C3=BCller?= Date: Tue, 9 Apr 2024 09:25:15 +0200 Subject: [PATCH] updates client tests --- tests/client/test_client.py | 54 ++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 22 deletions(-) diff --git a/tests/client/test_client.py b/tests/client/test_client.py index 81b968b..3f3b094 100644 --- a/tests/client/test_client.py +++ b/tests/client/test_client.py @@ -9,12 +9,16 @@ from pydase.client.proxy_loader import ProxyAttributeError @pytest.fixture(scope="session") -def pydase_server() -> Generator[pydase.Server, None, Any]: +def pydase_client() -> Generator[pydase.Client, None, Any]: + class SubService(pydase.DataService): + name = "SubService" + class MyService(pydase.DataService): def __init__(self) -> None: super().__init__() self._name = "MyService" self._my_property = 12.1 + self.sub_service = SubService() @property def my_property(self) -> float: @@ -32,40 +36,46 @@ def pydase_server() -> Generator[pydase.Server, None, Any]: return input_str server = pydase.Server(MyService(), web_port=9999) - thread = threading.Thread(target=server.run) + thread = threading.Thread(target=server.run, daemon=True) thread.start() - time.sleep(0.1) # Wait for the server to start - yield server + client = pydase.Client(port=9999) + while not client.proxy.connected: + time.sleep(0.001) # Wait for the client to connect + + yield client server.handle_exit() thread.join() -def test_property(pydase_server: pydase.Server) -> None: - client = pydase.Client(port=9999) - - assert client.proxy.my_property == 12.1 - client.proxy.my_property = 2.1 - assert client.proxy.my_property == 2.1 +def test_property(pydase_client: pydase.Client) -> None: + assert pydase_client.proxy.my_property == 12.1 + pydase_client.proxy.my_property = 2.1 + assert pydase_client.proxy.my_property == 2.1 -def test_readonly_property(pydase_server: pydase.Server) -> None: - client = pydase.Client(port=9999) - - assert client.proxy.name == "MyService" +def test_readonly_property(pydase_client: pydase.Client) -> None: + assert pydase_client.proxy.name == "MyService" with pytest.raises(ProxyAttributeError): - client.proxy.name = "Hello" + pydase_client.proxy.name = "Hello" -def test_method_execution(pydase_server: pydase.Server) -> None: - client = pydase.Client(port=9999) - - assert client.proxy.my_method("My return string") == "My return string" - assert client.proxy.my_method(input_str="My return string") == "My return string" +def test_method_execution(pydase_client: pydase.Client) -> None: + assert pydase_client.proxy.my_method("My return string") == "My return string" + assert ( + pydase_client.proxy.my_method(input_str="My return string") + == "My return string" + ) with pytest.raises(TypeError): - client.proxy.my_method("Something", 2) + pydase_client.proxy.my_method("Something", 2) with pytest.raises(TypeError): - client.proxy.my_method(kwarg="hello") + pydase_client.proxy.my_method(kwarg="hello") + + +def test_nested_service(pydase_client: pydase.Client) -> None: + assert pydase_client.proxy.sub_service.name == "SubService" + pydase_client.proxy.sub_service.name = "New name" + assert pydase_client.proxy.sub_service.name == "New name"