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