e-nms_qa_automation/tests/components/test_user_modal_window.py

134 lines
6.1 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
import pytest
class TestUsersModalWindow:
"""Тесты для проверки модальных окон работы с пользователями.
Содержит тесты для проверки:
- Прокрутки модальных окон (вертикальной и горизонтальной)
- Видимости элементов после прокрутки
- Функциональности окон редактирования и добавления пользователей
"""
# @pytest.mark.smoke
@pytest.fixture(scope="function", autouse=True)
def setup(self, browser):
"""Фикстура для настройки тестового окружения.
Выполняет:
1. Авторизацию в системе
2. Переход на главную страницу
3. Проверку видимости панели навигации
4. Переход на вкладку 'Пользователи'
Args:
browser: Фикстура браузера
"""
# Авторизация в системе
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("Пользователи")
@pytest.mark.develop
def test_edit_user_window_scrolling(self, browser):
"""Тест проверки прокрутки окна редактирования пользователя.
Проверяет:
1. Возможность вертикальной и горизонтальной прокрутки
2. Видимость кнопок после прокрутки
3. Корректность работы прокрутки в разных направлениях
Args:
browser: Фикстура браузера
"""
# Инициализация страницы работы с пользователями
ut = UsersTab(browser)
# Открытие окна редактирования пользователя
user_name, role = ut.open_edit_user_page_by_index(0)
# Получение модального окна
modal_window = ut.get_modal_window(user_name)
# Проверка вертикальной прокрутки
is_scrollable_vertically = modal_window.check_window_vertical_scrolling()
assert is_scrollable_vertically, "Should be vertical scrolling"
# Прокрутка вниз и проверка кнопки "close"
modal_window.scroll_window_down()
modal_window.check_button_presence("close")
ut.wait_for_timeout(3000)
# Прокрутка вверх и проверка кнопки "close" в тулбаре
modal_window.scroll_window_up()
modal_window.check_toolbar_button_presence("close")
ut.wait_for_timeout(3000)
# Проверка горизонтальной прокрутки
is_scrollable_horizontally = modal_window.check_window_horizontal_scrolling()
assert is_scrollable_horizontally, "Should be horizontal scrolling"
# Прокрутка вправо и влево
modal_window.scroll_window_right()
ut.wait_for_timeout(3000)
modal_window.scroll_window_left()
ut.wait_for_timeout(2000)
def test_add_user_window_scrolling(self, browser):
"""Тест проверки прокрутки окна добавления пользователя.
Проверяет:
1. Возможность вертикальной и горизонтальной прокрутки
2. Видимость кнопок после прокрутки
3. Корректность работы прокрутки в разных направлениях
Args:
browser: Фикстура браузера
"""
# Инициализация страницы работы с пользователями
ut = UsersTab(browser)
# Открытие окна добавления пользователя
ut.open_add_user_window()
# Получение модального окна
modal_window = ut.get_modal_window("add_user")
# Проверка вертикальной прокрутки
is_scrollable_vertically = modal_window.check_window_vertical_scrolling()
assert is_scrollable_vertically, "Should be vertical scrolling"
# Прокрутка вниз и проверка кнопки "close"
modal_window.scroll_window_down()
modal_window.check_button_presence("close")
ut.wait_for_timeout(3000)
# Прокрутка вверх и проверка кнопки "close" в тулбаре
modal_window.scroll_window_up()
modal_window.check_toolbar_button_presence("close")
ut.wait_for_timeout(3000)
# Проверка горизонтальной прокрутки
is_scrollable_horizontally = modal_window.check_window_horizontal_scrolling()
assert is_scrollable_horizontally, "Should be horizontal scrolling"
# Прокрутка вправо и влево
modal_window.scroll_window_right()
ut.wait_for_timeout(3000)
modal_window.scroll_window_left()
ut.wait_for_timeout(2000)