Commit graph

1739 commits

Author SHA1 Message Date
Steve Howell fe3b995590 Fix KeyboardInterrupt handler in terminal.py.
The exception name was wrong before.
2017-12-11 11:07:28 -06:00
Marco Burstein 3c66894aff incrementor: Clean up type annotation/conversion.
This adds mypy annotations, and we also make the type
conversions in `handle_message` be a little more clear.

(@showell helped clean up this commit a bit)
2017-12-11 10:59:40 -06:00
Steve Howell b4ff5230a9 mypy: Fix StateHandler annotations.
`get` and `put` deal with arbitrary JSON-serializable types,
so `Text` was an innacurate annotation.
2017-12-11 10:35:03 -06:00
Steve Howell 7bc79a8911 Extract StubBotTestCase.make_request_message().
This de-duplicates some code and also makes it a bit
easier in the future to override how we create messages.
2017-12-11 09:39:48 -06:00
Steve Howell 5686d603ef minor: Clean up test_lib imports. 2017-12-11 09:34:11 -06:00
Steve Howell 971b48cbfc Decouple mock_request_exception from StubBotTestCase.
Tests that need mock_request_exception can just import it
directly now.
2017-12-11 09:26:36 -06:00
Steve Howell 1dbb73a1c8 Extract test_file_utils.py.
This isolates all the code that depends on our current
directory structure, and it de-clutters test_lib.py a bit.
2017-12-11 09:23:24 -06:00
Steve Howell 5034220829 bots: Extract request_test_lib.py.
The new module mocks out calls to the requests library, which
is used by many of our bots that use third party services.

Mocking of requests.py is mostly orthogonal to our other
testing concerns.
2017-12-11 09:05:06 -06:00
Steve Howell fb8ee29bc1 zulip_bots/test_lib.py: Remove unneeded imports/shebang. 2017-12-11 08:26:50 -06:00
Steve Howell b4705c2343 bot tests: Remove BotTestCase.
All of the functionality of BotTestCase was either directly
moved to StubBotTestCase or replaced by similar functions,
and all bots have been ported to StubBotTestCase.
2017-12-11 08:26:50 -06:00
sColin16 6109bd198a interactive bots: Improve wikipedia bot. 2017-12-11 08:05:09 -06:00
sColin16 1221c7107f test_lib.py: Add mock_request_exception. 2017-12-11 08:05:09 -06:00
Steve Howell 0a05a28e34 test_virtual_fs.py: Use StubBotTestCase.
We use verify_dialog() now, and we also have a different
default email.
2017-12-11 08:00:02 -06:00
Steve Howell a7f6c0f142 Add display_recipient to StubBotTestCase.verify_dialog. 2017-12-11 07:57:36 -06:00
Marco Burstein 3c794b384b mypy: Add annotations for Yoda Bot. 2017-12-11 07:33:16 -06:00
Marco Burstein 8f64405bae mypy: Add annotations for Wikipedia Bot. 2017-12-11 07:26:43 -06:00
Marco Burstein 0467f83314 mypy: Add annotations for xkcd Bot. 2017-12-11 07:26:43 -06:00
neiljp (Neil Pilgrim) e01ecc9fde test_virtual_fs.py: Remove unneeded imports and shebang. 2017-12-11 07:16:54 -06:00
neiljp (Neil Pilgrim) 060211a131 bots: Simplify test_yoda.py. 2017-12-10 18:16:40 -08:00
neiljp (Neil Pilgrim) 20cb236fdd bots: Simplify test_weather.py. 2017-12-10 18:16:27 -08:00
neiljp (Neil Pilgrim) 84d92337be bots: Simplify test_googletranslate.py.
Also add sender_full_name parameter in StubBotTestCase.verify_reply().
2017-12-10 16:26:03 -08:00
neiljp (Neil Pilgrim) c8824cb2e5 bots: Simplify test_link_shortener.py. 2017-12-10 14:04:00 -08:00
Steve Howell f8cefc5352 minor: Fix imports in test_xkcd.py.
We no longer need the `future` imports and we can
use `StubBotTestCase` now.
2017-12-10 09:25:12 -06:00
Marco Burstein 700ce6a673 bots: Create Chess Bot.
Chess Bot is a bot that allows you to play chess against either another
user or the computer. Use `start with other user` or
`start as <color> with computer` to start a game.

In order to play against a computer, `chess.conf` must be set with the
key `stockfish_location` set to the location of the Stockfish program on
this computer.

Use `bot_handler.storage` to preserve game state across messages.

(@showell also did minor work here to have the test use verify_dialog()
and have the bot respond to empty messages)
2017-12-10 09:14:32 -06:00
Steve Howell 2fa677a3e0 bot tests: Extract StubBotTestCase._get_handlers().
This is mostly a pure refactoring, but it also ensures
that `initialize` is called in a consistent way by most
of our test helpers.  (This didn't cause problems before,
since some bots don't require initialization.)
2017-12-10 06:35:51 -08:00
Steve Howell 01f8366bea Improve test_bot_responds_to_empty_message().
This fixes the TODO of inlining get_response(), and it
makes a slightly tighter assertion about the response.
2017-12-10 06:20:19 -08:00
Nikhil Mishra 81b207795f followup bot: Fix help response and configure streams.
From @showell:

We had a PR here with lots going on, and the commits weren't
very well organized, and then there were some tricky merge
conflicts from another PR.  So I just squashed them all into
one commit.

What this does:
    * allow you to configure your followup stream
    * provide help in followup stream
    * add more testing to followup stream
    * add get_response() helper for tests

Fixes #173
Fixes #174
2017-12-10 05:23:35 -08:00
Kai Chen 1cdb0bffe6 mypy: Add annotations for encrypt. 2017-12-10 04:59:27 -08:00
Kai Chen b382eacd18 mypy: Add annotations for define. 2017-12-10 04:59:27 -08:00
Kai Chen d33e9b9d92 mypy: Add annotations for converter. 2017-12-10 04:59:27 -08:00
neiljp (Neil Pilgrim) 31853cfa80 Add test_bot_responds_to_empty_message to StubBotTestCase. 2017-12-09 15:06:41 -08:00
Sivagiri Visakan 381401b11b bots: Add mypy to youtube bot 2017-12-09 03:56:33 -08:00
Sivagiri Visakan 6f9d010ed3 bots: Refactor Youtube bot. 2017-12-09 03:56:33 -08:00
Ivche1337 f947ff44f8 wikipedia bot: Return up to three links from wikipedia for keyword.
This change includes updates to the docs and tests as well.
2017-12-08 16:40:16 -08:00
Ivche1337 2597de87ef wikipedia bot: Fix page-not-found error. 2017-12-08 16:40:16 -08:00
fredfishgames ab9128d939 mypy: Add annotations for weather. 2017-12-08 14:55:35 -08:00
fredfishgames f7f54d159f mypy: Add annotations for virtual_fs. 2017-12-08 14:55:35 -08:00
fredfishgames a7f9c6e743 Fixed giphy warning message in bot tests 2017-12-08 14:52:44 -08:00
fredfishgames a026c48278 Added more googlesearch tests 2017-12-08 14:52:44 -08:00
fredfishgames 841efcde80 Added too many argument test for googletranslate bot. 2017-12-08 14:52:44 -08:00
neiljp (Neil Pilgrim) d4284f88f9 XKCD: Adjust tests to use loops, inline responses, remove comments. 2017-12-08 11:21:02 -08:00
neiljp (Neil Pilgrim) d97401df86 XKCD: Migrate tests to use verify_reply. 2017-12-08 11:21:02 -08:00
neiljp (Neil Pilgrim) 6c7a03e37a XKCD: Split single test into multiple tests. 2017-12-08 11:21:02 -08:00
fredfishgames 5673b49826 Added self: Any linter test 2017-12-08 10:48:42 -08:00
fredfishgames 9492495f4b Removed self: Any from googlesearch 2017-12-08 10:48:42 -08:00
Steve Howell 8c73adb6b6 Make tools/review executable. 2017-12-08 10:47:36 -08:00
Steve Howell cb849611c8 bot tests: Add sender_full_name to verify_dialog. 2017-12-08 08:51:57 -08:00
fredfishgames 4c4a60d90f Remove self: Any mypy annotations 2017-12-08 08:46:21 -08:00
Steve Howell 5f70e17259 bots: Simplify test_github_details.py. 2017-12-07 20:15:33 -08:00
Steve Howell f421e90a64 bots: Simplify test_encrpyt.py. 2017-12-07 20:15:33 -08:00