У меня есть функция, которая делает вызов покоя с запросами lib
Она должна возвращать "о-нет" вызывающей стороне, если она не может подключиться по любой причине
Я использую ответы для модульные тесты, которые позволят мне проверить это без фактического исходящего вызова
Я могу проверить это следующим образом:
# the function
def my_request(url):
try:
return requests.request(url=url)
except requests.exceptions.ConnectionError:
return "oh-no"
except Exception:
raise
# my test without responses
def test_request():
bad_url = "https://lskjdklfjslkfjslkdf.eee.com"
response = myapp.my_request(bad_url)
assert response == 'oh-no'
Но мне интересно, может ли библиотека ответов сделать это лучше? Ответы
# test with responses
@responses.activate
def test_request():
bad_url = "https://lskjdklfjslkfjslkdf.eee.com"
responses.add(
"post",
bad_url,
json={"error": "not found"},
status=500,
)
response = myapp.my_request(bad_url)
assert response == 'oh-no'
не приведут к исключению - я думаю, это является его целью. Прежде чем я просто использую запросы с неверным URL-адресом для генерации исключения в моем модульном тесте (что выглядит не так уж плохо), я хочу знать, может ли библиотека ответов вызвать исключение, не совершая исходящий вызов? И если даже пытаться делать это бессмысленно (если я должен просто использовать запросы, как в первом примере, и покончить с этим).