XKCD: Split single test into multiple tests.
This commit is contained in:
parent
5673b49826
commit
6c7a03e37a
|
@ -10,18 +10,7 @@ from zulip_bots.test_lib import BotTestCase
|
||||||
class TestXkcdBot(BotTestCase):
|
class TestXkcdBot(BotTestCase):
|
||||||
bot_name = "xkcd"
|
bot_name = "xkcd"
|
||||||
|
|
||||||
@mock.patch('logging.exception')
|
def test_latest_command(self):
|
||||||
def test_bot(self, mock_logging_exception):
|
|
||||||
help_txt = "xkcd bot supports these commands:"
|
|
||||||
err_txt = "xkcd bot only supports these commands, not `{}`:"
|
|
||||||
commands = '''
|
|
||||||
* `@xkcd help` to show this help message.
|
|
||||||
* `@xkcd latest` to fetch the latest comic strip from xkcd.
|
|
||||||
* `@xkcd random` to fetch a random comic strip from xkcd.
|
|
||||||
* `@xkcd <comic id>` to fetch a comic strip based on `<comic id>` e.g `@xkcd 1234`.'''
|
|
||||||
invalid_id_txt = "Sorry, there is likely no xkcd comic strip with id: #"
|
|
||||||
|
|
||||||
# 'latest' query
|
|
||||||
bot_response = ("#1866: **Russell's Teapot**\n"
|
bot_response = ("#1866: **Russell's Teapot**\n"
|
||||||
"[Unfortunately, NASA regulations state that Bertrand Russell-related "
|
"[Unfortunately, NASA regulations state that Bertrand Russell-related "
|
||||||
"payloads can only be launched within launch vehicles which do not launch "
|
"payloads can only be launched within launch vehicles which do not launch "
|
||||||
|
@ -33,7 +22,7 @@ class TestXkcdBot(BotTestCase):
|
||||||
expected_method='send_reply'
|
expected_method='send_reply'
|
||||||
)
|
)
|
||||||
|
|
||||||
# 'random' query
|
def test_random_command(self):
|
||||||
bot_response = ("#1800: **Chess Notation**\n"
|
bot_response = ("#1800: **Chess Notation**\n"
|
||||||
"[I've decided to score all my conversations using chess win-loss "
|
"[I've decided to score all my conversations using chess win-loss "
|
||||||
"notation. (??)](https://imgs.xkcd.com/comics/chess_notation.png)")
|
"notation. (??)](https://imgs.xkcd.com/comics/chess_notation.png)")
|
||||||
|
@ -50,7 +39,7 @@ class TestXkcdBot(BotTestCase):
|
||||||
expected_method='send_reply'
|
expected_method='send_reply'
|
||||||
)
|
)
|
||||||
|
|
||||||
# specific comic ID query
|
def test_numeric_comic_id_command(self):
|
||||||
bot_response = ("#1: **Barrel - Part 1**\n[Don't we all.]"
|
bot_response = ("#1: **Barrel - Part 1**\n[Don't we all.]"
|
||||||
"(https://imgs.xkcd.com/comics/barrel_cropped_(1).jpg)")
|
"(https://imgs.xkcd.com/comics/barrel_cropped_(1).jpg)")
|
||||||
with self.mock_http_conversation('test_specific_id'):
|
with self.mock_http_conversation('test_specific_id'):
|
||||||
|
@ -60,7 +49,10 @@ class TestXkcdBot(BotTestCase):
|
||||||
expected_method='send_reply'
|
expected_method='send_reply'
|
||||||
)
|
)
|
||||||
|
|
||||||
# Comic ID doesn't exist.
|
@mock.patch('logging.exception')
|
||||||
|
def test_invalid_comic_ids(self, mock_logging_exception):
|
||||||
|
invalid_id_txt = "Sorry, there is likely no xkcd comic strip with id: #"
|
||||||
|
|
||||||
bot_response = invalid_id_txt + "999999999"
|
bot_response = invalid_id_txt + "999999999"
|
||||||
with self.mock_http_conversation('test_not_existing_id'):
|
with self.mock_http_conversation('test_not_existing_id'):
|
||||||
self.assert_bot_response(
|
self.assert_bot_response(
|
||||||
|
@ -77,6 +69,14 @@ class TestXkcdBot(BotTestCase):
|
||||||
expected_method='send_reply'
|
expected_method='send_reply'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_help_responses(self):
|
||||||
|
help_txt = "xkcd bot supports these commands:"
|
||||||
|
err_txt = "xkcd bot only supports these commands, not `{}`:"
|
||||||
|
commands = '''
|
||||||
|
* `@xkcd help` to show this help message.
|
||||||
|
* `@xkcd latest` to fetch the latest comic strip from xkcd.
|
||||||
|
* `@xkcd random` to fetch a random comic strip from xkcd.
|
||||||
|
* `@xkcd <comic id>` to fetch a comic strip based on `<comic id>` e.g `@xkcd 1234`.'''
|
||||||
# Empty query, no request made to the Internet.
|
# Empty query, no request made to the Internet.
|
||||||
bot_response = err_txt.format('')+commands
|
bot_response = err_txt.format('')+commands
|
||||||
self.assert_bot_response(
|
self.assert_bot_response(
|
||||||
|
|
Loading…
Reference in a new issue