Add domain support for specialized test login

Some test servers require the domain parameter for login.
This small change provides support for servers that require
this additional login step.

Change-Id: Ia9f94b687ee6d3318fa61ad3f446b21ed6cfea6a
Closes-Bug: #1802343
This commit is contained in:
nicolas 2018-11-05 13:53:47 -08:00 committed by Nicolas Helgeson
parent d45fb291d0
commit fe69104738
2 changed files with 10 additions and 0 deletions

View File

@ -32,6 +32,9 @@ IdentityGroup = [
default='secretadmin',
help="API key to use when authenticating.",
secret=True),
cfg.StrOpt('domain',
default=None,
help="Domain name to use if required for login"),
cfg.StrOpt('home_project',
default='demo',
help="Project to keep all objects belonging to a regular user."

View File

@ -21,6 +21,7 @@ from openstack_dashboard.test.integration_tests.pages.project.compute import \
class LoginPage(pageobject.PageObject):
_login_domain_field_locator = (by.By.ID, 'id_domain')
_login_username_field_locator = (by.By.ID, 'id_username')
_login_password_field_locator = (by.By.ID, 'id_password')
_login_submit_button_locator = (by.By.CSS_SELECTOR,
@ -35,6 +36,10 @@ class LoginPage(pageobject.PageObject):
return (self.is_the_current_page() and
self._is_element_visible(*self._login_submit_button_locator))
@property
def domain(self):
return self._get_elements(*self._login_domain_field_locator)
@property
def username(self):
return self._get_element(*self._login_username_field_locator)
@ -67,6 +72,8 @@ class LoginPage(pageobject.PageObject):
self._press_enter_on_login_button)
def _do_login(self, user, password, login_method):
if self.conf.identity.domain:
self.domain[0].send_keys(self.conf.identity.domain)
if user == self.conf.identity.admin_username:
if password is None:
password = self.conf.identity.admin_password