Files
e2e_Pets/tests/conftest.py

41 lines
1.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import pytest
from playwright.sync_api import Page
# Словарь с учетными данными для разных ролей
CREDENTIALS = {
"vetdept": {"login": "gz_vetdept@vet.goznak.ru", "password": "y2pyBAn7zw"},
"vetstation": {"login": "gz_vetstation@vet.goznak.ru", "password": "A6wrpzpD5T"},
"prefecture": {"login": "gz_prefecture@vet.goznak.ru", "password": "sbT9shGsbe"},
}
@pytest.fixture(scope="function")
def role_page(page: Page, request):
"""
Фикстура, которая определяет роль теста и автоматически авторизует пользователя.
"""
# 2. Выполняем логин
role = None
for marker in request.node.iter_markers():
if marker.name in CREDENTIALS:
role = marker.name
break
# 3. Если маркер не найден, честно говорим об этом (вместо молчаливого NameError)
if role is None:
pytest.fail("ОШИБКА: У теста нет маркера роли (например, @pytest.mark.vetstation)!")
print(f"\n[АВТОЛОГИН] Выполняется вход под ролью: {role}")
page.goto("https://vet.goznak.ru")
creds = CREDENTIALS[role]
page.get_by_role("textbox", name="Email").fill(creds["login"])
page.get_by_role("textbox", name="Введите пароль").fill(creds["password"])
page.get_by_role("button", name="Войти в аккаунт").click()
page.wait_for_selector("#app", timeout=10000)
yield page
page.context.clear_cookies()