1
필자는 파이썬 작성과 관련하여 완전히 새로운 기능을 제공합니다. 내가 잘못이 무엇인지 확실하지 않다Python : Flask로 모의 패치 오류가 발생했습니다.
AssertionError: Expected call: get_oauth_token('123456')
Not called
:
@mock.patch('sumall.utils.sumall_api')
@mock.patch('sumall.utils.sumall_audience')
@mock.patch('sumall.utils.sumall_redis')
def test_mailing_finish(self, sumall_redis_mock, sumall_audience_mock, sumall_api_mock):
sumall_redis_mock.get_oauth_token.return_value = self.access_token
sumall_audience_mock.get_response_data.return_value = {'recipient_count': 2}
event = {
'timeStamp': self.data['timestamp'][3:],
'eventId': 'mailing_id:{mailing_id}'.format(mailing_id=self.data['mailing_id'],),
'data': {
'EMAIL_SENDS': {
'value': sumall_audience_mock.get_response_data.get('recipient_count'),
'dimensions': [
{
'dimension': 'MAILINGS',
'value': self.data['mailing_id'],
},
],
},
},
}
res = self.client.post(
'/webhooks/mailing_finish/{account_id}/{sumall_stream_id}'.format(
account_id=self.account_id,
sumall_stream_id=self.sumall_stream_id
),
data=json.dumps({'data': self.data}),
content_type='application/json',
)
sumall_redis_mock.get_oauth_token.assert_called_with(self.account_id)
sumall_audience_mock.get_response_data.assert_called_with(
access_token=self.access_token,
account_id=self.account_id,
mailing_id=self.data['mailing_id']
)
sumall_api_mock.post_stream_event.assert_called_with(
stream_id=self.sumall_stream_id,
event=event,
)
내가 수신하고 오류는 다음과 같습니다
@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
내 테스트입니다 : 여기
내 플라스크 엔드 포인트입니다 . 어떤 도움이라도 대단히 감사하겠습니다! 감사!
도움을 많이 주셔서 감사합니다. – dennismonsewicz