"""Модуль вкладки 'Статус обслуживания'.
Содержит класс ServiceStatusTab для работы с таблицей сервисов.
Позволяет проверять состояние и взаимодействовать с элементами вкладки.
"""
from playwright.sync_api import Page
from locators.table_locators import TableLocators
from components.toolbar_component import ToolbarComponent
from components.table_component import TableComponent
from pages.base_page import BasePage
[документация]
class ServiceStatusTab(BasePage):
"""Класс для работы с вкладкой 'Статус обслуживания'.
Предоставляет методы для взаимодействия с таблицей сервисов и проверки
её состояния.
Args:
page: Экземпляр страницы Playwright.
"""
[документация]
def __init__(self, page: Page) -> None:
"""Инициализирует компоненты вкладки 'Статус обслуживания'."""
super().__init__(page)
self.toolbar = ToolbarComponent(page, "Статус обслуживания")
self.services_table = TableComponent(page)
[документация]
def get_rows_count(self) -> int:
"""Возвращает количество строк в таблице (без заголовка).
Returns:
int: Количество строк с данными.
Raises:
AssertionError: Если таблица пуста.
"""
return self.services_table.get_rows_count(TableLocators.TABLE_WORK_AREA)
[документация]
def check_services_table_content(self) -> None:
"""Проверяет содержимое таблицы сервисов.
Проверяет заголовки и наличие данных в таблице.
Raises:
AssertionError: Если таблица пуста или заголовки неверны.
"""
expected_headers = [
'Контейнер',
'Время создания',
'Статус',
'Время работы',
'Image ID',
'Image ТЭГ'
]
self.services_table.check_content(TableLocators.TABLE_WORK_AREA, expected_headers)
[документация]
def check_services_table_first_row_visibility(self) -> None:
"""Проверяет видимость первой строки таблицы.
Raises:
AssertionError: Если строка не видна.
"""
self.services_table.check_first_row_visibility(TableLocators.TABLE_WORK_AREA)
[документация]
def check_services_table_last_row_visibility(self) -> None:
"""Проверяет видимость последней строки таблицы.
Raises:
AssertionError: Если строка не видна.
"""
self.services_table.check_last_row_visibility(TableLocators.TABLE_WORK_AREA)
[документация]
def check_services_table_row_highlighting(self, row_index: int) -> None:
"""Проверяет выделение указанной строки таблицы.
Args:
row_index: Индекс проверяемой строки.
Raises:
AssertionError: Если строка не выделена.
"""
self.services_table.check_row_highlighting(
TableLocators.TABLE_WORK_AREA,
row_index
)
[документация]
def should_be_services_table(self) -> None:
"""Проверяет наличие таблицы сервисов.
Raises:
AssertionError: Если таблица отсутствует.
"""
self.services_table.check_visibility(
TableLocators.TABLE_WORK_AREA,
"Service statuses table is missing"
)