Warning

This document is for an old release of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.

Source code for galaxy_test.selenium.test_history_multi_view

from seletools.actions import drag_and_drop

from galaxy.util.unittest_utils import transient_failure
from .framework import (
    managed_history,
    selenium_only,
    selenium_test,
    SeleniumTestCase,
)


[docs] class TestHistoryMultiView(SeleniumTestCase): ensure_registered = True
[docs] @selenium_test def test_display(self): history_id = self.current_history_id() input_collection = self.dataset_collection_populator.create_list_in_history( history_id, contents=["0", "1", "0", "1"], wait=True ).json() input_hid = input_collection["outputs"][0]["hid"] self.home() self.open_history_multi_view() hdca_selector = self.history_panel_wait_for_hid_state(input_hid, "ok", multi_history_panel=True) self.wait_for_visible(hdca_selector) self.screenshot("multi_history_collection")
[docs] @selenium_test @managed_history def test_list_list_display(self): history_id = self.current_history_id() method = self.dataset_collection_populator.create_list_of_list_in_history(history_id, wait=True).json self.prepare_multi_history_view(method) dataset_selector = self.history_panel_wait_for_hid_state(1, None, multi_history_panel=True) dataset_selector.wait_for_and_click() dataset_selector = self.history_panel_wait_for_hid_state(3, None, multi_history_panel=True) dataset_selector.wait_for_and_click() self.screenshot("multi_history_list_list")
[docs] @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(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"] target_contents = self.dataset_populator.get_history_contents(history_id=target_history_id) target_dataset_ids = [item["id"] for item in target_contents if item["history_content_type"] == "dataset"] assert len(target_dataset_ids) == len(source_dataset_ids), "expected datasets to be copied to new history"
[docs] def prepare_multi_history_view(self, collection_populator_method): collection = collection_populator_method() if "outputs" in collection: collection = self.dataset_collection_populator.wait_for_fetched_collection(collection) collection_hid = collection["hid"] self.home() self.open_history_multi_view() selector = self.history_panel_wait_for_hid_state(collection_hid, "ok", multi_history_panel=True) selector.wait_for_and_click() return selector