from pages.login_page import LoginPage from pages.main_page import MainPage from pages.users_tab import UsersTab from pages.configuration_page import ConfigurationPage from pages.session_tab import SessionTab import pytest ## @pytest.mark.smoke # Закомментированная метка для smoke-тестов class TestSessionTab: def test_add_users(self, browser): """Тест создания 9 пользователей User1..User9 с ролью Администратор""" # Переходим на страницу авторизации lp = LoginPage(browser) # Выполняем вход в систему (по умолчанию) lp.do_login() # Переходим на главную страницу mp = MainPage(browser) # Проверяем наличие панели навигации mp.should_be_navigation_panel() # Нажимаем на кнопку "Configuration" в главной панели навигации mp.click_main_navigation_panel_item("configuration") # Переходим на страницу конфигурации cp = ConfigurationPage(browser) # Нажимаем вкладку "Users" в панели навигации конфигурации cp.click_configuration_navigation_panel_item("users") # Переходим на вкладку пользователей ut = UsersTab(browser) # Создаем 9 пользователей for i in range(1, 10): user_data = { "name": f"User{i}", # Генерируем имя пользователя "role": "Администратор", # Устанавливаем роль "password": "admin" # Пароль для всех пользователей } ut.open_add_user_page() # Открываем страницу добавления пользователя ut.add_new_user(user_data) # Добавляем пользователя с заданными данными # Двойной клик по вкладке Users ( баг ) cp.click_configuration_navigation_panel_item("users") cp.click_configuration_navigation_panel_item("users") # Проверяем, что пользователь появился в таблице ut.should_be_user_in_table(user_data["name"], user_data["role"]) def test_login_users(self, browser): """Тест входа под созданными пользователями (создание 9 сессий)""" # Генерируем список имен пользователей users = [f"User{i}" for i in range(1, 9)] # Выполняем вход в систему 9 созданными пользователями for username in users: login_page = LoginPage(browser) login_page.do_login(username=username, password="admin") def test_session_tab_content(self, browser): """Тест проверки содержимого вкладки сессий""" lp = LoginPage(browser) lp.do_login() mp = MainPage(browser) # Проверяем наличие панели навигации mp.should_be_navigation_panel() # Нажимаем на кнопку "Configuration" в главной панели навигации mp.click_main_navigation_panel_item("configuration") # Переходим на страницу конфигурации cp = ConfigurationPage(browser) # Нажимаем на кнопку "Technical Maintenance" в панели навигации конфигурации cp.click_configuration_navigation_panel_item("maintenance") # Проверяем наличие панели навигации Maintenance cp.should_be_maintenance_navigation_panel() # Нажимаем на вкладку "Session" в панели навигации Maintenanc cp.click_maintenance_navigation_panel_item("session") # Работаем с вкладкой сессий st = SessionTab(browser) # Проверяем наличие таблицы сессий st.should_be_session_table() # Проверяем соответствие данных в таблице данным из API st.should_be_session_table_data_vs_api() #st.should_be_new_session_added() требуется разработать # Проверяем наличие вертикальной прокрутки в таблице сессий st.should_be_vertical_scroll_session() # Открываем модальное окно последней сессии st.open_last_session_modal() # Проверяем наличие горизонтальной прокрутки в модальном окне st.should_be_horizontal_scroll_session_modal() # Закрываем модальное окно кнопкой "close" st.should_be_close_modal_window_by_button("close") # Закрываем модальное окно кнопкой "cancel" st.open_last_session_modal() st.should_be_close_modal_window_by_button("cancel") # Закрываем модальное окно кнопкой "delete" st.open_last_session_modal() st.should_be_close_modal_window_by_button("delete") def test_delete_users(self, browser): """Тест удаления созданных пользователей (в обратном порядке)""" lp = LoginPage(browser) lp.do_login() # Переходим на главную страницу mp = MainPage(browser) # Проверяем наличие панели навигации mp.should_be_navigation_panel() # Нажимаем на кнопку "Configuration" в главной панели навигации mp.click_main_navigation_panel_item("configuration") # Нажимаем на страницу конфигурации cp = ConfigurationPage(browser) # Нажимаем на вкладку "Users" в панели навигации конфигурации cp.click_configuration_navigation_panel_item("users") # Работаем с вкладкой пользователей ut = UsersTab(browser) # Удаляем пользователей в обратном порядке (от User8 до User1) for i in range(9, 0, -1): user_data = { "name": f"User{i}", "role": "Администратор", } ut.open_edit_user_page_by_name(user_data["name"], user_data["role"]) ut.delete_user() # Двойной клик по вкладке Users (возможно, для обновления списка) cp.click_configuration_navigation_panel_item("users") cp.click_configuration_navigation_panel_item("users") # Проверяем отсутствие последнего удаленного пользователя в таблице ut.should_not_be_user_in_table(user_data["name"], user_data["role"])