from pages.login_page import LoginPage from pages.main_page import MainPage from pages.service_status_tab import ServiceStatusTab import pytest class TestServiceStatusTab: """Набор тестов для вкладки 'Статус обслуживания'. Проверяет корректность отображения и функциональность элементов вкладки. """ @pytest.fixture(scope="function", autouse=True) def setup(self, browser): """Фикстура для подготовки тестового окружения. Выполняет: 1. Авторизацию в системе 2. Переход на вкладку 'Статус обслуживания' """ lp = LoginPage(browser) lp.do_login() # Переход на главную страницу mp = MainPage(browser) # Проверка наличия панели навигации mp.should_be_navigation_panel() # Клик по пункту 'Настройки' в главной панели навигации mp.click_main_navigation_panel_item("Настройки") # Клик по пункту 'Обслуживание и диагностика' в панели навигации настроек mp.click_configuration_navigation_panel_item("Обслуживание и диагностика") # Клик по пункту 'Статус обслуживания' в панели навигации обслуживания mp.click_maintenance_navigation_panel_item("Статус обслуживания") def test_service_status_tab_content(self, browser): """Тест содержимого вкладки 'Статус обслуживания'. Проверяет: 1. Наличие тулбара 2. Наличие таблицы сервисов 3. Корректность содержимого таблицы """ 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): """Тест выделения строк в таблице сервисов. Проверяет выделение строк: 1. Первой строки 2. Последней строки 3. Строки в середине таблицы """ 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))