Revert "fix(deprecation): remove all remaining .dumps(), .loads() and producer->connector"

This reverts commit 4159f3e3ec20727b395808118f3c0c166d9d1c0c
This commit is contained in:
wakonig_k 2024-02-17 17:44:52 +01:00
parent 257b1fa466
commit b12292246f
18 changed files with 88 additions and 81 deletions

View File

@ -81,7 +81,8 @@ class Eiger1p5MDetector(Device):
self.username = "e20588" # TODO get from config self.username = "e20588" # TODO get from config
def _get_current_scan_msg(self) -> messages.ScanStatusMessage: def _get_current_scan_msg(self) -> messages.ScanStatusMessage:
return self.device_manager.connector.get(MessageEndpoints.scan_status()) msg = self.device_manager.producer.get(MessageEndpoints.scan_status())
return messages.ScanStatusMessage.loads(msg)
def _get_scan_dir(self, scan_bundle, scan_number, leading_zeros=None): def _get_scan_dir(self, scan_bundle, scan_number, leading_zeros=None):
if leading_zeros is None: if leading_zeros is None:
@ -158,7 +159,9 @@ class Eiger1p5MDetector(Device):
self.detector_control.put("stop") self.detector_control.put("stop")
signals = {"config": self.read(), "data": self.file_name} signals = {"config": self.read(), "data": self.file_name}
msg = messages.DeviceMessage(signals=signals, metadata=self.metadata) msg = messages.DeviceMessage(signals=signals, metadata=self.metadata)
self.device_manager.connector.set_and_publish(MessageEndpoints.device_read(self.name), msg) self.device_manager.producer.set_and_publish(
MessageEndpoints.device_read(self.name), msg.dumps()
)
self._stopped = False self._stopped = False
return super().unstage() return super().unstage()

View File

@ -301,20 +301,20 @@ class Eiger9MSetup(CustomDetectorMixin):
done (bool): True if scan is finished done (bool): True if scan is finished
successful (bool): True if scan was successful successful (bool): True if scan was successful
""" """
pipe = self.parent.connector.pipeline() pipe = self.parent.producer.pipeline()
if successful is None: if successful is None:
msg = messages.FileMessage(file_path=self.parent.filepath, done=done) msg = messages.FileMessage(file_path=self.parent.filepath, done=done)
else: else:
msg = messages.FileMessage( msg = messages.FileMessage(
file_path=self.parent.filepath, done=done, successful=successful file_path=self.parent.filepath, done=done, successful=successful
) )
self.parent.connector.set_and_publish( self.parent.producer.set_and_publish(
MessageEndpoints.public_file(self.parent.scaninfo.scanID, self.parent.name), MessageEndpoints.public_file(self.parent.scaninfo.scanID, self.parent.name),
msg, msg.dumps(),
pipe=pipe, pipe=pipe,
) )
self.parent.connector.set_and_publish( self.parent.producer.set_and_publish(
MessageEndpoints.file_event(self.parent.name), msg, pipe=pipe MessageEndpoints.file_event(self.parent.name), msg.dumps(), pipe=pipe
) )
pipe.execute() pipe.execute()

View File

@ -244,20 +244,20 @@ class FalconSetup(CustomDetectorMixin):
done (bool): True if scan is finished done (bool): True if scan is finished
successful (bool): True if scan was successful successful (bool): True if scan was successful
""" """
pipe = self.parent.connector.pipeline() pipe = self.parent.producer.pipeline()
if successful is None: if successful is None:
msg = messages.FileMessage(file_path=self.parent.filepath, done=done) msg = messages.FileMessage(file_path=self.parent.filepath, done=done)
else: else:
msg = messages.FileMessage( msg = messages.FileMessage(
file_path=self.parent.filepath, done=done, successful=successful file_path=self.parent.filepath, done=done, successful=successful
) )
self.parent.connector.set_and_publish( self.parent.producer.set_and_publish(
MessageEndpoints.public_file(self.parent.scaninfo.scanID, self.parent.name), MessageEndpoints.public_file(self.parent.scaninfo.scanID, self.parent.name),
msg, msg.dumps(),
pipe=pipe, pipe=pipe,
) )
self.parent.connector.set_and_publish( self.parent.producer.set_and_publish(
MessageEndpoints.file_event(self.parent.name), msg, pipe=pipe MessageEndpoints.file_event(self.parent.name), msg.dumps(), pipe=pipe
) )
pipe.execute() pipe.execute()

View File

@ -136,8 +136,8 @@ class MCSSetup(CustomDetectorMixin):
msg = messages.DeviceMessage( msg = messages.DeviceMessage(
signals=dict(self.mca_data), signals=dict(self.mca_data),
metadata=self.parent.scaninfo.scan_msg.metadata, metadata=self.parent.scaninfo.scan_msg.metadata,
) ).dumps()
self.parent.connector.xadd( self.parent.producer.xadd(
topic=MessageEndpoints.device_async_readback( topic=MessageEndpoints.device_async_readback(
scanID=self.parent.scaninfo.scanID, device=self.parent.name scanID=self.parent.scaninfo.scanID, device=self.parent.name
), ),

View File

@ -331,7 +331,7 @@ class PilatusSetup(CustomDetectorMixin):
done (bool): True if scan is finished done (bool): True if scan is finished
successful (bool): True if scan was successful successful (bool): True if scan was successful
""" """
pipe = self.parent.connector.pipeline() pipe = self.parent.producer.pipeline()
if successful is None: if successful is None:
msg = messages.FileMessage( msg = messages.FileMessage(
file_path=self.parent.filepath, file_path=self.parent.filepath,
@ -345,13 +345,13 @@ class PilatusSetup(CustomDetectorMixin):
successful=successful, successful=successful,
metadata={"input_path": self.parent.filepath_raw}, metadata={"input_path": self.parent.filepath_raw},
) )
self.parent.connector.set_and_publish( self.parent.producer.set_and_publish(
MessageEndpoints.public_file(self.parent.scaninfo.scanID, self.parent.name), MessageEndpoints.public_file(self.parent.scaninfo.scanID, self.parent.name),
msg, msg.dumps(),
pipe=pipe, pipe=pipe,
) )
self.parent.connector.set_and_publish( self.parent.producer.set_and_publish(
MessageEndpoints.file_event(self.parent.name), msg, pipe=pipe MessageEndpoints.file_event(self.parent.name), msg.dumps(), pipe=pipe
) )
pipe.execute() pipe.execute()

View File

@ -391,7 +391,7 @@ class PSIDelayGeneratorBase(Device):
self.device_manager = device_manager self.device_manager = device_manager
else: else:
self.device_manager = bec_utils.DMMock() self.device_manager = bec_utils.DMMock()
self.connector = self.device_manager.connector self.producer = self.device_manager.producer
self._update_scaninfo() self._update_scaninfo()
self._init() self._init()

View File

@ -228,7 +228,7 @@ class PSIDetectorBase(Device):
self.device_manager = bec_utils.DMMock() self.device_manager = bec_utils.DMMock()
base_path = kwargs["basepath"] if "basepath" in kwargs else "~/Data10/" base_path = kwargs["basepath"] if "basepath" in kwargs else "~/Data10/"
self.service_cfg = {"base_path": os.path.expanduser(base_path)} self.service_cfg = {"base_path": os.path.expanduser(base_path)}
self.connector = self.device_manager.connector self.producer = self.device_manager.producer
self._update_scaninfo() self._update_scaninfo()
self._update_filewriter() self._update_filewriter()
self._init() self._init()

View File

@ -308,9 +308,9 @@ class RtLamniController(Controller):
def _update_flyer_device_info(self): def _update_flyer_device_info(self):
flyer_info = self._get_flyer_device_info() flyer_info = self._get_flyer_device_info()
self.get_device_manager().connector.set( self.get_device_manager().producer.set(
MessageEndpoints.device_info("rt_scan"), MessageEndpoints.device_info("rt_scan"),
messages.DeviceInfoMessage(device="rt_scan", info=flyer_info), messages.DeviceInfoMessage(device="rt_scan", info=flyer_info).dumps(),
) )
def _get_flyer_device_info(self) -> dict: def _get_flyer_device_info(self) -> dict:
@ -385,11 +385,11 @@ class RtLamniController(Controller):
# if not (mode==2 or mode==3): # if not (mode==2 or mode==3):
# error # error
self.get_device_manager().connector.set_and_publish( self.get_device_manager().producer.set_and_publish(
MessageEndpoints.device_status("rt_scan"), MessageEndpoints.device_status("rt_scan"),
messages.DeviceStatusMessage( messages.DeviceStatusMessage(
device="rt_scan", status=1, metadata=self.readout_metadata device="rt_scan", status=1, metadata=self.readout_metadata
), ).dumps(),
) )
# while scan is running # while scan is running
while mode > 0: while mode > 0:
@ -420,11 +420,11 @@ class RtLamniController(Controller):
signals = self._get_signals_from_table(return_table) signals = self._get_signals_from_table(return_table)
self.publish_device_data(signals=signals, pointID=int(return_table[0])) self.publish_device_data(signals=signals, pointID=int(return_table[0]))
self.get_device_manager().connector.set_and_publish( self.get_device_manager().producer.set_and_publish(
MessageEndpoints.device_status("rt_scan"), MessageEndpoints.device_status("rt_scan"),
messages.DeviceStatusMessage( messages.DeviceStatusMessage(
device="rt_scan", status=0, metadata=self.readout_metadata device="rt_scan", status=0, metadata=self.readout_metadata
), ).dumps(),
) )
logger.info( logger.info(
@ -432,12 +432,12 @@ class RtLamniController(Controller):
) )
def publish_device_data(self, signals, pointID): def publish_device_data(self, signals, pointID):
self.get_device_manager().connector.send( self.get_device_manager().producer.send(
MessageEndpoints.device_read("rt_lamni"), MessageEndpoints.device_read("rt_lamni"),
messages.DeviceMessage( messages.DeviceMessage(
signals=signals, signals=signals,
metadata={"pointID": pointID, **self.readout_metadata}, metadata={"pointID": pointID, **self.readout_metadata},
), ).dumps(),
) )
def feedback_status_angle_lamni(self) -> bool: def feedback_status_angle_lamni(self) -> bool:

View File

@ -494,32 +494,34 @@ class SynFlyer(Device, PositionerBase):
} }
}, },
metadata={"pointID": ii, **metadata}, metadata={"pointID": ii, **metadata},
) ).dumps()
) )
ttime.sleep(exp_time) ttime.sleep(exp_time)
elapsed_time += exp_time elapsed_time += exp_time
if elapsed_time > buffer_time: if elapsed_time > buffer_time:
elapsed_time = 0 elapsed_time = 0
device.device_manager.connector.send( device.device_manager.producer.send(
MessageEndpoints.device_read(device.name), bundle MessageEndpoints.device_read(device.name), bundle.dumps()
) )
bundle = messages.BundleMessage() bundle = messages.BundleMessage()
device.device_manager.connector.set_and_publish( device.device_manager.producer.set_and_publish(
MessageEndpoints.device_status(device.name), MessageEndpoints.device_status(device.name),
messages.DeviceStatusMessage( messages.DeviceStatusMessage(
device=device.name, device=device.name,
status=1, status=1,
metadata={"pointID": ii, **metadata}, metadata={"pointID": ii, **metadata},
), ).dumps(),
) )
device.device_manager.connector.send(MessageEndpoints.device_read(device.name), bundle) device.device_manager.producer.send(
device.device_manager.connector.set_and_publish( MessageEndpoints.device_read(device.name), bundle.dumps()
)
device.device_manager.producer.set_and_publish(
MessageEndpoints.device_status(device.name), MessageEndpoints.device_status(device.name),
messages.DeviceStatusMessage( messages.DeviceStatusMessage(
device=device.name, device=device.name,
status=0, status=0,
metadata={"pointID": num_pos, **metadata}, metadata={"pointID": num_pos, **metadata},
), ).dumps(),
) )
print("done") print("done")

View File

@ -115,32 +115,34 @@ class SynFlyerLamNI(Device, PositionerBase):
} }
}, },
metadata={"pointID": ii, **metadata}, metadata={"pointID": ii, **metadata},
) ).dumps()
) )
ttime.sleep(exp_time) ttime.sleep(exp_time)
elapsed_time += exp_time elapsed_time += exp_time
if elapsed_time > buffer_time: if elapsed_time > buffer_time:
elapsed_time = 0 elapsed_time = 0
device.device_manager.connector.send( device.device_manager.producer.send(
MessageEndpoints.device_read(device.name), bundle MessageEndpoints.device_read(device.name), bundle.dumps()
) )
bundle = messages.BundleMessage() bundle = messages.BundleMessage()
device.device_manager.connector.set_and_publish( device.device_manager.producer.set_and_publish(
MessageEndpoints.device_status(device.name), MessageEndpoints.device_status(device.name),
messages.DeviceStatusMessage( messages.DeviceStatusMessage(
device=device.name, device=device.name,
status=1, status=1,
metadata={"pointID": ii, **metadata}, metadata={"pointID": ii, **metadata},
), ).dumps(),
) )
device.device_manager.connector.send(MessageEndpoints.device_read(device.name), bundle) device.device_manager.producer.send(
device.device_manager.connector.set_and_publish( MessageEndpoints.device_read(device.name), bundle.dumps()
)
device.device_manager.producer.set_and_publish(
MessageEndpoints.device_status(device.name), MessageEndpoints.device_status(device.name),
messages.DeviceStatusMessage( messages.DeviceStatusMessage(
device=device.name, device=device.name,
status=0, status=0,
metadata={"pointID": num_pos, **metadata}, metadata={"pointID": num_pos, **metadata},
), ).dumps(),
) )
print("done") print("done")

View File

@ -357,8 +357,8 @@ class SynXtremeOtfReplay(FlyerInterface, Device):
} }
msg = messages.DeviceMessage( msg = messages.DeviceMessage(
signals=signals, metadata=self._device_manager.devices.otf.metadata signals=signals, metadata=self._device_manager.devices.otf.metadata
) ).dumps()
self._device_manager.connector.set_and_publish( self._device_manager.producer.set_and_publish(
MessageEndpoints.device_readback("signals"), msg MessageEndpoints.device_readback("signals"), msg
) )

View File

@ -96,7 +96,7 @@ class BecScaninfoMixin:
messages.ScanStatusMessage: messages.ScanStatusMessage object messages.ScanStatusMessage: messages.ScanStatusMessage object
""" """
if not self.sim_mode: if not self.sim_mode:
msg = self.device_manager.connector.get(MessageEndpoints.scan_status()) msg = self.device_manager.producer.get(MessageEndpoints.scan_status())
if not isinstance(msg, messages.ScanStatusMessage): if not isinstance(msg, messages.ScanStatusMessage):
return None return None
return msg return msg
@ -112,7 +112,7 @@ class BecScaninfoMixin:
if self.sim_mode: if self.sim_mode:
return getpass.getuser() return getpass.getuser()
msg = self.device_manager.connector.get(MessageEndpoints.account()) msg = self.device_manager.producer.get(MessageEndpoints.account())
if msg: if msg:
return msg return msg
return getpass.getuser() return getpass.getuser()

View File

@ -122,17 +122,17 @@ class ProducerMock:
class PipelineMock: class PipelineMock:
_pipe_buffer = [] _pipe_buffer = []
_connector = None _producer = None
def __init__(self, connector) -> None: def __init__(self, producer) -> None:
self._connector = connector self._producer = producer
def execute(self): def execute(self):
if not self._connector.store_data: if not self._producer.store_data:
self._pipe_buffer = [] self._pipe_buffer = []
return [] return []
res = [ res = [
getattr(self._connector, method)(*args, **kwargs) getattr(self._producer, method)(*args, **kwargs)
for method, args, kwargs in self._pipe_buffer for method, args, kwargs in self._pipe_buffer
] ]
self._pipe_buffer = [] self._pipe_buffer = []
@ -142,13 +142,13 @@ class PipelineMock:
class DMMock: class DMMock:
"""Mock for DeviceManager """Mock for DeviceManager
The mocked DeviceManager creates a device containert and a connector. The mocked DeviceManager creates a device containert and a producer.
""" """
def __init__(self): def __init__(self):
self.devices = DeviceContainer() self.devices = DeviceContainer()
self.connector = ProducerMock() self.producer = ProducerMock()
def add_device(self, name: str, value: float = 0.0): def add_device(self, name: str, value: float = 0.0):
self.devices[name] = DeviceMock(name, value) self.devices[name] = DeviceMock(name, value)

View File

@ -27,7 +27,7 @@ def mock_det():
prefix = "X12SA-ES-EIGER9M:" prefix = "X12SA-ES-EIGER9M:"
sim_mode = False sim_mode = False
dm = DMMock() dm = DMMock()
with mock.patch.object(dm, "connector"): with mock.patch.object(dm, "producer"):
with mock.patch( with mock.patch(
"ophyd_devices.epics.devices.psi_detector_base.FileWriterMixin" "ophyd_devices.epics.devices.psi_detector_base.FileWriterMixin"
), mock.patch( ), mock.patch(
@ -50,7 +50,7 @@ def test_init():
prefix = "X12SA-ES-EIGER9M:" prefix = "X12SA-ES-EIGER9M:"
sim_mode = False sim_mode = False
dm = DMMock() dm = DMMock()
with mock.patch.object(dm, "connector"): with mock.patch.object(dm, "producer"):
with mock.patch( with mock.patch(
"ophyd_devices.epics.devices.psi_detector_base.FileWriterMixin" "ophyd_devices.epics.devices.psi_detector_base.FileWriterMixin"
), mock.patch( ), mock.patch(
@ -428,24 +428,24 @@ def test_publish_file_location(mock_det, scaninfo):
done=scaninfo["done"], successful=scaninfo["successful"] done=scaninfo["done"], successful=scaninfo["successful"]
) )
if scaninfo["successful"] is None: if scaninfo["successful"] is None:
msg = messages.FileMessage(file_path=scaninfo["filepath"], done=scaninfo["done"]) msg = messages.FileMessage(file_path=scaninfo["filepath"], done=scaninfo["done"]).dumps()
else: else:
msg = messages.FileMessage( msg = messages.FileMessage(
file_path=scaninfo["filepath"], done=scaninfo["done"], successful=scaninfo["successful"] file_path=scaninfo["filepath"], done=scaninfo["done"], successful=scaninfo["successful"]
) ).dumps()
expected_calls = [ expected_calls = [
mock.call( mock.call(
MessageEndpoints.public_file(scaninfo["scanID"], mock_det.name), MessageEndpoints.public_file(scaninfo["scanID"], mock_det.name),
msg, msg,
pipe=mock_det.connector.pipeline.return_value, pipe=mock_det.producer.pipeline.return_value,
), ),
mock.call( mock.call(
MessageEndpoints.file_event(mock_det.name), MessageEndpoints.file_event(mock_det.name),
msg, msg,
pipe=mock_det.connector.pipeline.return_value, pipe=mock_det.producer.pipeline.return_value,
), ),
] ]
assert mock_det.connector.set_and_publish.call_args_list == expected_calls assert mock_det.producer.set_and_publish.call_args_list == expected_calls
def test_stop(mock_det): def test_stop(mock_det):

View File

@ -27,7 +27,7 @@ def mock_det():
prefix = "X12SA-SITORO:" prefix = "X12SA-SITORO:"
sim_mode = False sim_mode = False
dm = DMMock() dm = DMMock()
with mock.patch.object(dm, "connector"): with mock.patch.object(dm, "producer"):
with mock.patch( with mock.patch(
"ophyd_devices.epics.devices.psi_detector_base.FileWriterMixin" "ophyd_devices.epics.devices.psi_detector_base.FileWriterMixin"
) as filemixin, mock.patch( ) as filemixin, mock.patch(
@ -215,24 +215,24 @@ def test_publish_file_location(mock_det, scaninfo):
done=scaninfo["done"], successful=scaninfo["successful"] done=scaninfo["done"], successful=scaninfo["successful"]
) )
if scaninfo["successful"] is None: if scaninfo["successful"] is None:
msg = messages.FileMessage(file_path=scaninfo["filepath"], done=scaninfo["done"]) msg = messages.FileMessage(file_path=scaninfo["filepath"], done=scaninfo["done"]).dumps()
else: else:
msg = messages.FileMessage( msg = messages.FileMessage(
file_path=scaninfo["filepath"], done=scaninfo["done"], successful=scaninfo["successful"] file_path=scaninfo["filepath"], done=scaninfo["done"], successful=scaninfo["successful"]
) ).dumps()
expected_calls = [ expected_calls = [
mock.call( mock.call(
MessageEndpoints.public_file(scaninfo["scanID"], mock_det.name), MessageEndpoints.public_file(scaninfo["scanID"], mock_det.name),
msg, msg,
pipe=mock_det.connector.pipeline.return_value, pipe=mock_det.producer.pipeline.return_value,
), ),
mock.call( mock.call(
MessageEndpoints.file_event(mock_det.name), MessageEndpoints.file_event(mock_det.name),
msg, msg,
pipe=mock_det.connector.pipeline.return_value, pipe=mock_det.producer.pipeline.return_value,
), ),
] ]
assert mock_det.connector.set_and_publish.call_args_list == expected_calls assert mock_det.producer.set_and_publish.call_args_list == expected_calls
@pytest.mark.parametrize( @pytest.mark.parametrize(

View File

@ -32,7 +32,7 @@ def mock_det():
prefix = "X12SA-MCS:" prefix = "X12SA-MCS:"
sim_mode = False sim_mode = False
dm = DMMock() dm = DMMock()
with mock.patch.object(dm, "connector"): with mock.patch.object(dm, "producer"):
with mock.patch( with mock.patch(
"ophyd_devices.epics.devices.psi_detector_base.FileWriterMixin" "ophyd_devices.epics.devices.psi_detector_base.FileWriterMixin"
) as filemixin, mock.patch( ) as filemixin, mock.patch(
@ -53,7 +53,7 @@ def test_init():
prefix = "X12SA-ES-EIGER9M:" prefix = "X12SA-ES-EIGER9M:"
sim_mode = False sim_mode = False
dm = DMMock() dm = DMMock()
with mock.patch.object(dm, "connector"): with mock.patch.object(dm, "producer"):
with mock.patch( with mock.patch(
"ophyd_devices.epics.devices.psi_detector_base.FileWriterMixin" "ophyd_devices.epics.devices.psi_detector_base.FileWriterMixin"
), mock.patch( ), mock.patch(
@ -184,7 +184,7 @@ def test_send_data_to_bec(mock_det, metadata, mca_data):
mock_det.custom_prepare._send_data_to_bec() mock_det.custom_prepare._send_data_to_bec()
device_metadata = mock_det.scaninfo.scan_msg.metadata device_metadata = mock_det.scaninfo.scan_msg.metadata
metadata.update({"async_update": "append", "num_lines": mock_det.num_lines.get()}) metadata.update({"async_update": "append", "num_lines": mock_det.num_lines.get()})
data = messages.DeviceMessage(signals=dict(mca_data), metadata=device_metadata) data = messages.DeviceMessage(signals=dict(mca_data), metadata=device_metadata).dumps()
calls = mock.call( calls = mock.call(
topic=MessageEndpoints.device_async_readback( topic=MessageEndpoints.device_async_readback(
scanID=metadata["scanID"], device=mock_det.name scanID=metadata["scanID"], device=mock_det.name
@ -193,7 +193,7 @@ def test_send_data_to_bec(mock_det, metadata, mca_data):
expire=1800, expire=1800,
) )
assert mock_det.connector.xadd.call_args == calls assert mock_det.producer.xadd.call_args == calls
@pytest.mark.parametrize( @pytest.mark.parametrize(

View File

@ -28,7 +28,7 @@ def mock_det():
prefix = "X12SA-ES-PILATUS300K:" prefix = "X12SA-ES-PILATUS300K:"
sim_mode = False sim_mode = False
dm = DMMock() dm = DMMock()
with mock.patch.object(dm, "connector"): with mock.patch.object(dm, "producer"):
with mock.patch( with mock.patch(
"ophyd_devices.epics.devices.psi_detector_base.FileWriterMixin" "ophyd_devices.epics.devices.psi_detector_base.FileWriterMixin"
), mock.patch( ), mock.patch(
@ -207,27 +207,27 @@ def test_publish_file_location(mock_det, scaninfo):
file_path=scaninfo["filepath"], file_path=scaninfo["filepath"],
done=scaninfo["done"], done=scaninfo["done"],
metadata={"input_path": scaninfo["filepath_raw"]}, metadata={"input_path": scaninfo["filepath_raw"]},
) ).dumps()
else: else:
msg = messages.FileMessage( msg = messages.FileMessage(
file_path=scaninfo["filepath"], file_path=scaninfo["filepath"],
done=scaninfo["done"], done=scaninfo["done"],
metadata={"input_path": scaninfo["filepath_raw"]}, metadata={"input_path": scaninfo["filepath_raw"]},
successful=scaninfo["successful"], successful=scaninfo["successful"],
) ).dumps()
expected_calls = [ expected_calls = [
mock.call( mock.call(
MessageEndpoints.public_file(scaninfo["scanID"], mock_det.name), MessageEndpoints.public_file(scaninfo["scanID"], mock_det.name),
msg, msg,
pipe=mock_det.connector.pipeline.return_value, pipe=mock_det.producer.pipeline.return_value,
), ),
mock.call( mock.call(
MessageEndpoints.file_event(mock_det.name), MessageEndpoints.file_event(mock_det.name),
msg, msg,
pipe=mock_det.connector.pipeline.return_value, pipe=mock_det.producer.pipeline.return_value,
), ),
] ]
assert mock_det.connector.set_and_publish.call_args_list == expected_calls assert mock_det.producer.set_and_publish.call_args_list == expected_calls
@pytest.mark.parametrize( @pytest.mark.parametrize(

View File

@ -296,13 +296,13 @@ class DeviceMock:
class DMMock: class DMMock:
"""Mock for DeviceManager """Mock for DeviceManager
The mocked DeviceManager creates a device containert and a connector. The mocked DeviceManager creates a device containert and a producer.
""" """
def __init__(self): def __init__(self):
self.devices = DeviceContainer() self.devices = DeviceContainer()
self.connector = ProducerMock() self.producer = ProducerMock()
def add_device(self, name: str, value: float = 0.0): def add_device(self, name: str, value: float = 0.0):
"""Add device to the DeviceManagerMock""" """Add device to the DeviceManagerMock"""