Добавлена инфраструктура для тестовых данных:
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 (генерация русскоязычных данных)
Добавлен хук pytest_runtest_makereport в tests/conftest.py.
Заменяет технический nodeid (путь к файлу::класс::метод[chromium])
на первую строку docstring тестового метода.
Результат в отчёте:
До: tests/01_vetdept/BP01_navigation/test_bp01_navigation.py::TestBP01Navigation::test_s01_open_dashboard[chromium]
После: Шаг 1: Открыть главную страницу (Dashboard)
Правило: что написано в docstring метода — то отображается в отчёте.
Реструктурированы тесты под иерархию Проект > Личный кабинет > БП > Шаги.
Архитектура:
- Бизнес-процесс = Python-класс, шаг = метод класса
- Шаги именуются test_s01_*, test_s02_* и т.д.
- БП именуются BP01_, BP02_ и т.д., каждый в своей папке
Передача данных:
- browser_page (scope=class) — один браузер на весь БП, авторизация 1 раз
- bp_state (scope=class) — словарь для передачи данных между шагами одного БП
- shared_state (scope=session) — словарь для передачи между разными БП
Зависимости шагов (pytest-dependency):
- Если шаг N упал, шаги N+1... получают статус SKIPPED автоматически
- Имена зависимостей: BP01::s01, BP01::s02 и т.д.
Изменения файлов:
- tests/conftest.py: добавлены browser_page и bp_state, вынесены
вспомогательные функции _get_role и _login, сохранена role_page
(deprecated) для обратной совместимости
- tests/01_vetdept/conftest.py: новый, содержит shared_state
- tests/01_vetdept/BP01_navigation/: новая папка с тестом навигации
- tests/01_vetdept/001_login_test.py: удалён (переписан в BP01)
- requirements.txt: добавлен pytest-dependency
- pytest.ini: добавлен маркер dependency
- Remove hardcoded logins/passwords from conftest.py
- Load credentials via python-dotenv from .env (excluded from git)
- Add BASE_URL env variable for easy environment switching
- Add .env.example template for new contributors
- Add validation: clear error message if .env is not filled
- Add python-dotenv to requirements.txt