"""Модуль тестов вкладки 'Статус обслуживания'. Содержит тесты для проверки отображения и функциональности элементов вкладки статусов сервисов. """ import pytest from playwright.sync_api import Page from pages.service_status_tab import ServiceStatusTab from pages.main_page import MainPage 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): """Подготавливает тестовое окружение. Args: browser: Экземпляр страницы Playwright. """ lp = LoginPage(browser) lp.do_login() # Переход на главную страницу mp = MainPage(browser) # Проверка наличия панели навигации mp.should_be_navigation_panel() # Клик по пункту 'Настройки' в главной панели навигации mp.click_main_navigation_panel_item("Настройки") # Клик по пункту 'Обслуживание и диагностика' в панели навигации настроек mp.click_subpanel_item("Обслуживание и диагностика") # Клик по пункту 'Статус обслуживания' в панели навигации обслуживания mp.click_subpanel_item("Статус обслуживания") def test_service_status_tab_content(self, browser: Page): """Проверяет содержимое вкладки 'Статус обслуживания'. Args: browser: Экземпляр страницы Playwright. """ sst = ServiceStatusTab(browser) # Проверка тулбара вкладки sst.should_be_toolbar() # Проверка наличия таблицы статусов сервисов sst.should_be_services_table() # Проверка содержимого таблицы сервисов sst.check_services_table_content() def test_service_status_table_row_highlighting(self, browser: Page): """Проверяет выделение строк в таблице сервисов. Args: browser: Экземпляр страницы Playwright. """ sst = ServiceStatusTab(browser) # Проверка тулбара вкладки sst.should_be_toolbar() # Проверка наличия таблицы статусов сервисов sst.should_be_services_table() # Получение количества строк в таблице rows_count = sst.get_rows_count() # Проверка выделения строк sst.check_services_table_row_highlighting(0) sst.check_services_table_row_highlighting(rows_count - 1) sst.check_services_table_row_highlighting(int(rows_count / 2))