小编典典

如何模拟请求和响应?

python

我正在尝试使用Pythons模拟包来模拟Pythonsrequests模块。使我在以下情况下工作的基本要求是什么?

在我的views.py中,我有一个函数,每次发出各种具有不同响应的request.get()调用

def myview(request):
  res1 = requests.get('aurl')
  res2 = request.get('burl')
  res3 = request.get('curl')

在我的测试类中,我想做这样的事情,但无法找出确切的方法调用

第1步:

# Mock the requests module
# when mockedRequests.get('aurl') is called then return 'a response'
# when mockedRequests.get('burl') is called then return 'b response'
# when mockedRequests.get('curl') is called then return 'c response'

第2步:

叫我观点

第三步:

验证响应包含“ a响应”,“ b响应”,“ c响应”

如何完成第1步(模拟请求模块)?


阅读 53

收藏
2020-12-20

共1个答案

小编典典

这是对我有用的东西:

import mock
@mock.patch('requests.get', mock.Mock(side_effect = lambda k:{'aurl': 'a response', 'burl' : 'b response'}.get(k, 'unhandled request %s'%k)))
2020-12-20