Первый запуск теста делает реальные HTTP-запросы и сохраняет ответы в так называемую cassette - по умолчанию YAML-файл. Следующие запуски уже не идут в сеть: VCR.py перехватывает знакомый запрос и возвращает сохранённый ответ.
Что это даёт:
- тесты становятся детерминированными
- их можно запускать офлайн
- они работают заметно быстрее
- внешнее API не нужно дёргать сотни раз в CI
- если API изменилось, cassette можно просто перезаписать
Особенно полезно для тестов интеграций с REST API, платёжными сервисами, LLM API и любыми внешними HTTP-сервисами.
Проект активно развивается: в актуальной ветке 8.x есть поддержка HTTPX, custom transports, безопасная загрузка YAML и свежая поддержка
niquests. MIT License.
https://github.com/kevin1024/vcrpy
