tests: Add contrib_bots/test-bots file.
This test uses unittest and mock library. It mocks 'BotHandlerApi' class. This test works independent of the rest of the code outside contrib_bots folder. Merged with a few changes by tabbott to fix lint issues; we'll need to do further work on this framework, but since it's not hooked up to anything, it's reasonable to merge early so others can collaborate on improving it.
This commit is contained in:
parent
b540c09768
commit
f83ddd658c
6 changed files with 124 additions and 0 deletions
0
contrib_bots/bots/define/__init__.py
Normal file
0
contrib_bots/bots/define/__init__.py
Normal file
52
contrib_bots/bots/define/test_define.py
Normal file
52
contrib_bots/bots/define/test_define.py
Normal file
|
@ -0,0 +1,52 @@
|
|||
#!/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.
|
||||
bot_module = "./bots/define/define.py"
|
||||
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)
|
Loading…
Add table
Add a link
Reference in a new issue