在编写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:
* 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
这是我的测试:
^{pr2}$我收到的错误是:
AssertionError: Expected call: get_oauth_token('123456')
Not called
我不知道怎么了。任何帮助将不胜感激!谢谢!在
您在视图模块中导入了
sumall_redis
作为本地名称,但是模仿了原来的sumall.utils.sumall_redis
。在您可能在视图模块的顶部显示了以下内容:
这会将该对象绑定到模块中的本地名称。当测试开始并应用补丁时,
sumall.utils
模块中的原始sumall_redis
对象将受到影响,而不是这个本地名称。在您需要模拟视图模块中绑定的名称:
^{pr2}$这同样适用于你方另外两种进口产品。在
mock
文档包含一个关于where to patch的指南,您可能需要阅读。在相关问题 更多 >
编程相关推荐