Skip to content

Commit 57260f7

Browse files
committed
wip fix progress to jump to 100%
1 parent c74ef8e commit 57260f7

2 files changed

Lines changed: 14 additions & 2 deletions

File tree

bec_widgets/widgets/progress/progress_backend.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,11 +257,11 @@ def process_progress_message(
257257
done = msg_content.get("done", False)
258258
value = msg_content.get("value", 0)
259259
max_value = msg_content.get("max_value", 100)
260-
if done:
261-
value = max_value
262260
status: Literal["open", "paused", "aborted", "halted", "closed"] = metadata.get(
263261
"status", "open"
264262
)
263+
if done and source == ProgressSource.DEVICE_PROGRESS:
264+
value = max_value
265265
scan_id = metadata.get("scan_id") or metadata.get("RID")
266266
rid = metadata.get("RID")
267267
scan_number = metadata.get("scan_number")

tests/unit_tests/test_scan_progress_bar.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,18 @@ def test_state_mapping_during_updates(
145145
assert scan_progressbar.progressbar.state is expected_state
146146

147147

148+
def test_aborted_done_scan_keeps_partial_progress(scan_progressbar):
149+
scan_progressbar.on_progress_update(
150+
{"value": 4, "max_value": 10, "done": True},
151+
metadata={"scan_id": "scan-1", "RID": "rid-1", "status": "aborted"},
152+
)
153+
154+
assert scan_progressbar.progressbar._user_value == 4
155+
assert scan_progressbar.progressbar._user_maximum == 10
156+
assert scan_progressbar.progressbar.state is ProgressState.INTERRUPTED
157+
assert scan_progressbar.task is None
158+
159+
148160
def test_source_label_updates(scan_progressbar):
149161
"""update_source_label() renders correct text for both progress sources."""
150162
# device progress

0 commit comments

Comments
 (0)