forked from enviPath/enviPy
Co-authored-by: Tim Lorsbach <tim@lorsba.ch> Co-authored-by: Liam Brydon <lbry121@aucklanduni.ac.nz> Reviewed-on: enviPath/enviPy#249
52 lines
2.3 KiB
Python
52 lines
2.3 KiB
Python
from django.test import tag
|
|
from playwright.sync_api import expect
|
|
from django.conf import settings as s
|
|
from .frontend_base import EnviPyStaticLiveServerTestCase
|
|
|
|
|
|
class TestLoginPage(EnviPyStaticLiveServerTestCase):
|
|
@tag("frontend")
|
|
def test_register(self):
|
|
page = self.page
|
|
page.goto(self.live_server_url + "/login")
|
|
page.get_by_text("Register", exact=True).click()
|
|
page.get_by_role("textbox", name="Username").click()
|
|
page.get_by_role("textbox", name="Username").fill("newuser")
|
|
page.get_by_role("textbox", name="Email").click()
|
|
page.get_by_role("textbox", name="Email").fill("newuser@new.com")
|
|
page.get_by_role("textbox", name="Password", exact=True).click()
|
|
page.get_by_role("textbox", name="Password", exact=True).fill("NewUser_1")
|
|
page.get_by_role("textbox", name="Repeat Password").click()
|
|
page.get_by_role("textbox", name="Repeat Password").fill("NewUser_1")
|
|
page.get_by_role("button", name="Sign Up").click()
|
|
|
|
if s.ADMIN_APPROVAL_REQUIRED:
|
|
expected_text = "Your account has been created! An admin will activate it soon!"
|
|
else:
|
|
expected_text = (
|
|
"Account has been created! You'll receive a mail to activate your account shortly."
|
|
)
|
|
# Check for success text after Sign Up is clicked
|
|
expect(page.get_by_text(expected_text)).to_be_visible(timeout=10000)
|
|
|
|
if s.ADMIN_APPROVAL_REQUIRED:
|
|
from django.contrib.auth import get_user_model
|
|
|
|
u = get_user_model().objects.get(username="newuser")
|
|
u.is_active = True
|
|
u.save()
|
|
|
|
page.get_by_role("textbox", name="Username").click()
|
|
page.get_by_role("textbox", name="Username").fill("newuser")
|
|
page.get_by_role("textbox", name="Password").click()
|
|
page.get_by_role("textbox", name="Password").fill("NewUser_1")
|
|
page.get_by_role("button", name="Sign In").click()
|
|
# Check that the logged in button is visible indicating the user is logged in
|
|
expect(page.locator("#loggedInButton")).to_be_visible(timeout=100000000)
|
|
|
|
@tag("frontend")
|
|
def test_login(self):
|
|
page = self.login()
|
|
# Check that the logged in button is visible indicating the user is logged in
|
|
expect(page.locator("#loggedInButton")).to_be_visible()
|