From a3d5ea864daca9fd185248d39ce0c45eddce888e Mon Sep 17 00:00:00 2001 From: John Chilton Date: Tue, 2 Dec 2025 11:51:13 -0500 Subject: [PATCH 1/2] Improve list_list_copy test - it fails transiently and wasn't doing what it claimed. --- lib/galaxy_test/selenium/test_history_multi_view.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/galaxy_test/selenium/test_history_multi_view.py b/lib/galaxy_test/selenium/test_history_multi_view.py index 7b7e273ccc2d..aed9974146c0 100644 --- a/lib/galaxy_test/selenium/test_history_multi_view.py +++ b/lib/galaxy_test/selenium/test_history_multi_view.py @@ -1,5 +1,6 @@ from seletools.actions import drag_and_drop +from galaxy.util.unittest_utils import transient_failure from .framework import ( managed_history, selenium_only, @@ -37,21 +38,29 @@ def test_list_list_display(self): self.screenshot("multi_history_list_list") @selenium_only("Not yet migrated to support Playwright backend") + @transient_failure(issue=21380, potentially_fixed=True) @selenium_test @managed_history def test_list_list_copy(self): source_history_id = self.current_history_id() + # The way create_list_of_list_in_history it creates the datasets and the sublist + # in this history before creating the nested list - so the nested list + # will have an HID of 5 in the source history and an HID of 4 in the target + # history. + list_of_list_source_hid = 5 + list_of_list_target_hid = 4 method = self.dataset_collection_populator.create_list_of_list_in_history(source_history_id, wait=True).json self.prepare_multi_history_view(method) # The multi-history view is incredibly hard to navigate around (in UI and testing) # We just create a new history with the dropped element here. drop_target = self.find_element_by_selector("div.history-picker-box.bottom-picker") - dataset_element = self.history_panel_wait_for_hid_state(1, None).wait_for_visible() + dataset_element = self.history_panel_wait_for_hid_state(list_of_list_source_hid, None).wait_for_visible() ac = self.action_chains() ac = ac.move_to_element(dataset_element).click_and_hold() drag_and_drop(self.driver, source=dataset_element, target=drop_target) self._wait_on(lambda *driver: self.current_history_id() != source_history_id) target_history_id = self.current_history_id() + self.wait_for_history_to_have_hid(target_history_id, list_of_list_target_hid) assert source_history_id != target_history_id source_contents = self.dataset_populator.get_history_contents(history_id=source_history_id) source_dataset_ids = [item["id"] for item in source_contents if item["history_content_type"] == "dataset"] From 3dc82910e98ebd495b71c927efd82c63c7abba8f Mon Sep 17 00:00:00 2001 From: John Chilton Date: Tue, 2 Dec 2025 11:58:48 -0500 Subject: [PATCH 2/2] Unmark a transiently test as potentially fixed - it was seen and reported on tracking issue in wild. --- lib/galaxy_test/api/test_jobs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy_test/api/test_jobs.py b/lib/galaxy_test/api/test_jobs.py index 6a57e48bae72..b7fe5a2854fd 100644 --- a/lib/galaxy_test/api/test_jobs.py +++ b/lib/galaxy_test/api/test_jobs.py @@ -1077,7 +1077,7 @@ def test_delete_job(self, history_id): assert len(empty_search_response.json()) == 0 @pytest.mark.require_new_history - @transient_failure(issue=21242, potentially_fixed=True) + @transient_failure(issue=21242) def test_delete_job_with_message(self, history_id): # Setup a job that will take a while to run so we can verify our cancelling input_dataset_id = self.__history_with_ok_dataset(history_id)