Selenium - more robust inline searching for published histories grid.

Refactor recent search improvement for workflow management into a method that can be shared with published histories grid. Should address the transient failure test here:

https://jenkins.galaxyproject.org/job/selenium/521/artifact/521-test-errors/test_history_grid_search_standard2017092120151506039303/stacktrace.txt
This commit is contained in:
John Chilton
2017-09-22 08:57:20 -04:00
parent 77b61ba82d
commit 17348a62fe
3 changed files with 26 additions and 21 deletions
+21
View File
@@ -223,12 +223,27 @@ class NavigatesGalaxy(HasDriver):
raise self.prepend_timeout_message(e, message)
return history_item_selector_state
def published_grid_search_for(self, search_term=None):
return self._inline_search_for(
'#input-free-text-search-filter',
search_term,
)
def get_logged_in_user(self):
return self.api_get("users/current")
def is_logged_in(self):
return "email" in self.get_logged_in_user()
@retry_during_transitions
def _inline_search_for(self, selector, search_term=None):
search_box = self.wait_for_and_click_selector(selector)
search_box.clear()
if search_term is not None:
search_box.send_keys(search_term)
self.send_enter(search_box)
return search_box
def _get_random_name(self, prefix=None, suffix=None, len=10):
return '%s%s%s' % (
prefix or '',
@@ -502,6 +517,12 @@ class NavigatesGalaxy(HasDriver):
def workflow_index_click_search(self):
return self.wait_for_and_click_selector("input.search-wf")
def workflow_index_search_for(self, search_term=None):
return self._inline_search_for(
"input.search-wf",
search_term,
)
def workflow_index_click_import(self):
self.wait_for_and_click_selector(self.test_data["selectors"]["workflows"]["import_button"])
@@ -22,17 +22,11 @@ class HistoryGridTestCase(SharedStateSeleniumTestCase):
def test_history_grid_search_standard(self):
self.navigate_to_published_histories_page()
input_selector = '#input-free-text-search-filter'
search_input = self.wait_for_selector(input_selector)
search_input.send_keys(self.history1_name)
self.send_enter(search_input)
self.published_grid_search_for(self.history1_name)
self.assert_grid_histories_are([self.history1_name])
self.unset_filter('free-text-search', self.history1_name)
search_input = self.wait_for_selector(input_selector)
search_input.send_keys(self.history4_name)
self.send_enter(search_input)
self.published_grid_search_for(self.history4_name)
self.assert_grid_histories_are(['No Items'])
@@ -74,13 +74,13 @@ class WorkflowManagementTestCase(SeleniumTestCase):
self.workflow_index_rename("searchforthis")
self._assert_showing_n_workflows(1)
self._click_and_search("doesnotmatch")
self.workflow_index_search_for("doesnotmatch")
self._assert_showing_n_workflows(0)
self._click_and_search()
self.workflow_index_search_for()
self._assert_showing_n_workflows(1)
self._click_and_search("searchforthis")
self.workflow_index_search_for("searchforthis")
self._assert_showing_n_workflows(1)
@selenium_test
@@ -103,16 +103,6 @@ class WorkflowManagementTestCase(SeleniumTestCase):
self.workflow_index_open()
assert_published_column_text_is("Yes")
@retry_during_transitions
def _click_and_search(self, search_term=None):
# Allow default search_term of None to just clear search
search_box = self.workflow_index_click_search()
search_box.clear()
if search_term is not None:
search_box.send_keys(search_term)
self.send_enter(search_box)
return search_box
@retry_assertion_during_transitions
def _assert_showing_n_workflows(self, n):
self.assertEqual(len(self.workflow_index_table_elements()), n)