Spoof — это минималистичный и гибкий HTTP-сервер для Python, разработанный специально для изоляции и тестирования сетевого взаимодействия без боли.
Если вам когда-нибудь требовалось переписать клиентскую библиотеку, проверить её поведение в боевых условиях или полноценно замокать сторонний API на реальных сетевых сокетах (а не просто подменить методы в коде), Spoof станет идеальным решением.
http.server, не имеет внешних зависимостей и работает на Python 3.10–3.14..responses) или возвращает .defaultResponse. По умолчанию, если очередь пуста, он честно отдаст 503 Service Unavailable..requests. После тестов можно легко проверить, какие методы, заголовки, query-параметры или JSON-тела прилетали на сервер.CONNECT-запросов, а также умеет слушать исключительно IPv6-сокеты через класс spoof.http6.breakpoint(). При отправке запроса выполнение встанет на паузу, и вы сможете изучить объект request прямо в консоли через Pdb.import requests
import spoof
# Поднимаем сервер в контекстном менеджере
with spoof.http() as http:
# Задаем цепочку ответов
http.responses.extend([
[200, [("Content-Type", "application/json")], b'{"id": 1111}'],
[200, [("Content-Type", "application/json")], b'{"id": 2222}'],
])
http.defaultResponse = [404, [], "Not found"]
# Проверяем поведение клиента
assert requests.get(http.url + "/users").json() == {"id": 1111}
assert requests.get(http.url + "/posts").json() == {"id": 2222}
assert requests.get(http.url + "/unknown").status_code == 404
# Проверяем историю логов сервера
assert [r.path for r in http.requests] == ["/users", "/posts", "/unknown"]
pip install spoof
#Python #Testing #QA #Backend #Mock #HTTPServer #DevTools #OpenSource #WebDevelopment
https://github.com/lexsca/spoof
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - lexsca/spoof: A simple HTTP server for test environments
A simple HTTP server for test environments. Contribute to lexsca/spoof development by creating an account on GitHub.
1🔥4👍3⚡2