Python:使用Flask模拟修补程序错误
在编写Python方面,我是一个完全的新手,更不用说测试了 以下是我的建议:Python:使用Flask模拟修补程序错误,python,python-2.7,flask,mocking,python-mock,Python,Python 2.7,Flask,Mocking,Python Mock,在编写Python方面,我是一个完全的新手,更不用说测试了 以下是我的建议: @blueprint.route('/mailing_finish/<account_id>/<sumall_stream_id>/', methods=['POST']) def mailing_finish(account_id, sumall_stream_id): """ Get Response for mailing_id and update Dataset:
@blueprint.route('/mailing_finish/<account_id>/<sumall_stream_id>/', methods=['POST'])
def mailing_finish(account_id, sumall_stream_id):
"""
Get Response for mailing_id and update Dataset:
* MYEMMA_EMAIL_SENDS: response['sent']
"""
# TODO: webhook does not fire
data = json.loads(request.data)['data']
access_token = sumall_redis.get_oauth_token(account_id)
response_data = sumall_audience.get_response_data(
access_token=access_token,
account_id=account_id,
mailing_id=data['mailing_id'],
)
event = {
'timeStamp': data['timestamp'][3:],
'eventId': 'mailing_id:{mailing_id}'.format(
mailing_id=data['mailing_id'],
),
'data': {
'MYEMMA_EMAIL_SENDS': {
'value': response_data['recipient_count'],
'dimensions': [
{
'dimension': 'MAILINGS',
'value': data['mailing_id'],
},
],
},
},
}
status = sumall_api.post_stream_event(
stream_id=sumall_stream_id,
event=event,
)
return 'Data sent to SumAll', status
我收到的错误是:
AssertionError: Expected call: get_oauth_token('123456')
Not called
我不确定出了什么问题。任何帮助都将不胜感激!谢谢 您在视图模块中将sumall\u redis作为本地名称导入,但模拟原始的sumall.utils.sumall\u redis
您的视图模块顶部可能有以下内容:
from sumall.utils import sumall_redis
这会将该对象绑定到模块中的本地名称。当测试开始并应用修补程序时,只有sumall.utils模块中的原始sumall_redis对象将受到影响,而不是此本地名称
您需要模拟视图模块中绑定的名称:
@mock.patch('view_module.sumall_redis')
这也适用于您的其他2个导入
模拟文档包括您可能想要阅读的指南。您在视图模块中将sumall\u redis作为本地名称导入,但模拟原始的sumall.utils.sumall\u redis
您的视图模块顶部可能有以下内容:
from sumall.utils import sumall_redis
这会将该对象绑定到模块中的本地名称。当测试开始并应用修补程序时,只有sumall.utils模块中的原始sumall_redis对象将受到影响,而不是此本地名称
您需要模拟视图模块中绑定的名称:
@mock.patch('view_module.sumall_redis')
这也适用于您的其他2个导入
模拟文档包括一个您可能想阅读的指南。非常感谢您的帮助!非常感谢你的帮助!