Я пытаюсь протестировать код, который зависит от третьей стороны, и хотел бы использовать monkeypatch для репликации того, что я ожидаю, что запрос вернется. Вот минимальный пример кода, который у меня есть.
import requests
def get_urls(*urls):
results = []
for url in urls:
results.append(requests.get(url).text)
Для моих тестов у меня есть что-то вроде следующего:
from my_package import get_urls
def test_get_urls():
urls = ("https://example.com/a", "https://example.com/b", "https://example.com/c")
assert len(get_urls(urls)) == 3
Как я могу monkeypatch каждый из вызовов к requests.get
с использованием monkeypatch.setattr
? Макетный пакет, похоже, способен сделать это, используя побочные эффекты . Как мне сделать это с pytest?