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 .framework import (
managed_history,
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_test
@managed_history
def test_list_list_copy(self):
source_history_id = self.current_history_id()
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()
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()
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