bec/scan_server/tests/utils.py

68 lines
1.7 KiB
Python

import os
import yaml
from bec_utils.connector import ConnectorBase
from scan_server.devicemanager import DeviceManagerScanServer
from scan_server.scan_assembler import ScanAssembler
from scan_server.scan_server import ScanServer
from scan_server.scan_worker import InstructionQueueStatus
dir_path = os.path.dirname(os.path.realpath(__file__))
def load_ScanServerMock():
connector = ConnectorMock("")
device_manager = DeviceManagerScanServer(connector, "")
with open(f"{dir_path}/test_session.yaml", "r") as f:
device_manager._session = yaml.safe_load(f)
device_manager._load_session()
return ScanServerMock(device_manager, connector)
class ConsumerMock:
def start(self):
pass
class ProducerMock:
message_sent = {}
def set(self, topic, msg):
pass
def send(self, queue, msg):
self.message_sent = {"queue": queue, "msg": msg}
class ConnectorMock(ConnectorBase):
def consumer(self, *args, **kwargs) -> ConsumerMock:
return ConsumerMock()
def producer(self, *args, **kwargs):
return ProducerMock()
class WorkerMock:
def __init__(self) -> None:
self.scan_id = None
self.scan_motors = []
self.current_scanID = None
self.current_scan_info = None
self.status = InstructionQueueStatus.IDLE
class ScanServerMock(ScanServer):
def __init__(self, dm, connector) -> None:
self.dm = dm
super().__init__(bootstrap_server="dummy", connector_cls=ConnectorMock, scibec_url="dummy")
self.scan_worker = WorkerMock()
def _start_devicemanager(self):
pass
def _start_scan_server(self):
pass
def shutdown(self):
pass