From f7f64bbe924ccf3e6b69e268b0788952f72df8d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mose=20M=C3=BCller?= Date: Wed, 25 Oct 2023 11:59:48 +0200 Subject: [PATCH] adding callback_manager tests --- tests/data_service/test_callback_manager.py | 56 +++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 tests/data_service/test_callback_manager.py diff --git a/tests/data_service/test_callback_manager.py b/tests/data_service/test_callback_manager.py new file mode 100644 index 0000000..05a15a1 --- /dev/null +++ b/tests/data_service/test_callback_manager.py @@ -0,0 +1,56 @@ +import logging + +from pytest import CaptureFixture + +import pydase + +logger = logging.getLogger() + + +def test_DataService_task_callback(capsys: CaptureFixture) -> None: + class MyService(pydase.DataService): + async def my_task(self) -> None: + logger.info("Triggered task.") + + async def my_other_task(self) -> None: + logger.info("Triggered other task.") + + service = MyService() + service.start_my_task() # type: ignore + service.start_my_other_task() # type: ignore + + captured = capsys.readouterr() + expected_output = sorted( + [ + "MyService.my_task = {}", + "MyService.my_other_task = {}", + ] + ) + actual_output = sorted(captured.out.strip().split("\n")) # type: ignore + assert expected_output == actual_output + + +def test_DataServiceList_task_callback(capsys: CaptureFixture) -> None: + class MySubService(pydase.DataService): + async def my_task(self) -> None: + logger.info("Triggered task.") + + async def my_other_task(self) -> None: + logger.info("Triggered other task.") + + class MyService(pydase.DataService): + sub_services_list = [MySubService() for i in range(2)] + + service = MyService() + service.sub_services_list[0].start_my_task() # type: ignore + service.sub_services_list[1].start_my_other_task() # type: ignore + + captured = capsys.readouterr() + expected_output = sorted( + [ + "MyService.sub_services_list[0].my_task = {}", + "MyService.sub_services_list[1].my_other_task = {}", + ] + ) + actual_output = sorted(captured.out.strip().split("\n")) # type: ignore + assert expected_output == actual_output