31 lines
966 B
Python
31 lines
966 B
Python
"""Auth helpers."""
|
|
|
|
from selenium.webdriver.common.by import By
|
|
from selenium.webdriver.remote.webdriver import WebDriver
|
|
from tests.integration.types import AdminServer
|
|
from .wait_helpers import wait_until_url_contains
|
|
|
|
def login(ui_admin_server: AdminServer, driver: WebDriver) -> WebDriver:
|
|
"""Log in."""
|
|
admin_url, credentials = ui_admin_server
|
|
username, password = credentials
|
|
|
|
driver.get(admin_url + "/login")
|
|
username_input = driver.find_element(By.NAME, "username")
|
|
password_input = driver.find_element(By.NAME, "password")
|
|
submit_button = driver.find_element(By.XPATH, "//button[@type='submit']")
|
|
assert username_input is not None
|
|
assert password_input is not None
|
|
assert submit_button.text.lower() == "sign in"
|
|
|
|
username_input.clear()
|
|
username_input.send_keys(username)
|
|
password_input.send_keys(password)
|
|
|
|
|
|
submit_button.click()
|
|
|
|
wait_until_url_contains(driver, "/dashboard")
|
|
|
|
return driver
|