Source code for accounts.tests.integration.common_functions

"""
Common functions for accounts.
"""

import time

from django.urls import reverse
from selenium.webdriver.common.by import By

from accounts.models import User
from tests.test_manager import CobaltTestManagerIntegration


[docs] def register_user( manager: CobaltTestManagerIntegration, system_number: str, ): """Common function to register a user Initial Selenium State: Any Final Selenium State: On logged in to dashboard Args: manager: test_manager.Manager object for interacting with system system_number: ABF Number """ # go to page url = manager.base_url + reverse("accounts:register") manager.driver.get(url) # Enter ABF Number manager.driver.find_element(By.ID, "id_username").send_keys(system_number) # Move to email field to fill in name using background search manager.driver.find_element(By.ID, "id_email").click() time.sleep(1) # Enter email manager.driver.find_element(By.ID, "id_email").send_keys("a@b.com") # Enter password manager.driver.find_element(By.ID, "id_password1").send_keys(manager.test_code) manager.driver.find_element(By.ID, "id_password2").send_keys(manager.test_code) # Enter manager.driver.find_element(By.CLASS_NAME, "btn").click() # We won't get an email so just mark member as active # Give it a second... time.sleep(3) user = User.objects.filter(system_number=system_number).first() user.is_active = True user.save() # login manager.login_selenium_user(user) manager.save_results( status=True, test_name=f"Registered user {user.full_name}", output=f"Registered user {user}", test_description="Registers a new user and checks we can login", )