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_library_landing
from .framework import (
retry_assertion_during_transitions,
selenium_test,
SeleniumTestCase,
)
[docs]class LibraryLandingTestCase(SeleniumTestCase):
requires_admin = True
[docs] def setup_with_driver(self):
super().setup_with_driver()
self.admin_login()
self.libraries_open()
[docs] @selenium_test
def test_create_new_close(self):
num_displayed_libraries = self._num_displayed_libraries()
self.components.libraries.create_new_library_btn.wait_for_and_click()
self.wait_for_selector_visible(".new-row")
self.screenshot("libraries_new")
self.components.libraries.create_new_library_btn.wait_for_and_click()
self.wait_for_overlays_cleared()
assert self._num_displayed_libraries() == num_displayed_libraries
[docs] @selenium_test
def test_create_new(self):
name = self._get_random_name(prefix="testcreatenew")
self.libraries_index_create(name)
# Must be showing at least one library now.
self._assert_at_least_one_library_displayed()
self._search_for_only_with_name(name)
[docs] @selenium_test
def test_rename(self):
name = self._get_random_name(prefix="testprerename")
self.libraries_index_create(name)
self._search_for_only_with_name(name)
edit_button = self.wait_for_selector_clickable(".edit_library_btn")
edit_button.click()
new_name = self._get_random_name(prefix="testpostrename")
name_box = self.wait_for_selector_clickable(".input_library_name")
name_box.send_keys(new_name)
self.screenshot("libraries_rename")
save_button = self.wait_for_selector_clickable(".save_library_btn")
save_button.click()
self._search_for_only_with_name(new_name)
[docs] @selenium_test
def test_sorting(self):
# Throw in another library to ensure filtering is working...
other = self._get_random_name(prefix="notthesame")
self.libraries_index_create(other)
self.wait_for_overlays_cleared()
namebase = self._get_random_name(prefix="testsort")
self.libraries_index_create(f"{namebase} b")
self.wait_for_overlays_cleared()
self.libraries_index_create(f"{namebase} a")
self.wait_for_overlays_cleared()
self.libraries_index_create(f"{namebase} c")
self.screenshot("libraries_index")
self.libraries_index_search_for(namebase)
self._assert_num_displayed_libraries_is(3)
self.screenshot("libraries_index_search")
# sort ascending
self.libraries_index_sort_click()
self._assert_names_are([f"{namebase} a", f"{namebase} b", f"{namebase} c"])
# sort descending
self.libraries_index_sort_click()
self._assert_names_are([f"{namebase} c", f"{namebase} b", f"{namebase} a"])
def _search_for_only_with_name(self, name):
self.libraries_index_search_for(name)
self._assert_num_displayed_libraries_is(1)
@retry_assertion_during_transitions
def _assert_names_are(self, expected_names):
names = [e.find_element_by_css_selector("td a").text for e in self.libraries_index_table_elements()]
self.assertEqual(names, expected_names)
@retry_assertion_during_transitions
def _assert_at_least_one_library_displayed(self):
assert self._num_displayed_libraries() > 0
@retry_assertion_during_transitions
def _assert_num_displayed_libraries_is(self, n):
self.assertEqual(n, self._num_displayed_libraries())
def _num_displayed_libraries(self):
return len(self.libraries_index_table_elements())