Speed up integration tests

We have a place in the form-handling code where we look for the
blue form submit button, and if it's not found, we look for the
red form submit button. It looks correct at first glance, however
it takes 10 seconds to throw NoSuchElementException, because there
is a delay that makes sure that the page loads fully before raising
that exception. Replacing this with a selector that finds both the
blue and the red buttons in one query speeds the whole integration
tests suite by half an hour, because there is no more waiting on
every delete confirmation dialog.

Change-Id: Ie256118c0a84a8868393018b25b0aa049582a17d
This commit is contained in:
Radomir Dopieralski
2022-05-13 15:35:58 +02:00
parent 1f9a184de7
commit 2e6eca2947

View File

@@ -298,8 +298,7 @@ class ThemableSelectFormFieldRegion(BaseFormFieldRegion):
class BaseFormRegion(baseregion.BaseRegion):
"""Base class for forms."""
_submit_locator = (by.By.CSS_SELECTOR, '*.btn.btn-primary')
_submit_danger_locator = (by.By.CSS_SELECTOR, '*.btn.btn-danger')
_submit_locator = (by.By.CSS_SELECTOR, '*.btn.btn-primary,*.btn.btn-danger')
_cancel_locator = (by.By.CSS_SELECTOR, '*.btn.cancel')
_default_form_locator = (by.By.CSS_SELECTOR, 'div.modal-dialog')
@@ -315,10 +314,7 @@ class BaseFormRegion(baseregion.BaseRegion):
@property
def _submit_element(self):
try:
submit_element = self._get_element(*self._submit_locator)
except exceptions.NoSuchElementException:
submit_element = self._get_element(*self._submit_danger_locator)
submit_element = self._get_element(*self._submit_locator)
return submit_element
def submit(self):