Source code for ewoksserver.tests.socketio_test

import asyncio
from typing import List, Any, Dict

from ..app.routes.execution import socketio


[docs]class SocketIOTestClient: def __init__(self): self._manager = socketio._MANAGER self._events = list() self._org_emit = self._manager._emit def __enter__(self) -> "SocketIOTestClient": self._manager._emit = self._emit self.connect() return self def __exit__(self, exc_type, exc_val, exc_tb) -> None: self.disconnect() self._manager._emit = self._org_emit
[docs] def connect(self) -> None: return _run_coroutine(self._manager.connect(None, None, None))
[docs] def disconnect(self) -> None: return _run_coroutine(self._manager.disconnect(None))
[docs] def get_events(self) -> List[Dict]: events = self._events self._events = self._events[len(events) :] return events
[docs] def is_running(self) -> bool: return _run_coroutine(self._manager.is_running())
def _emit(self, loop, event) -> None: self._events.append(event)
def _run_coroutine(coroutine) -> Any: loop = asyncio.get_event_loop() return loop.run_until_complete(coroutine)