From 17348a62fe92716ed80cac6f0925e5d5c3203deb Mon Sep 17 00:00:00 2001 From: John Chilton Date: Fri, 22 Sep 2017 08:41:25 -0400 Subject: [PATCH] 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 --- test/galaxy_selenium/navigates_galaxy.py | 21 +++++++++++++++++++ .../test_published_histories_grid.py | 10 ++------- .../test_workflow_management.py | 16 +++----------- 3 files changed, 26 insertions(+), 21 deletions(-) diff --git a/test/galaxy_selenium/navigates_galaxy.py b/test/galaxy_selenium/navigates_galaxy.py index e500422446a..ecb594869ee 100644 --- a/test/galaxy_selenium/navigates_galaxy.py +++ b/test/galaxy_selenium/navigates_galaxy.py @@ -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"]) diff --git a/test/selenium_tests/test_published_histories_grid.py b/test/selenium_tests/test_published_histories_grid.py index 9937a19e602..d1c0aa8df5e 100644 --- a/test/selenium_tests/test_published_histories_grid.py +++ b/test/selenium_tests/test_published_histories_grid.py @@ -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']) diff --git a/test/selenium_tests/test_workflow_management.py b/test/selenium_tests/test_workflow_management.py index 3d76b0f1c9c..beea3684851 100644 --- a/test/selenium_tests/test_workflow_management.py +++ b/test/selenium_tests/test_workflow_management.py @@ -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)