#!/usr/bin/env python

from __future__ import absolute_import
from __future__ import print_function

import os
import sys

our_dir = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, os.path.normpath(os.path.join(our_dir)))
# For dev setups, we can find the API in the repo itself.
if os.path.exists(os.path.join(our_dir, '..')):
    sys.path.insert(0, '..')
from bots_test_lib import BotTestCase

class TestFollowUpBot(BotTestCase):
    bot_name = "followup"

    def test_bot(self):
        expected_send_reply = {
            "": 'Please specify the message you want to send to followup stream after @mention-bot'
        }
        self.check_expected_responses(expected_send_reply, expected_method='send_reply')

        expected_send_message = {
            "foo": {
                'type': 'stream',
                'to': 'followup',
                'subject': 'foo_sender@zulip.com',
                'content': 'from foo_sender@zulip.com: foo',
            },
            "I have completed my task": {
                'type': 'stream',
                'to': 'followup',
                'subject': 'foo_sender@zulip.com',
                'content': 'from foo_sender@zulip.com: I have completed my task',
            },
        }
        self.check_expected_responses(expected_send_message, expected_method='send_message')

Add tests for followup bot.
bots: Add tests for followup bot.

'followup' bot has different message handling behavior for
different messages.
For usual messages it calls 'send_message' function of
'BotHandlerApi' class.
For empty messages it calls 'send_reply' function of
'BotHandlerApi' class.
