mirror of
https://github.com/tiqi-group/pydase.git
synced 2025-06-05 21:20:40 +02:00
updates sio_setup tests (removes mock objects)
This commit is contained in:
parent
2d3e7d8c1b
commit
6a6d1b27aa
@ -1,10 +1,10 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
import logging
|
import logging
|
||||||
from unittest.mock import AsyncMock, MagicMock
|
|
||||||
|
|
||||||
|
import pydase
|
||||||
import pytest
|
import pytest
|
||||||
|
from pydase.data_service.data_service_observer import DataServiceObserver
|
||||||
# Assuming your code is in a file named 'socket_server.py'
|
from pydase.data_service.state_manager import StateManager
|
||||||
from pydase.server.web_server.sio_setup import (
|
from pydase.server.web_server.sio_setup import (
|
||||||
RunMethodDict,
|
RunMethodDict,
|
||||||
UpdateDict,
|
UpdateDict,
|
||||||
@ -14,56 +14,47 @@ from pydase.server.web_server.sio_setup import (
|
|||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
# Mocks
|
|
||||||
class MockObserver:
|
|
||||||
def __init__(self) -> None:
|
|
||||||
self.state_manager = MagicMock()
|
|
||||||
self.add_notification_callback = MagicMock()
|
|
||||||
|
|
||||||
# Create a mock service with a mock method
|
|
||||||
mock_service = MagicMock()
|
|
||||||
mock_service.test_method = lambda: logger.info("Triggered 'test_method'.")
|
|
||||||
|
|
||||||
# Assign the mock service to the state manager
|
|
||||||
self.state_manager.service = mock_service
|
|
||||||
|
|
||||||
|
|
||||||
class MockServer:
|
|
||||||
def __init__(self) -> None:
|
|
||||||
self.emit = AsyncMock()
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
|
||||||
def mock_observer() -> MockObserver:
|
|
||||||
return MockObserver()
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
|
||||||
def mock_sio() -> MagicMock:
|
|
||||||
return MagicMock()
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_set_attribute_event(mock_observer: MockObserver) -> None:
|
async def test_set_attribute_event() -> None:
|
||||||
server = setup_sio_server(mock_observer, False, asyncio.get_running_loop())
|
class SubClass(pydase.DataService):
|
||||||
|
name = "SubClass"
|
||||||
|
|
||||||
|
class ServiceClass(pydase.DataService):
|
||||||
|
def __init__(self) -> None:
|
||||||
|
super().__init__()
|
||||||
|
self.sub_class = SubClass()
|
||||||
|
|
||||||
|
def some_method(self) -> None:
|
||||||
|
logger.info("Triggered 'test_method'.")
|
||||||
|
|
||||||
|
service_instance = ServiceClass()
|
||||||
|
state_manager = StateManager(service_instance)
|
||||||
|
observer = DataServiceObserver(state_manager)
|
||||||
|
|
||||||
|
server = setup_sio_server(observer, False, asyncio.get_running_loop())
|
||||||
|
|
||||||
test_sid = 1234
|
test_sid = 1234
|
||||||
test_data: UpdateDict = {
|
test_data: UpdateDict = {
|
||||||
"parent_path": "test.parent.path",
|
"parent_path": "sub_class",
|
||||||
"name": "test_attr",
|
"name": "name",
|
||||||
"value": "new_value",
|
"value": "new name",
|
||||||
}
|
}
|
||||||
|
|
||||||
server.handlers["/"]["set_attribute"](test_sid, test_data)
|
server.handlers["/"]["set_attribute"](test_sid, test_data)
|
||||||
|
|
||||||
mock_observer.state_manager.set_service_attribute_value_by_path.assert_called_with(
|
assert service_instance.sub_class.name == "new name"
|
||||||
path="test.parent.path.test_attr", value="new_value"
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_run_method_event(mock_observer, caplog: pytest.LogCaptureFixture):
|
async def test_run_method_event(caplog: pytest.LogCaptureFixture):
|
||||||
server = setup_sio_server(mock_observer, False, asyncio.get_running_loop())
|
class ServiceClass(pydase.DataService):
|
||||||
|
def test_method(self) -> None:
|
||||||
|
logger.info("Triggered 'test_method'.")
|
||||||
|
|
||||||
|
state_manager = StateManager(ServiceClass())
|
||||||
|
observer = DataServiceObserver(state_manager)
|
||||||
|
|
||||||
|
server = setup_sio_server(observer, False, asyncio.get_running_loop())
|
||||||
|
|
||||||
test_sid = 1234
|
test_sid = 1234
|
||||||
test_data: RunMethodDict = {
|
test_data: RunMethodDict = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user