zulip_bots: Store testing conversations in lists.

This enforces the use of a list of tuples for
conversations, as opposed to dicts.
This commit is contained in:
derAnfaenger 2017-10-24 11:14:09 +02:00
parent 8179b30873
commit 8761e47893
6 changed files with 32 additions and 39 deletions

View file

@ -9,14 +9,14 @@ class TestConverterBot(BotTestCase):
bot_name = "converter"
def test_bot(self):
expected = {
"": ('Too few arguments given. Enter `@convert help` '
expected = [
("", 'Too few arguments given. Enter `@convert help` '
'for help on using the converter.\n'),
"foo bar": ('Too few arguments given. Enter `@convert help` '
("foo bar", 'Too few arguments given. Enter `@convert help` '
'for help on using the converter.\n'),
"2 m cm": "2.0 m = 200.0 cm\n",
"12.0 celsius fahrenheit": "12.0 celsius = 53.600054 fahrenheit\n",
"0.002 kilometer millimile": "0.002 kilometer = 1.2427424 millimile\n",
"3 megabyte kilobit": "3.0 megabyte = 24576.0 kilobit\n",
}
("2 m cm", "2.0 m = 200.0 cm\n"),
("12.0 celsius fahrenheit", "12.0 celsius = 53.600054 fahrenheit\n"),
("0.002 kilometer millimile", "0.002 kilometer = 1.2427424 millimile\n"),
("3 megabyte kilobit", "3.0 megabyte = 24576.0 kilobit\n"),
]
self.check_expected_responses(expected)

View file

@ -9,11 +9,11 @@ class TestEncryptBot(BotTestCase):
bot_name = "encrypt"
def test_bot(self):
expected = {
"": "Encrypted/Decrypted text: ",
"Let\'s Do It": "Encrypted/Decrypted text: Yrg\'f Qb Vg",
"me&mom together..!!": "Encrypted/Decrypted text: zr&zbz gbtrgure..!!",
"foo bar": "Encrypted/Decrypted text: sbb one",
"Please encrypt this": "Encrypted/Decrypted text: Cyrnfr rapelcg guvf",
}
expected = [
("", "Encrypted/Decrypted text: "),
("Let\'s Do It", "Encrypted/Decrypted text: Yrg\'f Qb Vg"),
("me&mom together..!!", "Encrypted/Decrypted text: zr&zbz gbtrgure..!!"),
("foo bar", "Encrypted/Decrypted text: sbb one"),
("Please encrypt this", "Encrypted/Decrypted text: Cyrnfr rapelcg guvf"),
]
self.check_expected_responses(expected)

View file

@ -9,23 +9,21 @@ 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'
}
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',
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',
'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',
},
}
'content': 'from foo_sender@zulip.com: I have completed my task'}),
]
self.check_expected_responses(expected_send_message, expected_method='send_message')

View file

@ -13,4 +13,4 @@ class TestHelloWorldBot(BotTestCase):
def test_bot(self):
txt = "beep boop"
messages = ["", "foo", "Hi, my name is abc"]
self.check_expected_responses(dict(list(zip(messages, len(messages)*[txt]))))
self.check_expected_responses(list(zip(messages, len(messages)*[txt])))

View file

@ -13,4 +13,4 @@ class TestHelpBot(BotTestCase):
def test_bot(self):
txt = "Info on Zulip can be found here:\nhttps://github.com/zulip/zulip"
messages = ["", "help", "Hi, my name is abc"]
self.check_expected_responses(dict(list(zip(messages, len(messages)*[txt]))))
self.check_expected_responses(list(zip(messages, len(messages)*[txt])))

View file

@ -61,11 +61,6 @@ class BotTestCase(TestCase):
# type: (Union[Sequence[Tuple[str, Any]], Dict[str, Any]], str, str, str, str, int, str, str) -> None
# To test send_message, Any would be a Dict type,
# to test send_reply, Any would be a str type.
if isinstance(expectations, dict):
expected = [(k, v) for k, v in expectations.items()]
else:
expected = expectations
if type not in ["private", "stream", "all"]:
logging.exception("check_expected_response expects type to be 'private', 'stream' or 'all'")