Я пытаюсь написать модульный тест для этой простой функции.По сути, он получает полезную нагрузку от Slack, затем создает сообщение и затем отправляет это сообщение пользователю с помощью API.
@slack_messages.on_pattern('(?i)^help$')
def handle_help_message(event, body, match):
message = build_help_message()
Slack(event['team_id']).send_message(body['user'], **message)
def build_help_message():
text = "Hello"
return {
'text': text,
'attachments': [
build_basics(),
build_controls()
]
}
Я написал этот тест, но он выглядит слишком сложным для такой простой функции.Как мне упростить мой тест?
class TestMesssageHandlers(TestCase):
@mock.patch('slango.slack.Slack.send_message')
@mock.patch('slango.slack.Slack.__init__')
@mock.patch('apps.slackapp.help.handlers.build_help_message')
def test_handle_help_message(self, build_message_mock, init_mock,
send_message_mock):
init_mock.return_value = None
build_message_mock.return_value = {
'text': mock.sentinel.text,
'attachments': mock.sentinel.attachments
}
event = {
'team_id': 'TEAMID',
'event': {
'text': 'help',
'user': 'U111111'
}
}
handle_help_message(event, event['event'])
init_mock.assert_called_with(event['team_id'])
send_message_mock.assert_called_with(
event['event']['user'], **build_message_mock.return_value)