无法从 python 中的 Mock 请求响应中获取 JSON 数据

Cannot get JSON data in response from Mock requests in python

以下是我的单元测试代码,用于模拟对本地存储的 Google 云函数的 HTTP 请求,其中 returns json 响应

from unittest.mock import Mock
from cloud_functions import main
from Flask import jsonify

data = { ... }
headers = { ... }

req = Mock(get_json=Mock(return_value=data), args=data, headers=headers)
resp = main.my_function(req)

以下是我在尝试获取响应中的 json 数据时遇到的错误类型。

尝试 1

json_data = resp.json()
value = json_data['some_key']

错误

TypeError: 'dict' object is not callable

尝试 2

value = resp['some_key']

错误

TypeError: 'Response' object is not subscriptable

尝试 3

json_data = jsonify(resp)
value = json_data['some_key']

错误

TypeError: Object of type Response is not JSON serializable

使用这段代码解决了。

json_data = resp.json
value = json_data['some_key']

现在一切正常。