e-nms_qa_automation/tests/e2e/test_login.py

92 lines
3.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

"""Модуль тестов авторизации.
Содержит тесты для проверки функционала
входа и выхода из системы.
"""
# import pytest
from playwright.sync_api import Page
from pages.main_page import MainPage
from pages.login_page import LoginPage
# @pytest.mark.smoke
class TestLogin:
"""Класс тестов для проверки авторизации.
Тесты покрывают следующие сценарии:
1. test_successful_login: Проверяет успешный вход в систему
2. test_unsuccessful_login: Проверяет вход с неверными учетными данными
3. test_successful_login_and_logout: Проверяет успешный вход и выход из системы
4. test_password_visibility: Проверяет видимость символов пароля
"""
# @pytest.mark.develop
def test_successful_login(self, browser: Page) -> None:
"""Проверяет успешный вход в систему.
Args:
browser: Экземпляр страницы Playwright.
"""
lp = LoginPage(browser)
lp.do_login()
def test_unsuccessful_login(self, browser: Page) -> None:
"""Проверяет вход с неверными учетными данными.
Args:
browser: Экземпляр страницы Playwright.
"""
lp = LoginPage(browser)
lp.do_unsuccessful_login()
# @pytest.mark.develop
def test_successful_login_and_logout(self, browser: Page) -> None:
"""Проверяет успешный вход и выход из системы.
Args:
browser: Экземпляр страницы Playwright.
"""
lp = LoginPage(browser)
lp.do_login()
mp = MainPage(browser)
mp.do_logout()
def test_password_visibility(self, browser: Page) -> None:
"""Проверяет видимость символов пароля.
Args:
browser: Экземпляр страницы Playwright.
"""
lp = LoginPage(browser)
lp.open("")
is_hidden_icon = lp.is_password_icon_hidden()
if is_hidden_icon:
is_hidden = lp.is_password_hidden()
assert is_hidden, "Password should be hidden"
# Нажатие на иконку скрытия пароля, пароль видим
lp.click_password_hidden_icon()
is_hidden_icon = lp.is_password_icon_hidden()
is_hidden = lp.is_password_hidden()
assert not is_hidden_icon, "Password hidden icon should not be in hidden state"
assert not is_hidden, "Password should be visible"
else:
is_hidden = lp.is_password_hidden()
assert not is_hidden, "Password should be visible"
# Нажатие на иконку скрытия пароля, пароль скрыт
lp.click_password_hidden_icon()
is_hidden_icon = lp.is_password_icon_hidden()
is_hidden = lp.is_password_hidden()
assert is_hidden_icon, "Password hidden icon should be in hidden state"
assert is_hidden, "Password should be hidden"