我正在尝试在django api上测试对外部api执行外部请求的功能。怎么能我测试以下情况:成功,失败和超时等异常
以下是简化的功能
def get_quote(*args):
# log request
try:
response = requests.post(url, json=data)
# parse this response
except:
# log file :)
finally:
# log_response(...)
return parsed_response or None
无:响应可以是成功,失败,可以超时。我想测试这种情况
您可以模拟调用外部API的结果并在测试函数中设置期望的返回值:
from unittest.mock import patch
from django.test import TestCase
class ExternalAPITests(TestCase):
@patch("requests.post")
def test_get_quote(self, mock):
mock.return_value = "predetermined external result"
self.assertEquals("expected return value", get_quote())