pytest reports in fixtures
Підтверджує й актуалізує поняття уроку, пов’язані з pytest_runtest_makereport.
4. Повертаємо traces, pytest hooks, рефакторинг дублювань у fixtures → Першоджерело ↗Відеобібліотека
Пошук у нотатках курсу Python мануфактура та спільних матеріалах з переходом на потрібну секунду.
Підтверджує й актуалізує поняття уроку, пов’язані з pytest_runtest_makereport.
4. Повертаємо traces, pytest hooks, рефакторинг дублювань у fixtures → Першоджерело ↗pytest hook, який формує TestReport для фаз setup, call і teardown; custom fixture може використати report для рішення про artifact retention.
Зберігає reports фаз у typed pytest stash, щоб teardown fixture могла перевірити failure потрібної фази.
Після фази call item.stash[phase_reports_key]["call"] містить відповідний TestReport.
Fixture не знає результат тесту напряму, тому `conftest.py` підключає hook `pytest_runtest_makereport`. Hook отримує звіт для кожної фази та записує його в атрибут node, наприклад `rep_setup`, `rep_call`, `rep_teardown`. Для assertion failure самого тесту перевіряється `request.node.rep_call.failed`. `setup` охоплює код до `yield`, `call` — тіло тесту, `teardown` — код після `yield`. Якщо потрібно зберігати trace також при fixture setup failure, це окреме розширення контракту; демонстрація фокусується на `call`.