无法从 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']
现在一切正常。
以下是我的单元测试代码,用于模拟对本地存储的 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']
现在一切正常。