2017-05-21 23:14:56 -04:00
|
|
|
#!/usr/bin/env python
|
|
|
|
|
|
|
|
from __future__ import absolute_import
|
|
|
|
from __future__ import print_function
|
|
|
|
|
|
|
|
import os
|
|
|
|
import sys
|
|
|
|
import unittest
|
|
|
|
from unittest import TestCase
|
|
|
|
|
|
|
|
our_dir = os.path.dirname(os.path.abspath(__file__))
|
|
|
|
|
|
|
|
# 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 TestDefineBot(TestCase):
|
|
|
|
|
|
|
|
# Messages to be sent to bot for testing.
|
|
|
|
# Eventually more test messages can be added.
|
|
|
|
def request_messages(self):
|
|
|
|
# type: None -> List[Dict[str, str]]
|
|
|
|
messages = []
|
|
|
|
message1 = {'content': "foo", 'type': "private", 'sender_email': "foo"}
|
|
|
|
message2 = {'content': "cat", 'type': "stream", 'display_recipient': "foo", 'subject': "foo"}
|
|
|
|
messages.append(message1)
|
|
|
|
messages.append(message2)
|
|
|
|
return messages
|
|
|
|
|
|
|
|
# Reply messages from the test bot.
|
|
|
|
# Each reply message corresponding to each request message.
|
|
|
|
def bot_response_messages(self):
|
|
|
|
# type: None -> List[str]
|
|
|
|
messages = []
|
|
|
|
message1 = "**foo**:\nDefinition not available."
|
|
|
|
message2 = ("**cat**:\n\n* (**noun**) a small domesticated carnivorous mammal "
|
|
|
|
"with soft fur, a short snout, and retractile claws. It is widely "
|
|
|
|
"kept as a pet or for catching mice, and many breeds have been "
|
|
|
|
"developed.\n their pet cat\n\n")
|
|
|
|
messages.append(message1)
|
|
|
|
messages.append(message2)
|
|
|
|
return messages
|
|
|
|
|
|
|
|
def test_define(self):
|
|
|
|
# type: None -> None
|
|
|
|
# Edit bot_module to test different bots, the below code can be looped for all the bots.
|
2017-05-24 20:04:26 -04:00
|
|
|
bot_module = os.path.join(our_dir, "define.py")
|
2017-05-21 23:14:56 -04:00
|
|
|
messages = self.request_messages()
|
|
|
|
bot_response = self.bot_response_messages()
|
|
|
|
test_case = BotTestCase()
|
|
|
|
test_case.bot_test(messages=messages, bot_module=bot_module, bot_response=bot_response)
|