Commit graph

264 commits

Author SHA1 Message Date
Viraat Chandra d9fca54998 bots: Fix test failure for Baremetrics bot. 2018-01-24 11:19:44 +01:00
fredfishgames 3cbb16722d zulip_bots: Migrate tictactoe bot to new game_handler. 2018-01-22 11:30:31 -05:00
fredfishgames 3a438cafa9 zulip_bots: Migrate connect_four bot to new game_handler. 2018-01-22 11:30:31 -05:00
fredfishgames ec5be8fc7e zulip_bots: Consolidate game-playing bots. 2018-01-22 11:30:31 -05:00
Viraat Chandra 2f429fcb86 zulip_bots: Add test for create-plan command of Baremetrics bot. 2018-01-16 12:24:26 -05:00
Viraat Chandra 94f82dfe4c zulip_bots: Add feature create-plan to Baremetrics bot. 2018-01-16 12:24:26 -05:00
Viraat Chandra e32336eb6e Improve test coverage for Yoda bot. 2018-01-12 07:35:38 -05:00
Viraat Chandra fd97ffce77 Improve test coverage for Mention bot. 2018-01-12 07:35:38 -05:00
Viraat Chandra bffb8d0e16 Improve test coverage for Baremetrics bot. 2018-01-12 07:35:38 -05:00
rht da4b830571 bots: Init interrealm bridge bot. 2018-01-12 07:15:23 -05:00
Steve Howell 480c953b98 virtual_fs: Add test_sample_conversation(). 2018-01-10 16:54:05 -05:00
Steve Howell 5be72288db virtual_fs: Make sample_conversation() a list of tuples.
It's nice to see the requests and replies as separate strings
when you're reading the code.
2018-01-10 16:54:05 -05:00
Steve Howell f8d51fc9d1 virtual_fs: Remove help commands from the sample conversation. 2018-01-10 16:54:05 -05:00
Steve Howell 820e949faf virtual_fs: Remove fs_sample_conversation().
We already have "help" for specific commands, so the
fs_sample_conversation() feature was mostly redundant.
2018-01-10 16:54:05 -05:00
Steve Howell 4b9e3d655f virtuals_fs: Add test for sample_conversation. 2018-01-10 16:54:05 -05:00
Steve Howell 88f6ddefb2 virtual_fs: Fix bug with "rmdir" command.
In python3, if you removed a directory that files within it,
you would get an error saying "dictionary changed size
during iteration."

The fix is to list-ify the keys before iterating over them (and
popping keys from the dictionary).
2018-01-09 09:21:30 -05:00
Xavier Cooney 1de704394a interactive bots: Create idonethis bot. 2018-01-08 10:46:52 +01:00
Robert Hönig a4facb4249 Rename followup.config to followup.conf. 2018-01-06 16:58:50 -03:30
Robert Hönig 78d7f9694e zulip_bots: Move six imports. 2018-01-06 16:39:52 +01:00
Robert Hönig b46a079804 zulip_bots: Move from mock to unittest.mock in most files. 2018-01-06 16:39:52 +01:00
Robert Hönig ae76aa8f72 bots: Add requirements not captured by pipreqs. 2018-01-06 16:39:52 +01:00
Robert Hönig fd51735bfc Add requirements.txt for each bot. 2018-01-06 16:39:52 +01:00
Robert Hönig f4ee3d4009 Fix mypy errors. 2018-01-04 17:19:02 +01:00
Robert Hönig eb02e08fb7 yoda bot: Just import the requests module.
This removes the unconventional check for the
existence of the requests module in the yoda
bot to bring it in line with other bots.
2018-01-04 10:34:16 -05:00
Robert Hönig f6f09202ac baremetrics bot: Quit on invalid API key. 2018-01-04 10:34:16 -05:00
Robert Hönig c86e62a06a link_shortener bot: Quit on invalid API key. 2018-01-04 10:34:16 -05:00
Robert Hönig bed2c6c9ea mention bot: Quit on invalid API key. 2018-01-04 10:34:16 -05:00
Robert Hönig 57342072dc salesforce bot: Quit on invalid API key. 2018-01-04 10:34:16 -05:00
Robert Hönig 8417dbf154 weather bot: Quit bot on invalid API key. 2018-01-04 10:34:16 -05:00
Robert Hönig 28120784ff google_translate bot: Add test for invalid api key. 2018-01-04 10:34:16 -05:00
Robert Hönig d11d31d795 google_translate bot: Simplify API key check. 2018-01-04 10:34:16 -05:00
Robert Hönig b19c0f6e29 giphy bot: Update 403 fixture. 2018-01-04 10:34:16 -05:00
Robert Hönig 5d4a352e2c giphy bot: Fix check for invalid API key.
The previous check didn't notice invalid API keys.
This commit also makes giphy quit on any connectivity
issues during initialization.
2018-01-04 10:34:16 -05:00
Robert Hönig ba530e2341 giphy bot: Use bot_handler.quit(). 2018-01-04 10:34:16 -05:00
YJDave 299d04080e doc: Remove markdown includes {!running-bot.md!} from bot docs. 2018-01-03 09:05:54 -05:00
Privisus 08bd395658 interactive bots: Create monkeytest.it bot. 2018-01-02 17:14:13 -03:30
neiljp (Neil Pilgrim) 6489f78edd mypy: Improve test_dialogflow.py, to pass with strict-optional. 2018-01-02 14:05:33 -05:00
neiljp (Neil Pilgrim) 1928841256 mypy: Amend chess bot, to pass with strict-optional. 2018-01-02 14:05:33 -05:00
neiljp (Neil Pilgrim) 6cd09e7396 mypy: Amend youtube bot, to pass with strict-optional.
Including switch to Optional from Union[None, T] for consistency.
2018-01-02 14:05:33 -05:00
neiljp (Neil Pilgrim) b4bbd83335 mypy: Amend witai bot, to pass with strict-optional.
Including additional error-handling, associated with None-checks.
2018-01-02 14:05:33 -05:00
fredfishgames 08bfe9d8c7 interactive bots: Create Salesforce bot. 2018-01-02 14:00:41 -05:00
Viraat Chandra d4500a3b7a zulip_bots: Add test for get_mentions method of Mention bot. 2018-01-02 10:56:59 -05:00
Viraat Chandra 48e365195e zulip_bots: Add test for get_alert_id method of Mention bot. 2018-01-02 10:56:59 -05:00
Viraat Chandra 4d3e255e6d zulip_bots: Add test for get_account_id method of Mention bot. 2018-01-02 10:56:59 -05:00
Viraat Chandra 67b3529140 zulip_bots: Cleaned up test code for Mention bot. 2018-01-02 10:56:59 -05:00
Viraat Chandra 606b7f8adf zulip_bots: Add better test for list-subscriptions command of Baremetrics bot. 2017-12-31 10:16:48 -05:00
Viraat Chandra e2a9a229a3 zulip_bots: Add better test for list-customers command of Baremetrics bot. 2017-12-31 10:16:48 -05:00
Viraat Chandra 777f6c55f8 zulip_bots: Add better test for list-plans command of Baremetrics bot. 2017-12-31 10:16:48 -05:00
Robert Hönig 9bf64c0c21 youtube bot: Replace sys.exit() with bot_handler.quit(). 2017-12-31 07:12:19 -05:00
Viraat Chandra 9e73ddd292 zulip_bots: Check API key on initialization for Weather bot. 2017-12-30 17:59:23 +01:00
Viraat Chandra 524804fd2c zulip_bots: Remove comments from config file in Mention Bot. 2017-12-30 17:51:10 +01:00
Viraat Chandra 5ccbe6e6bd zulip_bots: Reformat code for Mention Bot file mention.py. 2017-12-30 17:51:10 +01:00
Viraat Chandra adbda6d2f2 zulip_bots: Check Access Token on initialization for Mention bot. 2017-12-30 17:51:10 +01:00
Viraat Chandra 9ac0628452 zulip_bots: Add link to get API Key in Link Shortener Bot Documentation. 2017-12-30 17:41:31 +01:00
Viraat Chandra 6a089f2217 zulip_bots: Fixed failing tests for Link Shortener Bot.
This uses a custom test_bot_responds_to_empty_message()
implementation for the link_shortener bot, because it requires
mocking config info.
2017-12-30 17:41:31 +01:00
Viraat Chandra db0e88a1b9 zulip_bots: Check API key on initialization for link_shortener bot. 2017-12-30 17:41:31 +01:00
Shivam Gera 79b32f6c05 Update google_translate.py 2017-12-30 16:04:29 +01:00
Viraat Chandra 8e800d545b zulip_bots: Check API key on initialization for Baremetrics bot. 2017-12-29 23:33:10 +01:00
Marco Burstein f719964487 bots: Create Jira Bot.
Users can get an issue from Jira Bot using it's key, and get a response
like the following:

    Issue BOTS-13: Create Jira Bot
     - Type: Task
     - Creator: skunkmb
     - Project: Bots
     - Priority: Medium
     - Status: To Do

Users can create or edit an issue with Jira Bot with its
 - summary,
 - project,
 - type,
 - description,
 - assignee,
 - priority,
 - labels, and
 - due date
2017-12-29 11:21:18 -05:00
Viraat Chandra d8c6cb7c0a interactive bots: Create Baremetrics bot. 2017-12-29 11:50:33 +01:00
Privisus b80a0cb297 interactive bots: Create Merels bot. 2017-12-29 10:48:52 +01:00
Viraat Chandra a2557ccbe6 interactive bots: Create Mention bot. 2017-12-28 16:33:00 -05:00
Shivam Gera 6121002b35 Update giphy.py 2017-12-28 16:22:20 -05:00
sColin16 b9905e5fc8 Game Adapter Class: Allow superusers to moderate bots. 2017-12-25 09:43:53 -05:00
sColin16 2c8b369d14 interactive bots: Extracted GameAdapter Class. 2017-12-25 09:43:53 -05:00
sColin16 35829218b7 interactive bots: Create connect four bot. 2017-12-23 16:02:50 -03:30
fredfishgames 7acf2c396b Update dialogflow bot to show user friendly messages 2017-12-19 16:34:13 -05:00
Nikhil Kumar Mishra d3916b945d github_detail: Limit bot to 5 requests per message.
Fixes #172 .
2017-12-19 14:41:39 -05:00
Jerry Zhang ce8979df7a interactive bots: Improve documentation for tictactoe bot. 2017-12-18 10:38:13 -05:00
Marco Burstein 878691a745 bots: Create Wit.ai Bot.
Wit.ai Bot communicates with the Wit.ai API. It can be configured with
any Wit.ai token and allows for setting up a custom handler function to
handle Wit.ai responses.
2017-12-18 10:32:05 -05:00
Robert Hönig b306324bfa zulip_bots: Make BotTestCase the only helper library.
Renames StubBotTestCase to BotTestCase and removes
legacy code for supporting both names.
2017-12-14 05:56:55 -05:00
neiljp (Neil Pilgrim) ced3a97b3f TicTacToe: Extract sanitized_move from TicTacToeGame as coords_from_command. 2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) c6e9beb2a1 TicTacToe: Rename & simplify some functions.
Rename:
* win_conditions -> contains_winning_move
* check_validity -> is_valid_move
* sanitize_move -> sanitized_move
2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) a72764d7b8 TicTacToe: Improve encapsulation of board data in TicTacToeGame. 2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) aadf639e5e TicTacToe: Remove python2 compatibility imports 2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) cff3e30734 TicTacToe: Coalesce & refactor response messages. 2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) a7f7994302 TicTacToe: Use game objects instead of calling TicTacToeGame with self. 2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) b1dba0bd30 TicTacToe: Move tictactoe() text from game-logic to handle_message.
Also remove early debugging logic.
2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) 6d4b205595 TicTacToe: Use simple comparison instead of overly-complex first_time(). 2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) d10601b554 TicTacToe: Refactor new-game handling into existing section.
Also extend storage-update section; all related storage.put calls
are now together.
2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) 33e8517b87 TicTacToe: Decouple TicTacToeGame.tictactoe() string from move result.
This allows the storage update to be refactored into one block before
sending the result text.
2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) 5843801d13 TicTacToe: Simplify superfluous initial command logic. 2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) 969b984b80 TicTacToe tests: Extend tests to end of game lose condition & quit. 2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) 62d781a53e TicTacToe tests: Extend tests to end of game draw condition & quit. 2017-12-12 17:11:29 -06:00
neiljp (Neil Pilgrim) d686a3b337 bots (minor): Simplify test_link_shortener.py further.
* Rename test names to be more descriptive.
* Inline messages/response test.
2017-12-12 13:57:55 -06:00
Marco Burstein e9aa94f81c mypy: Add annotations for Link Shortener Bot.
Based on work started by @skunkmb.
2017-12-12 13:57:55 -06:00
Steve Howell f69d71c3b1 bots: Remove unneeded __future__ imports. 2017-12-12 07:32:14 -06:00
Steve Howell fd069dff82 lint: Require python3 shebangs.
This commit was originally from @fredfishgames, but it
needed a big rebase due to use letting it sit too long.
Also, we decided not to have shebangs at the top of test
files.
2017-12-12 07:14:16 -06:00
neiljp (Neil Pilgrim) 28687f18ca mypy: Add --disallow-any=generics & extend typing accordingly.
Also reset typing of ExternalBotHandler to Any after discussion.
2017-12-11 20:14:00 -06:00
fredfishgames 424a4bb631 add _ to googletranslate and googlesearch 2017-12-11 13:15:43 -06:00
fredfishgames 657c6d7b9c interactive bots: Create DialogFlow bot. 2017-12-11 13:15:43 -06:00
Sivagiri Visakan 277b384379 bots: Add 100% test coverage to define bot. 2017-12-11 12:49:43 -06:00
Sivagiri Visakan d663dd2f49 bots: Make wikipedia bot return an error message.
Previously the Wikipedia bot was replying with `null` in case of an error.
A change has been made to return an error message if an error occurs.
2017-12-11 12:49:43 -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 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
sColin16 6109bd198a interactive bots: Improve wikipedia bot. 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
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