Revert "fix(deprecation): remove all remaining .dumps(), .loads() and producer->connector"
This reverts commit 4159f3e3ec20727b395808118f3c0c166d9d1c0c
This commit is contained in:
parent
257b1fa466
commit
b12292246f
@ -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()
|
||||||
|
|
||||||
|
@ -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()
|
||||||
|
|
||||||
|
@ -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()
|
||||||
|
|
||||||
|
@ -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
|
||||||
),
|
),
|
||||||
|
@ -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()
|
||||||
|
|
||||||
|
@ -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()
|
||||||
|
|
||||||
|
@ -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()
|
||||||
|
@ -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:
|
||||||
|
@ -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")
|
||||||
|
|
||||||
|
@ -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")
|
||||||
|
|
||||||
|
@ -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
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -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()
|
||||||
|
@ -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)
|
||||||
|
@ -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):
|
||||||
|
@ -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(
|
||||||
|
@ -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(
|
||||||
|
@ -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(
|
||||||
|
@ -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"""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user