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())