我有一个使用请求库进行休息调用的函数
如果由于任何原因无法连接,它应该向调用者返回“oh-no”
我正在使用单元测试的响应,这应该允许我在不实际进行出站呼叫的情况下进行测试
我可以这样测试:
# 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 的请求在我的单元测试中生成异常之前(这似乎还不错),我想知道响应库是否可以在不进行出站调用的情况下引发异常。而且,如果尝试这样做是没有意义的(如果我应该像第一个示例那样使用请求并完成它)。