Добавлено в docstring Class список тестовых сценариев.

pull/1/head
Radislav 2025-09-12 08:42:50 +03:00
parent 2f6bd950e7
commit cc71bda244
7 changed files with 122 additions and 82 deletions

View File

@ -14,6 +14,10 @@ from pages.login_page import LoginPage
class TestEventPanel: class TestEventPanel:
"""Класс тестов для проверки панели событий. """Класс тестов для проверки панели событий.
Тесты покрывают следующие сценарии:
1. test_event_panel_content: Проверяет содержимое панели событий
2. test_event_panel_expand_buttons: Проверяет состояние и количество кнопок расширения рабочей области панели событий
Атрибуты: Атрибуты:
browser: Фикстура для работы с браузером. browser: Фикстура для работы с браузером.
""" """

View File

@ -13,6 +13,10 @@ from pages.login_page import LoginPage
class TestNavigationPanel: class TestNavigationPanel:
"""Класс тестов для проверки панели навигации. """Класс тестов для проверки панели навигации.
Тесты покрывают следующие сценарии:
- test_expand_panel: Проверяет полное раскрытие панели навигации
- test_sub_panel_item_click: Проверяет возможность клика заданного элемента в подпанели навигации
Атрибуты: Атрибуты:
browser: Фикстура для работы с браузером. browser: Фикстура для работы с браузером.
""" """

View File

@ -13,7 +13,12 @@ from pages.login_page import LoginPage
from pages.license_tab import LicenseTab from pages.license_tab import LicenseTab
class TestLicenseTab: class TestLicenseTab:
"""Класс тестов для проверки вкладки 'Лицензии'.""" """Класс тестов для проверки вкладки 'Лицензии'.
Тесты покрывают следующие сценарии:
1. test_lisence_tab_content: Проверяет содержимое вкладки 'Лицензии'
2. test_license_tab_input_form_and_check_alert: Проверяет форму ввода лицензии и отображение алертов
"""
@pytest.fixture(scope="function", autouse=True) @pytest.fixture(scope="function", autouse=True)
def setup(self, browser: Page) -> None: def setup(self, browser: Page) -> None:

View File

@ -9,7 +9,13 @@ from pages.main_page import MainPage
from pages.login_page import LoginPage from pages.login_page import LoginPage
class TestLogin: class TestLogin:
"""Класс тестов для проверки авторизации.""" """Класс тестов для проверки авторизации.
Тесты покрывают следующие сценарии:
1. test_successful_login: Проверяет успешный вход в систему
2. test_unsuccessful_login: Проверяет вход с неверными учетными данными
3. test_successful_login_and_logout: Проверяет успешный вход и выход из системы
"""
def test_successful_login(self, browser: Page) -> None: def test_successful_login(self, browser: Page) -> None:
"""Проверяет успешный вход в систему. """Проверяет успешный вход в систему.

View File

@ -13,7 +13,12 @@ from pages.login_page import LoginPage
class TestServiceStatusTab: class TestServiceStatusTab:
"""Класс тестов для проверки вкладки 'Статус обслуживания'.""" """Класс тестов для проверки вкладки 'Статус обслуживания'.
Тесты покрывают следующие сценарии:
1. test_service_status_tab_content: Проверяет содержимое вкладки 'Статус обслуживания'
2. test_service_status_table_row_highlighting: Проверяет выделение строк в таблице сервисов
"""
@pytest.fixture(scope="function", autouse=True) @pytest.fixture(scope="function", autouse=True)
def setup(self, browser: Page): def setup(self, browser: Page):

View File

@ -19,15 +19,17 @@ class TestSessionsTab:
включая работу с сеансами пользователей, их создание, удаление и автоматическую очистку. включая работу с сеансами пользователей, их создание, удаление и автоматическую очистку.
Тесты покрывают следующие сценарии: Тесты покрывают следующие сценарии:
1. Тест содержимого вкладки 'Сеансы' 1. test_sessions_tab_content: Тест содержимого вкладки 'Сеансы'
2. Тест окна подтверждения удаления сеанса 2. test_delete_session_confirm_window: Тест окна подтверждения удаления сеанса
3. Тест автоматического удаления сеанса после выхода пользователя из системы (отложено) 3. test_delete_session_after_logout: Тест автоматического удаления сеанса после выхода пользователя из системы
4. Тест создания нескольких пользователей и их сеансов, скроллинг, подсветка строк таблицы 4. test_delete_existed_session: Тест удаления созданного сеанса
5. Тест удаления сеанса при удалении пользователя (отложено) 5 test_multiple_users_sessions: Тест создания нескольких пользователей и их сеансов
6. Тест автоматического удаления сеанса через 15 минут после выхода пользователя (отложено) 6. test_session_removed_when_user_deleted: Тест удаления сеанса при удалении пользователя
7. Тест проверки невозможности пользователя удалить свой собственный сеанс (отложено) 7. test_session_auto_deletion_after_15_minutes: Тест автоматического удаления сеанса через 15 минут после выхода пользователя
8. test_user_cannot_delete_own_session: Тест проверки невозможности пользователя удалить свой собственный сеанс
""" """
@pytest.fixture(scope="function", autouse=True) @pytest.fixture(scope="function", autouse=True)
def setup(self, browser: Page) -> None: def setup(self, browser: Page) -> None:
"""Фикстура для подготовки тестового окружения. """Фикстура для подготовки тестового окружения.

View File

@ -12,7 +12,20 @@ from pages.main_page import MainPage
from pages.login_page import LoginPage from pages.login_page import LoginPage
class TestUsersTab: class TestUsersTab:
"""Класс тестов для проверки вкладки 'Пользователи'.""" """Класс тестов для проверки вкладки 'Пользователи'.
Тесты покрывают следующие сценарии:
1. test_users_tab_content: Проверяет содержимое вкладки 'Пользователи'
2. test_users_tab_toolbar_buttons: Проверяет кнопки на панели инструментов
3. test_add_user_window_content: Проверяет содержимое окна добавления пользователя
4. test_add_user_window_close_buttons: Проверяет кнопки закрытия окна добавления
5 test_edit_user_window_content: Проверяет содержимое окна редактирования
6. test_edit_user_window_close_buttons: Проверяет кнопки закрытия окна редактирования
7. test_add_and_delete_user: Проверяет добавление и удаление пользователя
8. test_add_AD_user: Проверяет добавление пользователя Active Directory
9. test_reset_password: Проверяет сброс пароля пользователя
10.test_edit_user_role: Проверяет изменение роли пользователя
"""
@pytest.fixture(scope="function", autouse=True) @pytest.fixture(scope="function", autouse=True)
def setup(self, browser: Page) -> None: def setup(self, browser: Page) -> None:
@ -31,37 +44,38 @@ class TestUsersTab:
mp.click_subpanel_item("Пользователи") mp.click_subpanel_item("Пользователи")
@pytest.fixture(scope="function") @pytest.fixture(scope="function")
def cleanup_user(self, browser: Page) -> None: def cleanup_users(self, browser: Page) -> None:
"""Фикстура для очистки пользователя User после теста.""" """Фикстура для очистки тестовых пользователей и их сеансов после теста."""
yield yield
# Удаляем тестового пользователя после выполнения теста
user_data: Dict[str, str] = {"name": "User", "role": "Администратор", "password": "987654"} # Выход из системы текущего пользователя
mp = MainPage(browser)
mp.do_logout()
# Авторизация администратором для очистки
login_page = LoginPage(browser)
login_page.do_login()
# Удаляем тестовых пользователей
self._cleanup_test_users(browser)
def _cleanup_test_users(self, browser: Page) -> None:
"""Удаляет тестовых пользователей."""
mp = MainPage(browser)
mp.click_main_navigation_panel_item("Настройки")
mp.click_subpanel_item("Пользователи")
ut = UsersTab(browser) ut = UsersTab(browser)
# Проверяем существует ли пользователь и удаляем его # Удаляем тестовых пользователей
if ut.find_user_in_table(user_data["name"], user_data["role"]) != -1: test_users = ["TestUser", "TestUserAutoOperator", "TestUserAutoAdmin"]
ut.open_edit_user_page_by_user(user_data["name"], user_data["role"])
ut.delete_user(user_data["name"])
@pytest.fixture(scope="function") for user_name in test_users:
def cleanup_autoadmin(self, browser: Page) -> None: # Проверяем существует ли пользователь и удаляем его
"""Фикстура для очистки пользователя autoadmin после теста.""" user_index = ut.find_user_in_table(user_name, "Администратор")
yield if user_index != -1:
user_data: Dict[str, str] = {"name": "autoadmin", "role": "Администратор", "password": "123456"} ut.open_edit_user_page_by_user(user_name, "Администратор")
ut = UsersTab(browser) ut.delete_user(user_name)
if ut.find_user_in_table(user_data["name"], user_data["role"]) != -1:
ut.open_edit_user_page_by_user(user_data["name"], user_data["role"])
ut.delete_user(user_data["name"])
@pytest.fixture(scope="function")
def cleanup_autooperator(self, browser: Page) -> None:
"""Фикстура для очистки пользователя autooperator после теста."""
yield
user_data: Dict[str, str] = {"name": "autooperator", "role": "Оператор", "password": "123245"}
ut = UsersTab(browser)
if ut.find_user_in_table(user_data["name"], user_data["role"]) != -1:
ut.open_edit_user_page_by_user(user_data["name"], user_data["role"])
ut.delete_user(user_data["name"])
def test_users_tab_content(self, browser: Page) -> None: def test_users_tab_content(self, browser: Page) -> None:
"""Проверяет содержимое вкладки 'Пользователи'. """Проверяет содержимое вкладки 'Пользователи'.
@ -146,15 +160,15 @@ class TestUsersTab:
ut.close_edit_user_window(user_name) ut.close_edit_user_window(user_name)
# @pytest.mark.develop # @pytest.mark.develop
def test_add_and_delete_user(self, browser: Page, cleanup_user: None) -> None: def test_add_and_delete_user(self, browser: Page, cleanup_users: None) -> None:
"""Проверяет добавление и удаление пользователя. """Проверяет добавление и удаление пользователя.
Args: Args:
browser: Экземпляр страницы Playwright. browser: Экземпляр страницы Playwright.
cleanup_user: Фикстура для очистки пользователя. Удаление пользователя выполняется автоматически фикстурой cleanup_users.
""" """
user_data: Dict[str, str] = {"name": "User", "role": "Администратор", "password": "987654"} user_data: Dict[str, str] = {"name": "TestUser", "role": "Администратор", "password": "987654"}
mp = MainPage(browser) mp = MainPage(browser)
ut = UsersTab(browser) ut = UsersTab(browser)
@ -194,12 +208,12 @@ class TestUsersTab:
ut.should_not_be_user_in_table(user_data["name"], user_data["role"]) ut.should_not_be_user_in_table(user_data["name"], user_data["role"])
# @pytest.mark.develop # @pytest.mark.develop
def test_add_AD_user(self, browser: Page, cleanup_user: None) -> None: def test_add_AD_user(self, browser: Page, cleanup_users: None) -> None:
"""Проверяет добавление пользователя Active Directory. """Проверяет добавление пользователя Active Directory.
Args: Args:
browser: Экземпляр страницы Playwright. browser: Экземпляр страницы Playwright.
cleanup_user: Фикстура для очистки пользователя. Удаление пользователя выполняется автоматически фикстурой cleanup_users.
""" """
user_data: Dict[str, str] = {"auth_type":"active_directory", user_data: Dict[str, str] = {"auth_type":"active_directory",
@ -212,15 +226,15 @@ class TestUsersTab:
ut.open_add_user_window() ut.open_add_user_window()
ut.add_new_user(user_data) ut.add_new_user(user_data)
def test_reset_password(self, browser: Page, cleanup_autoadmin: None) -> None: def test_reset_password(self, browser: Page, cleanup_users: None) -> None:
"""Проверяет сброс пароля пользователя. """Проверяет сброс пароля пользователя.
Args: Args:
browser: Экземпляр страницы Playwright. browser: Экземпляр страницы Playwright.
cleanup_autoadmin: Фикстура для очистки пользователя autoadmin. Удаление пользователя выполняется автоматически фикстурой cleanup_users.
""" """
user_data: Dict[str, str] = {"name": "autoadmin", "role": "Администратор", "password": "123456"} user_data: Dict[str, str] = {"name": "TestUserAutoAdmin", "role": "Администратор", "password": "123456"}
mp = MainPage(browser) mp = MainPage(browser)
ut = UsersTab(browser) ut = UsersTab(browser)
@ -252,15 +266,15 @@ class TestUsersTab:
mp_1.click_subpanel_item("Пользователи") mp_1.click_subpanel_item("Пользователи")
ut_1.should_not_be_user_in_table(user_data["name"], user_data["role"]) ut_1.should_not_be_user_in_table(user_data["name"], user_data["role"])
def test_edit_user_role(self, browser: Page, cleanup_autooperator: None) -> None: def test_edit_user_role(self, browser: Page, cleanup_users: None) -> None:
"""Проверяет изменение роли пользователя. """Проверяет изменение роли пользователя.
Args: Args:
browser: Экземпляр страницы Playwright. browser: Экземпляр страницы Playwright.
cleanup_autooperator: Фикстура для очистки пользователя autooperator. Удаление пользователя выполняется автоматически фикстурой cleanup_users.
""" """
user_data: Dict[str, str] = {"name": "autooperator", "role": "Оператор", "password": "123245"} user_data: Dict[str, str] = {"name": "TestUserAutoOperator", "role": "Оператор", "password": "123245"}
mp = MainPage(browser) mp = MainPage(browser)
ut = UsersTab(browser) ut = UsersTab(browser)