e-nms_qa_automation.1/tests/test_session_tab.py

162 lines
7.7 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 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"])