如何在Django中测试从外部端点请求数据的功能

问题描述 投票:0回答:1

我正在尝试在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

无:响应可以是成功,失败,可以超时。我想测试这种情况

python django django-rest-framework
1个回答
0
投票

您可以模拟调用外部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())
© www.soinside.com 2019 - 2024. All rights reserved.