e-nms_qa_automation/tests/e2e/test_users_tab.py

137 lines
6.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

from typing import Dict
import pytest
from playwright.sync_api import Page
from pages.users_tab import UsersTab
from pages.main_page import MainPage
from pages.login_page import LoginPage
class TestUsersTab:
"""Тесты для вкладки 'Пользователи'."""
@pytest.fixture(scope="function", autouse=True)
def setup(self, browser: Page) -> None:
"""Подготовка тестового окружения."""
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("Пользователи")
def test_users_tab_content(self, browser: Page) -> None:
"""Тест содержимого вкладки 'Пользователи'."""
ut = UsersTab(browser)
ut.should_be_toolbar()
ut.should_be_users_table()
ut.check_users_table_content(True)
def test_users_tab_toolbar_buttons(self, browser: Page) -> None:
"""Тест кнопок на панели инструментов."""
ut = UsersTab(browser)
ut.should_be_toolbar_buttons()
def test_add_user_window_content(self, browser: Page) -> None:
"""Тест содержимого окна добавления пользователя."""
ut = UsersTab(browser)
ut.open_add_user_window()
ut.check_add_user_window_content()
def test_add_user_window_close_buttons(self, browser: Page) -> None:
"""Тест кнопок закрытия окна добавления пользователя."""
ut = UsersTab(browser)
ut.open_add_user_window()
ut.close_add_user_window_by_toolbar_button()
ut.open_add_user_window()
ut.close_add_user_window()
def test_edit_user_window_content(self, browser: Page) -> None:
"""Тест содержимого окна редактирования пользователя."""
ut = UsersTab(browser)
user_name, role = ut.open_edit_user_page_by_index(0)
ut.check_edit_user_window_content(user_name, role)
def test_edit_user_window_close_buttons(self, browser: Page) -> None:
"""Тест кнопок закрытия окна редактирования пользователя."""
ut = UsersTab(browser)
user_name, role = ut.open_edit_user_page_by_index(0)
ut.close_edit_user_window_by_toolbar_button(user_name)
user_name, role = ut.open_edit_user_page_by_index(0)
ut.close_edit_user_window(user_name)
def test_add_and_delete_user(self, browser: Page) -> None:
"""Тест добавления и удаления пользователя."""
user_data: Dict[str, str] = {"name": "User", "role": "Администратор", "password": "987654"}
mp = MainPage(browser)
ut = UsersTab(browser)
ut.open_add_user_window()
ut.add_new_user(user_data)
mp.click_configuration_navigation_panel_item("Пользователи")
mp.click_configuration_navigation_panel_item("Пользователи")
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.delete_user(user_data["name"])
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"])
def test_reset_password(self, browser: Page) -> None:
"""Тест сброса пароля пользователя."""
user_data: Dict[str, str] = {"name": "autoadmin", "role": "Администратор", "password": "123456"}
mp = MainPage(browser)
ut = UsersTab(browser)
ut.open_add_user_window()
ut.add_new_user(user_data)
mp.click_configuration_navigation_panel_item("Пользователи")
mp.click_configuration_navigation_panel_item("Пользователи")
ut.open_edit_user_page_by_user(user_data["name"], user_data["role"])
new_password = ut.reset_password(user_data["name"])
if len(new_password) == 0:
assert False, "Unsuccessful password reset"
new_lp = LoginPage(browser)
new_lp.do_login(username=user_data["name"], password=new_password)
new_mp = MainPage(browser)
new_mp.do_logout()
lp_1 = LoginPage(browser)
lp_1.do_login()
mp_1 = MainPage(browser)
mp_1.should_be_navigation_panel()
mp_1.click_main_navigation_panel_item("Настройки")
mp_1.click_configuration_navigation_panel_item("Пользователи")
ut_1 = UsersTab(browser)
ut_1.open_edit_user_page_by_user(user_data["name"], user_data["role"])
ut_1.delete_user(user_data["name"])
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"])
def test_edit_user_role(self, browser: Page) -> None:
"""Тест изменения роли пользователя."""
user_data: Dict[str, str] = {"name": "autooperator", "role": "Оператор", "password": "123245"}
mp = MainPage(browser)
ut = UsersTab(browser)
ut.open_add_user_window()
ut.add_new_user(user_data)
mp.click_configuration_navigation_panel_item("Пользователи")
mp.click_configuration_navigation_panel_item("Пользователи")
ut.open_edit_user_page_by_user(user_data["name"], user_data["role"])
new_user_data = {"role": "Контактное лицо"}
ut.edit_user(user_data["name"], new_user_data)
mp.click_configuration_navigation_panel_item("Пользователи")
mp.click_configuration_navigation_panel_item("Пользователи")
ut.should_be_user_in_table(user_data["name"], new_user_data["role"])
ut.open_edit_user_page_by_user(user_data["name"], new_user_data["role"])
ut.delete_user(user_data["name"])
mp.click_configuration_navigation_panel_item("Пользователи")
mp.click_configuration_navigation_panel_item("Пользователи")
ut.should_not_be_user_in_table(user_data["name"], new_user_data["role"])