mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Fix flaky assert_node_output_is with retry instead of sleep
Add @retry_assertion_during_transitions + dismiss stale tooltip before hover so retries get fresh text. Remove UX_RENDER sleep hacks from workflow_editor_connect. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
23d930dad1
commit
7fd66124f7
@@ -1445,10 +1445,6 @@ class NavigatesGalaxy(HasDriverProxy[WaitType]):
|
||||
self.sleep_for(self.wait_types.UX_RENDER)
|
||||
self.screenshot(screenshot_partial)
|
||||
self.drag_and_drop(source_element, sink_element)
|
||||
if self._driver_impl.backend_type == "playwright":
|
||||
# dispatch_event is synchronous but Vue reactivity (store updates,
|
||||
# terminal type recalculation) runs in microtasks — wait for it.
|
||||
self.sleep_for(self.wait_types.UX_RENDER)
|
||||
|
||||
def workflow_editor_source_sink_terminal_ids(self, source, sink):
|
||||
editor = self.components.workflow_editor
|
||||
|
||||
@@ -1515,11 +1515,14 @@ steps:
|
||||
|
||||
return (int(width_stripped), int(height_stripped))
|
||||
|
||||
@retry_assertion_during_transitions
|
||||
def assert_node_output_is(self, label: str, output_type: str, subcollection_type: Optional[str] = None):
|
||||
editor = self.components.workflow_editor
|
||||
node_label, output_name = label.split("#")
|
||||
node = editor.node._(label=node_label)
|
||||
node.wait_for_present()
|
||||
# Dismiss any stale tooltip before hovering so retry gets fresh text
|
||||
self.click_center()
|
||||
output_element = node.output_terminal(name=output_name).wait_for_visible()
|
||||
self.hover_over(output_element)
|
||||
element = self.components._.tooltip_inner.wait_for_present()
|
||||
|
||||
Reference in New Issue
Block a user