Compare commits

..

No commits in common. "9d0cab513f2013279f9cf8e5f6551aa476bed0a9" and "51adc848382a383a76ee4913c612d245b7d4a99d" have entirely different histories.

4 changed files with 10 additions and 82 deletions

BIN
.gitignore vendored

Binary file not shown.

View File

@ -43,10 +43,6 @@ class TooltipButton(BaseElement):
# Получение элемента подсказки # Получение элемента подсказки
tooltip = self.page.locator(tooltip_locator) tooltip = self.page.locator(tooltip_locator)
tooltip.wait_for(state="visible", timeout=5000)
self.page.wait_for_timeout(300)
# Проверка соответствия текста # Проверка соответствия текста
actual_text = tooltip.text_content().strip() actual_text = tooltip.text_content().strip()
assert actual_text == expected_text, ( assert actual_text == expected_text, (

View File

@ -148,17 +148,13 @@ class UsersTab(BasePage):
self.close_modal_window(title) self.close_modal_window(title)
def add_new_user(self, user_data: dict) -> bool: def add_new_user(self, user_data: dict) -> bool:
"""Добавляет нового пользователя или обрабатывает ошибку при дубликате. """Добавляет нового пользователя.
Args: Args:
user_data: Данные пользователя (name, role, password). user_data: Данные пользователя.
Returns:
bool: True если пользователь успешно добавлен, False если пользователь уже существует.
Raises: Raises:
AssertionError: Если открылось alert окно отличное от success или error, AssertionError: Если открылось alert окно отличное от success или error.
или если текст alert не соответствует ожидаемому.
""" """
self.get_modal_window("add_user").new_user(user_data) self.get_modal_window("add_user").new_user(user_data)
@ -248,8 +244,6 @@ class UsersTab(BasePage):
AssertionError: Если таблица пуста. AssertionError: Если таблица пуста.
""" """
self.page.wait_for_timeout(1000)
table_content = self.users_table.read(TableLocators.TABLE_WORK_AREA) table_content = self.users_table.read(TableLocators.TABLE_WORK_AREA)
if len(table_content) == 0: if len(table_content) == 0:
assert False, "The contents of the table are missing" assert False, "The contents of the table are missing"
@ -290,8 +284,6 @@ class UsersTab(BasePage):
AssertionError: Если таблица пуста или индекс вне диапазона. AssertionError: Если таблица пуста или индекс вне диапазона.
""" """
self.page.wait_for_timeout(2000)
tmp_dict = {"admin": "Администратор", "manager": "Контактное лицо", "operator": "Оператор"} tmp_dict = {"admin": "Администратор", "manager": "Контактное лицо", "operator": "Оператор"}
table_content = self.users_table.read(TableLocators.TABLE_WORK_AREA) table_content = self.users_table.read(TableLocators.TABLE_WORK_AREA)
@ -345,7 +337,6 @@ class UsersTab(BasePage):
Raises: Raises:
AssertionError: Если таблица пуста или заголовки неверны. AssertionError: Если таблица пуста или заголовки неверны.
""" """
self.page.wait_for_timeout(2000)
expected_headers = ['Имя пользователя', 'Тип авторизации', 'Роль', 'E-mail', 'Номер для СМС'] expected_headers = ['Имя пользователя', 'Тип авторизации', 'Роль', 'E-mail', 'Номер для СМС']
table_content = self.users_table.read(TableLocators.TABLE_WORK_AREA) table_content = self.users_table.read(TableLocators.TABLE_WORK_AREA)

View File

@ -30,39 +30,6 @@ class TestUsersTab:
mp.click_main_navigation_panel_item("Настройки") mp.click_main_navigation_panel_item("Настройки")
mp.click_configuration_navigation_panel_item("Пользователи") mp.click_configuration_navigation_panel_item("Пользователи")
@pytest.fixture(scope="function")
def cleanup_user(self, browser: Page) -> None:
"""Фикстура для очистки пользователя User после теста."""
yield
# Удаляем тестового пользователя после выполнения теста
user_data: Dict[str, str] = {"name": "User", "role": "Администратор", "password": "987654"}
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"])
@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"])
@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: def test_users_tab_content(self, browser: Page) -> None:
"""Проверяет содержимое вкладки 'Пользователи'. """Проверяет содержимое вкладки 'Пользователи'.
@ -134,12 +101,11 @@ class TestUsersTab:
user_name, role = ut.open_edit_user_page_by_index(0) user_name, role = ut.open_edit_user_page_by_index(0)
ut.close_edit_user_window(user_name) ut.close_edit_user_window(user_name)
def test_add_and_delete_user(self, browser: Page, cleanup_user) -> None: def test_add_and_delete_user(self, browser: Page) -> None:
"""Проверяет добавление и удаление пользователя. """Проверяет добавление и удаление пользователя.
Args: Args:
browser: Экземпляр страницы Playwright. browser: Экземпляр страницы Playwright.
cleanup_user: Фикстура для очистки пользователя.
""" """
user_data: Dict[str, str] = {"name": "User", "role": "Администратор", "password": "987654"} user_data: Dict[str, str] = {"name": "User", "role": "Администратор", "password": "987654"}
@ -147,46 +113,22 @@ class TestUsersTab:
mp = MainPage(browser) mp = MainPage(browser)
ut = UsersTab(browser) ut = UsersTab(browser)
# Проверяем, есть ли такой пользователь
user_exists = ut.find_user_in_table(user_data["name"], user_data["role"]) != -1
if not user_exists:
# Создаем пользователя впервые
ut.open_add_user_window()
success = ut.add_new_user(user_data)
if success:
# Ждем обновления таблицы с использованием ожиданий Playwright
browser.wait_for_timeout(2000)
# Проверяем наличие пользователя в таблице
user_found = ut.find_user_in_table(user_data["name"], user_data["role"]) != -1
if not user_found:
# Если пользователь не найден, обновляем страницу
browser.reload()
browser.wait_for_timeout(2000)
else:
ut.close_add_user_window()
# Пытаемся создать такого же пользователя снова
ut.open_add_user_window() ut.open_add_user_window()
success_second = ut.add_new_user(user_data) ut.add_new_user(user_data)
mp.click_configuration_navigation_panel_item("Пользователи")
# Должно вернуться False при попытке создания существующего пользователя mp.click_configuration_navigation_panel_item("Пользователи")
assert not success_second, "Ожидалась ошибка при создании существующего пользователя" ut.should_be_user_in_table(user_data["name"], user_data["role"])
ut.open_edit_user_page_by_user(user_data["name"], user_data["role"]) ut.open_edit_user_page_by_user(user_data["name"], user_data["role"])
ut.delete_user(user_data["name"]) ut.delete_user(user_data["name"])
mp.click_configuration_navigation_panel_item("Пользователи") mp.click_configuration_navigation_panel_item("Пользователи")
mp.click_configuration_navigation_panel_item("Пользователи") mp.click_configuration_navigation_panel_item("Пользователи")
ut.should_not_be_user_in_table(user_data["name"], user_data["role"]) ut.should_not_be_user_in_table(user_data["name"], user_data["role"])
def test_reset_password(self, browser: Page, cleanup_autoadmin) -> None: def test_reset_password(self, browser: Page) -> None:
"""Проверяет сброс пароля пользователя. """Проверяет сброс пароля пользователя.
Args: Args:
browser: Экземпляр страницы Playwright. browser: Экземпляр страницы Playwright.
cleanup_autoadmin: Фикстура для очистки пользователя autoadmin.
""" """
user_data: Dict[str, str] = {"name": "autoadmin", "role": "Администратор", "password": "123456"} user_data: Dict[str, str] = {"name": "autoadmin", "role": "Администратор", "password": "123456"}
@ -221,12 +163,11 @@ class TestUsersTab:
mp_1.click_configuration_navigation_panel_item("Пользователи") mp_1.click_configuration_navigation_panel_item("Пользователи")
ut_1.should_not_be_user_in_table(user_data["name"], user_data["role"]) 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: def test_edit_user_role(self, browser: Page) -> None:
"""Проверяет изменение роли пользователя. """Проверяет изменение роли пользователя.
Args: Args:
browser: Экземпляр страницы Playwright. browser: Экземпляр страницы Playwright.
cleanup_autooperator: Фикстура для очистки пользователя autooperator.
""" """
user_data: Dict[str, str] = {"name": "autooperator", "role": "Оператор", "password": "123245"} user_data: Dict[str, str] = {"name": "autooperator", "role": "Оператор", "password": "123245"}