Минимальный рефакторинг компонента таблица - сделаны общие методы проверки контента и подсчета колт=ичества строк
parent
16c558a3a5
commit
1b92588168
|
|
@ -41,6 +41,25 @@ class TableComponent(BaseComponent):
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def get_rows_count(self, locator: str | Locator) -> int:
|
||||||
|
"""Возвращает количество строк в таблице (без заголовка).
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
int: Количество строк с данными.
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
AssertionError: Если таблица пуста.
|
||||||
|
"""
|
||||||
|
|
||||||
|
table_content = self.read(locator)
|
||||||
|
rows_count = len(table_content)
|
||||||
|
|
||||||
|
if rows_count == 0:
|
||||||
|
assert False, "The contents of the table are missing"
|
||||||
|
|
||||||
|
return rows_count - 1
|
||||||
|
|
||||||
|
|
||||||
def read(self, locator: str | Locator) -> list[list[str]]:
|
def read(self, locator: str | Locator) -> list[list[str]]:
|
||||||
"""Читает данные таблицы, включая заголовки.
|
"""Читает данные таблицы, включая заголовки.
|
||||||
|
|
||||||
|
|
@ -74,6 +93,30 @@ class TableComponent(BaseComponent):
|
||||||
return table_data
|
return table_data
|
||||||
|
|
||||||
# Проверки:
|
# Проверки:
|
||||||
|
def check_content(self,
|
||||||
|
locator: str | Locator,
|
||||||
|
expected_headers: list[str]) -> None:
|
||||||
|
"""Проверяет содержимое таблицы.
|
||||||
|
|
||||||
|
Проверяет заголовки и наличие данных в таблице.
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
AssertionError: Если таблица пуста или заголовки неверны.
|
||||||
|
"""
|
||||||
|
|
||||||
|
table_content = self.read(locator)
|
||||||
|
|
||||||
|
if len(table_content) == 0:
|
||||||
|
assert False, "The contents of the table are missing"
|
||||||
|
|
||||||
|
actual_headers = table_content[0]
|
||||||
|
|
||||||
|
assert actual_headers == expected_headers, \
|
||||||
|
f"Expected events table headers {expected_headers} are not equal {actual_headers}"
|
||||||
|
|
||||||
|
if len(table_content) == 1:
|
||||||
|
assert False, "Table body is missing"
|
||||||
|
|
||||||
def check_first_row_visibility(self, locator: str | Locator) -> None:
|
def check_first_row_visibility(self, locator: str | Locator) -> None:
|
||||||
"""Проверяет видимость первой строки таблицы.
|
"""Проверяет видимость первой строки таблицы.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,13 +39,7 @@ class ServiceStatusTab(BasePage):
|
||||||
AssertionError: Если таблица пуста.
|
AssertionError: Если таблица пуста.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
table_content = self.services_table.read(TableLocators.TABLE_WORK_AREA)
|
return self.services_table.get_rows_count(TableLocators.TABLE_WORK_AREA)
|
||||||
rows_count = len(table_content)
|
|
||||||
|
|
||||||
if rows_count == 0:
|
|
||||||
assert False, "The contents of the table are missing"
|
|
||||||
|
|
||||||
return rows_count - 1
|
|
||||||
|
|
||||||
def scroll_services_table_up(self) -> None:
|
def scroll_services_table_up(self) -> None:
|
||||||
"""Прокручивает таблицу сервисов вверх."""
|
"""Прокручивает таблицу сервисов вверх."""
|
||||||
|
|
@ -62,9 +56,6 @@ class ServiceStatusTab(BasePage):
|
||||||
|
|
||||||
Проверяет заголовки и наличие данных в таблице.
|
Проверяет заголовки и наличие данных в таблице.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Raises:
|
Raises:
|
||||||
AssertionError: Если таблица пуста или заголовки неверны.
|
AssertionError: Если таблица пуста или заголовки неверны.
|
||||||
"""
|
"""
|
||||||
|
|
@ -78,21 +69,7 @@ class ServiceStatusTab(BasePage):
|
||||||
'Image ТЭГ'
|
'Image ТЭГ'
|
||||||
]
|
]
|
||||||
|
|
||||||
table_content = self.services_table.read(TableLocators.TABLE_WORK_AREA)
|
self.services_table.check_content(TableLocators.TABLE_WORK_AREA, expected_headers)
|
||||||
|
|
||||||
if len(table_content) == 0:
|
|
||||||
assert False, "The contents of the table are missing"
|
|
||||||
|
|
||||||
actual_headers = table_content[0]
|
|
||||||
|
|
||||||
self.check_equals(
|
|
||||||
actual_headers,
|
|
||||||
expected_headers,
|
|
||||||
f"Expected table headers {expected_headers} are not equal {actual_headers}"
|
|
||||||
)
|
|
||||||
|
|
||||||
if len(table_content) == 1:
|
|
||||||
assert False, "Table body is missing"
|
|
||||||
|
|
||||||
def check_services_table_verticall_scrolling(self) -> bool:
|
def check_services_table_verticall_scrolling(self) -> bool:
|
||||||
"""Проверяет возможность вертикальной прокрутки таблицы.
|
"""Проверяет возможность вертикальной прокрутки таблицы.
|
||||||
|
|
@ -158,4 +135,3 @@ class ServiceStatusTab(BasePage):
|
||||||
TableLocators.TABLE_WORK_AREA,
|
TableLocators.TABLE_WORK_AREA,
|
||||||
"Service statuses table is missing"
|
"Service statuses table is missing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -46,13 +46,7 @@ class SessionsTab(BasePage):
|
||||||
AssertionError: Если таблица пуста.
|
AssertionError: Если таблица пуста.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
table_content = self.sessions_table.read(TableLocators.TABLE_WORK_AREA)
|
return self.sessions_table.get_rows_count(TableLocators.TABLE_WORK_AREA)
|
||||||
rows_count = len(table_content)
|
|
||||||
|
|
||||||
if rows_count == 0:
|
|
||||||
assert False, "The contents of the table are missing"
|
|
||||||
|
|
||||||
return rows_count - 1
|
|
||||||
|
|
||||||
def get_delete_session_button_from_row(self, row_index: int) -> TooltipButton:
|
def get_delete_session_button_from_row(self, row_index: int) -> TooltipButton:
|
||||||
"""Возвращает кнопку удаления сеанса для указанной строки.
|
"""Возвращает кнопку удаления сеанса для указанной строки.
|
||||||
|
|
@ -229,6 +223,7 @@ class SessionsTab(BasePage):
|
||||||
'Адрес'
|
'Адрес'
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
table_content = self.sessions_table.read(TableLocators.TABLE_WORK_AREA)
|
table_content = self.sessions_table.read(TableLocators.TABLE_WORK_AREA)
|
||||||
len_table_content = len(table_content)
|
len_table_content = len(table_content)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -132,13 +132,7 @@ class TemplatesTab(BasePage):
|
||||||
AssertionError: Если таблица пуста.
|
AssertionError: Если таблица пуста.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
table_content = self.templates_table.read(TableLocators.TABLE_WORK_AREA)
|
return self.templates_table.get_rows_count(TableLocators.TABLE_WORK_AREA)
|
||||||
rows_count = len(table_content)
|
|
||||||
|
|
||||||
if rows_count == 0:
|
|
||||||
assert False, "The contents of the table are missing"
|
|
||||||
|
|
||||||
return rows_count - 1
|
|
||||||
|
|
||||||
def scroll_templates_table_up(self) -> None:
|
def scroll_templates_table_up(self) -> None:
|
||||||
"""Прокручивает таблицу шаблонов вверх."""
|
"""Прокручивает таблицу шаблонов вверх."""
|
||||||
|
|
@ -249,21 +243,7 @@ class TemplatesTab(BasePage):
|
||||||
'Производитель'
|
'Производитель'
|
||||||
]
|
]
|
||||||
|
|
||||||
table_content = self.templates_table.read(TableLocators.TABLE_WORK_AREA)
|
self.templates_table.check_content(TableLocators.TABLE_WORK_AREA, expected_headers)
|
||||||
|
|
||||||
if len(table_content) == 0:
|
|
||||||
assert False, "The contents of the table are missing"
|
|
||||||
|
|
||||||
actual_headers = table_content[0]
|
|
||||||
|
|
||||||
self.check_equals(
|
|
||||||
actual_headers,
|
|
||||||
expected_headers,
|
|
||||||
f"Expected table headers {expected_headers} are not equal {actual_headers}"
|
|
||||||
)
|
|
||||||
|
|
||||||
if len(table_content) == 1:
|
|
||||||
assert False, "Table body is missing"
|
|
||||||
|
|
||||||
def check_templates_table_verticall_scrolling(self) -> bool:
|
def check_templates_table_verticall_scrolling(self) -> bool:
|
||||||
"""Проверяет возможность вертикальной прокрутки таблицы.
|
"""Проверяет возможность вертикальной прокрутки таблицы.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue