Files
e2e_Pets/tests/01_vetdept/conftest.py
VolandSZ 255f0d46b9 feat: test data generators (ФЛК) and static fixtures structure
Добавлена инфраструктура для тестовых данных:

tests/testdata/generators.py — генераторы случайных данных по ФЛК:
  - Раздел 'Животное': gen_animal_name, gen_birth_date
  - Раздел 'Маркировка': gen_microchip (ISO 11784/85), gen_tattoo
  - Раздел 'Владелец': gen_owner_full_name, gen_owner_phone, gen_owner_email
  Каждая функция содержит описание ФЛК правил и пример вывода.
  Файл содержит подробное руководство по добавлению новых генераторов.

tests/01_vetdept/fixtures/ — папка для статических артефактов роли:
  fixtures/images/  ← фото животных
  fixtures/docs/    ← PDF, сертификаты

tests/01_vetdept/conftest.py — добавлена фикстура fixtures_dir (Path),
  возвращает путь к папке артефактов для использования в тестах.

requirements.txt — добавлен faker (генерация русскоязычных данных)
2026-09-01 21:32:49 +03:00

64 lines
2.9 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.

# pyrefly: ignore [missing-import]
import pytest
from pathlib import Path
# ---------------------------------------------------------------------------
# Пути к статическим артефактам роли (фото, документы, файлы)
# ---------------------------------------------------------------------------
@pytest.fixture(scope="session")
def fixtures_dir() -> Path:
"""
Путь к папке со статическими артефактами роли vetdept.
Структура папки:
fixtures/
├── images/ ← фотографии животных, документы-сканы
└── docs/ ← PDF, сертификаты и прочие документы
Используй как базовый путь для других фикстур-артефактов:
def test_s02_upload(self, browser_page, fixtures_dir):
photo = fixtures_dir / "images" / "cat_photo.jpg"
browser_page.set_input_files("input[type=file]", str(photo))
"""
return Path(__file__).parent / "fixtures"
# ---------------------------------------------------------------------------
# Готовые фикстуры для конкретных артефактов
# Добавляй новые по мере появления новых файлов в папке fixtures/
# ---------------------------------------------------------------------------
# Пример: раскомментируй и адаптируй когда нужен конкретный файл
#
# @pytest.fixture(scope="session")
# def cat_photo(fixtures_dir) -> Path:
# """Фотография кошки для теста загрузки фото животного."""
# return fixtures_dir / "images" / "cat_photo.jpg"
# ---------------------------------------------------------------------------
# Контейнер для передачи данных между разными БП одной роли (scope=session)
# ---------------------------------------------------------------------------
@pytest.fixture(scope="session")
def shared_state() -> dict:
"""
Словарь для передачи данных между разными бизнес-процессами
в рамках одной тестовой сессии.
Используй когда результат одного БП нужен в другом.
Например: BP01 создал заявку → BP02 работает с ней.
Пример:
# В BP01:
def test_s03_create(self, browser_page, bp_state, shared_state):
bp_state["claim_id"] = "12345"
shared_state["claim_id"] = "12345" # передаём в BP02
# В BP02:
def test_s01_open(self, browser_page, shared_state):
claim_id = shared_state["claim_id"]
"""
return {}