Добавлено в 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:
"""Класс тестов для проверки панели событий.
Тесты покрывают следующие сценарии:
1. test_event_panel_content: Проверяет содержимое панели событий
2. test_event_panel_expand_buttons: Проверяет состояние и количество кнопок расширения рабочей области панели событий
Атрибуты:
browser: Фикстура для работы с браузером.
"""

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -12,7 +12,20 @@ from pages.main_page import MainPage
from pages.login_page import LoginPage
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)
def setup(self, browser: Page) -> None:
@ -31,37 +44,38 @@ class TestUsersTab:
mp.click_subpanel_item("Пользователи")
@pytest.fixture(scope="function")
def cleanup_user(self, browser: Page) -> None:
"""Фикстура для очистки пользователя User после теста."""
def cleanup_users(self, browser: Page) -> None:
"""Фикстура для очистки тестовых пользователей и их сеансов после теста."""
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)
# Проверяем существует ли пользователь и удаляем его
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"])
# Удаляем тестовых пользователей
test_users = ["TestUser", "TestUserAutoOperator", "TestUserAutoAdmin"]
@pytest.fixture(scope="function")
def cleanup_autoadmin(self, browser: Page) -> None:
"""Фикстура для очистки пользователя autoadmin после теста."""
yield
user_data: Dict[str, str] = {"name": "autoadmin", "role": "Администратор", "password": "123456"}
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"])
for user_name in test_users:
# Проверяем существует ли пользователь и удаляем его
user_index = ut.find_user_in_table(user_name, "Администратор")
if user_index != -1:
ut.open_edit_user_page_by_user(user_name, "Администратор")
ut.delete_user(user_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:
"""Проверяет содержимое вкладки 'Пользователи'.
@ -146,15 +160,15 @@ class TestUsersTab:
ut.close_edit_user_window(user_name)
# @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:
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)
ut = UsersTab(browser)
@ -194,12 +208,12 @@ class TestUsersTab:
ut.should_not_be_user_in_table(user_data["name"], user_data["role"])
# @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.
Args:
browser: Экземпляр страницы Playwright.
cleanup_user: Фикстура для очистки пользователя.
Удаление пользователя выполняется автоматически фикстурой cleanup_users.
"""
user_data: Dict[str, str] = {"auth_type":"active_directory",
@ -212,15 +226,15 @@ class TestUsersTab:
ut.open_add_user_window()
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:
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)
ut = UsersTab(browser)
@ -252,15 +266,15 @@ class TestUsersTab:
mp_1.click_subpanel_item("Пользователи")
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:
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)
ut = UsersTab(browser)