mirror of
https://github.com/ivan-usov-org/bec.git
synced 2025-04-22 02:20:02 +02:00
fix: only pause if queue is not empty
This commit is contained in:
parent
577eea552e
commit
deca3d1d77
@ -139,7 +139,8 @@ class QueueManager:
|
||||
|
||||
def set_abort(self, scanID=None, queue="primary", parameter: dict = None) -> None:
|
||||
"""abort the scan and remove it from the queue. This will leave the queue in a paused state after the cleanup"""
|
||||
self.queues[queue].status = ScanQueueStatus.PAUSED
|
||||
if self.queues[queue].queue:
|
||||
self.queues[queue].status = ScanQueueStatus.PAUSED
|
||||
self.queues[queue].worker_status = InstructionQueueStatus.STOPPED
|
||||
# self.queues[queue].remove_queue_item(scanID=scanID)
|
||||
|
||||
|
@ -778,7 +778,7 @@ class RoundScanFlySim(ScanBase):
|
||||
|
||||
def __init__(self, *args, parameter=None, **kwargs):
|
||||
"""
|
||||
A scan following a round shell-like pattern.
|
||||
A fly scan following a round shell-like pattern.
|
||||
|
||||
Args:
|
||||
*args: motor1, motor2, inner ring, outer ring, number of rings, number of positions in the first ring
|
||||
|
@ -106,14 +106,30 @@ def test_set_continue():
|
||||
def test_set_abort():
|
||||
queue_manager = get_queuemanager()
|
||||
queue_manager.producer.message_sent = []
|
||||
msg = BECMessage.ScanQueueMessage(
|
||||
scan_type="mv",
|
||||
parameter={"args": {"samx": (1,)}, "kwargs": {}},
|
||||
queue="primary",
|
||||
metadata={"RID": "something"},
|
||||
)
|
||||
queue_manager.queues = {"primary": ScanQueue(queue_manager, InstructionQueueMock)}
|
||||
queue_manager.add_to_queue(scan_queue="primary", msg=msg)
|
||||
queue_manager.set_abort(queue="primary")
|
||||
assert queue_manager.queues["primary"].status == ScanQueueStatus.PAUSED
|
||||
assert len(queue_manager.producer.message_sent) == 1
|
||||
assert len(queue_manager.producer.message_sent) == 2
|
||||
assert (
|
||||
queue_manager.producer.message_sent[0].get("queue") == MessageEndpoints.scan_queue_status()
|
||||
)
|
||||
|
||||
|
||||
def test_set_abort_with_empty_queue():
|
||||
queue_manager = get_queuemanager()
|
||||
queue_manager.producer.message_sent = []
|
||||
queue_manager.set_abort(queue="primary")
|
||||
assert queue_manager.queues["primary"].status == ScanQueueStatus.RUNNING
|
||||
assert len(queue_manager.producer.message_sent) == 0
|
||||
|
||||
|
||||
def test_set_clear_sends_message():
|
||||
queue_manager = get_queuemanager()
|
||||
queue_manager.producer.message_sent = []
|
||||
|
Loading…
x
Reference in New Issue
Block a user