Как тестировать HTTP-запросы к внешним сервисам в Python-приложениях: requests-mock, pytest-httpx и FastAPI

Не всегда стоит патчить ответ от внешнего HTTP-сервиса через mocker.patch . В таких тестах приложение возвращает ожидаемый ответ, но важная часть логики остаётся непроверенной: какой URL собрал клиент, каким методом ушёл запрос, какое тело было отправлено и как обработался ответ внешнего сервиса. В статье показываю другой подход: мокать не метод клиента, а сам внешний HTTP-сервис. Для клиентов на requests используем requests-mock , для клиентов на httpx — pytest-httpx . Так тесты остаются быстрыми и без реальной сети, но при этом проходят через настоящий код клиента и позволяют проверять состояние фейкового внешнего сервиса, тем самым улучшая качество тестов.

https://habr.com/ru/articles/1044280/

#python #mock #pytest #testing #fastapi #django

Как тестировать HTTP-запросы к внешним сервисам в Python-приложениях: requests-mock, pytest-httpx и FastAPI

Введение Я уже несколько лет работаю с backend-приложениями на Python, и очень часто эти сервисы работают не только с обычной базой данных. Практически всегда приложениям нужно отправлять...

Хабр
J'ai souvenir d'un temps où le nombre de lignes de codes étaient un indicateur de succès.
Je suis donc, de ce temps, l'incarnat de l'échec et avec satisfaction.
J'en suis à plusieurs milliers de lignes en moins sur le dépôt principal avec des factorisations simples et claires, de la "parametrization" #pytest ou des ancres/extends dans le #Gitlab_ci
Et bonus, une maintenance réduite et de la souplesse 

Настраиваем CI/CD в GitHub для Python-проекта с нуля

Настройка CI/CD часто кажется новичкам чем-то сложным и доступным только DevOps-инженерам. На самом деле автоматизировать рутину Python-проекта можно всего за полчаса. В этой статье мы по шагам разберем, как с нуля настроить GitHub Actions для простого FastAPI-приложения: от автоматического запуска тестов и быстрого линтера Ruff до сборки Docker-образа и публикации его в Docker Hub.

https://habr.com/ru/articles/1037002/

#python #github_actions #docker #pytest #автоматизация #fastapi #туториал

Настраиваем CI/CD в GitHub для Python-проекта с нуля

1. Введение CI/CD — это автоматизация процессов, которые разработчики обычно делают руками после написания кода. Если без лишней теории, то: CI (Continuous Integration / Непрерывная интеграция)...

Хабр

Как тестировать внешние API в Python: от DI-мока до настоящего HTTP-сервера

Почти каждый сервис, который мы сегодня пишем, ходит куда-то наружу — платёжный шлюз, биллинг, чужой публичный API. И каждый раз, когда садимся писать тесты на этот код, упираемся в один и тот же вопрос: как протестировать клиента, не привлекая внимания санитаров выходя в реальный мир? Эта статья про то, как выбирать инструмент под эту задачу. Не абстрактно — на одном маленьком, но гордом настоящем сервисе catfact-demo-service , в tests/ которого рядом лежат пять способов протестировать одну и ту же интеграцию. К концу мы их сравним и аргументированно выберем тот, который оставили бы в production-проекте.

https://habr.com/ru/articles/1034864/

#python #pytest #тестирование #aiohttp #mock #интеграционные_тесты #http #dishka #fastapi #asyncly

Как тестировать внешние API в Python: от DI-мока до настоящего HTTP-сервера

Почти каждый сервис, который мы сегодня пишем, ходит куда-то наружу — платёжный шлюз, биллинг, чужой публичный API. И каждый раз, когда садимся писать тесты на этот код, упираемся в один и тот же...

Хабр

Основы тестирования и правила, которые помогают надёжно тестировать сложные приложения: примеры на Python

За годы работы разработчиком я сталкивался с разными подходами к тестированию. В этой статье я хочу показать, какие практики кажутся мне неэффективными, и объяснить, как довольно просто писать надёжные тесты, которые дают и хорошее покрытие, и устойчивость. Статья может быть полезна не только Python-разработчикам, но и инженерам-программистам в целом.

https://habr.com/ru/articles/1035978/

#python #pytest #sql #testing #test_driven_development

Основы тестирования и правила, которые помогают надёжно тестировать сложные приложения: примеры на Python

Введение Я работаю backend Python-инженером уже несколько лет. За это время я многому научился: писать чистый код, применять алгоритмы в реальных задачах, работать как с...

Хабр
#today I am making a little progress on debugging my #buildingModel which includes learning how to do #pytest properly... #debugging #modelling

Uso #ExtremeProgramming da quando facevo #debugging all'università, oltre 20 anni fa.

Una cosa non cambia: scrivere codice è facile, definirne tutto il comportamento no.

🎤 A #PyConIT 2026 porterò un #workshop su #Python 🐍 e #TDD:
dalle variabili al primo test, per chiarire cosa il software debba fare prima di implementarlo.

https://2026.pycon.it/it/event/primi-passi-in-python-con-il-tdd-dalle-variabili-al-primo-test

#TalksAndWorkshops #python #pytest #BestPractices

[Перевод] postman2pytest: как превратить Postman-коллекцию в pytest-набор за одну команду

Вот есть Postman-коллекция из 40 запросов. Разложена по папкам, и с тестовыми скриптами, которые проверяют статус-коды. Вы потратили на неё время, она хороша. И ещё у вас есть CI-пайплайн, который про Postman никогда не слышал и слышать не собирается. Эти две вещи мирно сосуществовали месяцами, потому что никто не хочет быть тем человеком, который вручную переписывает 40 запросов в pytest-функции. Newman, конечно, есть, но Newman гоняет тесты, а не генерирует код, который можно прочитать, отредактировать и нормально положить в систему контроля версий. Получается, коллекция документирует API. CI тестирует API. Они описывают одну и ту же систему и при этом никогда не встречались. Я написал postman2pytest , чтобы их познакомить.

https://habr.com/ru/articles/1033658/

#postman #pytest #automation #apitesting #qa #конвертер

postman2pytest: как превратить Postman-коллекцию в pytest-набор за одну команду

Вот есть Postman-коллекция из 40 запросов. Разложена по папкам, и с тестовыми скриптами, которые проверяют статус-коды. Вы потратили на неё время, она хороша. И ещё у вас есть CI-пайплайн, который про...

Хабр
Known limitations — pytest-xdist documentation

Refactorizando y comprobando que todo sigue ok.
#python #coding #programming #pytest #github #NeoVault