92 lines
3.3 KiB
Python
92 lines
3.3 KiB
Python
"""Модуль тестов авторизации.
|
||
|
||
Содержит тесты для проверки функционала
|
||
входа и выхода из системы.
|
||
"""
|
||
|
||
# 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"
|