diff --git a/contrib_bots/bots/thesaurus/test_thesaurus.py b/contrib_bots/bots/thesaurus/test_thesaurus.py new file mode 100644 index 0000000..ba41f41 --- /dev/null +++ b/contrib_bots/bots/thesaurus/test_thesaurus.py @@ -0,0 +1,47 @@ +#!/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__)) +# 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 TestThesaurusBot(BotTestCase): + bot_name = "thesaurus" + + def test_bot(self): + self.assert_bot_output( + {'content': "synonym good", 'type': "private", 'sender_email': "foo"}, + "great, satisfying, exceptional, positive, acceptable" + ) + self.assert_bot_output( + {'content': "synonym nice", 'type': "stream", 'display_recipient': "foo", 'subject': "foo"}, + "cordial, kind, good, okay, fair" + ) + self.assert_bot_output( + {'content': "synonym foo", 'type': "stream", 'display_recipient': "foo", 'subject': "foo"}, + "bar, thud, X, baz, corge" + ) + self.assert_bot_output( + {'content': "antonym dirty", 'type': "stream", 'display_recipient': "foo", 'subject': "foo"}, + "ordered, sterile, spotless, moral, clean" + ) + self.assert_bot_output( + {'content': "antonym bar", 'type': "stream", 'display_recipient': "foo", 'subject': "foo"}, + "loss, whole, advantage, aid, failure" + ) + self.assert_bot_output( + {'content': "", 'type': "stream", 'display_recipient': "foo", 'subject': "foo"}, + ("To use this bot, start messages with either " + "@mention-bot synonym (to get the synonyms of a given word) " + "or @mention-bot antonym (to get the antonyms of a given word). " + "Phrases are not accepted so only use single words " + "to search. For example you could search '@mention-bot synonym hello' " + "or '@mention-bot antonym goodbye'."), + )