Commit graph

475 commits

Author SHA1 Message Date
Rohitt Vashishtha be4f9a0c32 bots: Use bold formatting judiciously in trivia bot. 2019-01-30 08:38:10 -08:00
Rohitt Vashishtha 49d3f4cfbb bots: Make trivia bot responses mention currently interacting user. 2019-01-29 11:39:33 -08:00
Marco Burstein d176fbe324 bots: Fix a Chessbot dependency error.
Specify a version for Chessbot so that it will continue to function
properly if the library is updated. Also, update `test-bots` to remove
a temporary fix for Chessbot.
2018-12-09 18:57:10 -08:00
Steve Howell 0fd093a698 bots: Allow users to supply ZULIP_API_KEY, etc.
This will make it easier to run standalone
bots in containers like Heroku that prefer
env-var-style configuration.

For now this is undocumented, but we should
update the server docs once a few folks have
tried it out.

(The history behind requiring the config file
is that I wanted to keep things simple and
be strongly opinionated about how you run
bots, so that the docs didn't overwhelm folks,
but this use case has come up more frequently.)
2018-12-09 11:16:30 -08:00
Steve Howell 3d68e394dc bots: Raise KeyError inside storage.get().
Our bots rely on get() raising `KeyError` if
a key does not exist.

This was a regression in this commit:

d7d2f6bbd6
2018-12-09 11:16:30 -08:00
Rohitt Vashishtha fbe99b812e lib: Add support for extended mention syntax.
We are checking for the extended syntax only on the basis of the
user id so that we can handle cases where a bot is renamed.
2018-11-06 17:14:13 -08:00
Steve Howell 4d03ab0558 Add incident bot.
This is a pretty alpha proof-of-concept.
2018-10-11 10:36:00 -04:00
neiljp (Neil Pilgrim) 617e16cebb bridges: Bring inter-realm (zulip) bridge into zulip/ & rename others. 2018-08-08 17:26:15 -07:00
John Pellman 91b570aca8 jira: Fix JSON post requests for create and edit commands. 2018-07-23 08:06:00 -07:00
Jordan Troutman ab97b37ce1 merels tests: Adapt merels tests to game_handler.
The merels bot was ported to game_handler, but the tests
were not updated.  Most changes are minimal, but require
changing how to start a game.  It is unclear if the
merels start game was properly updated.

 Author:    Jordan Troutman <jttroutman99@gmail.com>
2018-07-09 11:03:15 -04:00
novokrest 3448d9c9c1 zulip-run-bot: Add the ability to run a bot by the module name. 2018-07-01 08:08:02 -04:00
novokrest f4bea72557 youtube: Add test for unknown error during initialize. 2018-07-01 08:03:56 -04:00
novokrest 5eef519b3b giphy: Add test for connection error during config validation. 2018-07-01 08:02:59 -04:00
Shubham Dhama 918e63a220 zulip_bots: Fix get_storage request arguments in StateHandler. 2018-07-01 08:01:18 -04:00
Shubham Dhama 88b649d689 test_lib: Fix repeated name of test_state_handler. 2018-07-01 08:01:18 -04:00
novokrest 7fc1ff5e0e bots: Add bot for uploading files to Zulip server.
Add file_uploader bot as an example of using
ExternalBotHandler's methods for uploading files
to Zulip server.
2018-07-01 07:57:45 -04:00
novokrest e5239c5c54 lib: Add ExternalBotHandler methods for file uploading.
Add methods ExternalBotHandler.upload_file() and
ExternalBotHandler.upload_file_from_path() for uploading
local files to Zulip server.

Fixes #351
2018-07-01 07:57:45 -04:00
novokrest 935701aea2 flock: Add test for connection error during message sending. 2018-07-01 07:55:36 -04:00
novokrest 0fec20239d flock: Fix error message for invalid user. 2018-07-01 07:55:36 -04:00
novokrest 7b3c083ab5 flock: Refactor test_no_recipient_found test to increase coverage. 2018-07-01 07:55:36 -04:00
novokrest 80adce3cee flock: Change name of var res to users in get_recipient_id method. 2018-07-01 07:55:36 -04:00
novokrest 7fe37dbfe8 flock: Move calling requests to flock's urls to separate method.
Introduce `make_flock_request()` method to make requests to flock's URLs.
2018-07-01 07:55:36 -04:00
novokrest efdc96929f flock: Change returned type of get_recipient_id to tuple (userId, error). 2018-07-01 07:55:36 -04:00
novokrest c2a3d4c517 flock: Rename method find_recipient to find_recipient_id. 2018-07-01 07:55:36 -04:00
novokrest 0a7a06f028 flock: Rename local var to to recipient_name in find_recipient method. 2018-07-01 07:55:36 -04:00
novokrest d24e4fc5c8 flock: Pass recipient's name as first argument in get_recipient_id method. 2018-07-01 07:55:36 -04:00
novokrest 5c46a4e68e flock: Rename local var to to recipient_id in get_flock_response(). 2018-07-01 07:55:36 -04:00
novokrest a17bd77b71 jira: Build request's data as dictionary to create/edit issues.
Build data in `make_create_json` and `make_edit_json` methods
as dictionary to send as JSON payload.
2018-07-01 07:54:28 -04:00
novokrest 24a157cd37 jira: Refactor old tests to use mock_http_conversation. 2018-07-01 07:54:28 -04:00
novokrest 6332ce47cb jira: Add tests for error cases and help command. 2018-07-01 07:54:28 -04:00
novokrest 914583e8f7 request_test_lib: Add mocking PUT requests. 2018-07-01 07:54:28 -04:00
Kishan Patel ea370031ee tictactoe: Add tests for TicTacToeModel functions.
Encountered several issues with test cases initially,
where test cases were failing due to the structure of the tests
within the file. This was circumvented by creating a separate
instance of the class TicTacToeModel for each test case
in order to focus on unit testing. There might be an issue with
the _get_game_handlers() function at the end of the file
which is used to obtain the model and message information,
it seems to be getting the entire class TicTacToeModel instead of
creating an instance of the class. Overall, this commit focuses
on creating a precedent for writing test cases involving TicTacToeModel,
and implements basic cases which can be extended to larger
edge cases in the future. Testing was done locally by running
./tools/test-bots until we were able to get the response 'ok' for
all the test cases written. We also used coverage in order to test the
coverage of the cases. While we were not able to increase
the coverage as much as we would have liked, we were able to
identify several issues and fix them, hopefully making it easier
for future contributors to add additional test cases to TicTacToeModel.
Overall, we would like special attention given to the way
that TicTacToeModel() was initailized in these tests and whether or not
this is a scalable precedent for future tests.

Fixes: #122
2018-06-28 14:43:29 -04:00
novokrest aa6afbd2fe front: Add helper func to test command's error. 2018-06-25 08:14:14 -04:00
novokrest 0d3189b3b0 front: Fix status and body of response in fixtures for successful requests. 2018-06-25 08:14:14 -04:00
novokrest 100d50411f front: Add tests when command's request was failed. 2018-06-25 08:14:14 -04:00
Sivagiri Visakan 3e20593da2 bots/finder: Make name a non-default parameter in import_module_from_source. 2018-06-22 07:59:56 -04:00
Sivagiri Visakan 09a7894a34 bots: Extract path resolution logic into a function. 2018-06-22 07:59:56 -04:00
Sivagiri Visakan d053528925 bots: Move import_module_from_source to finder.py. 2018-06-22 07:59:56 -04:00
Rhea Parekh b28cfcac3d bots: Improve response at 3 wrong answers in trivia bot. 2018-06-12 13:00:43 -04:00
Rhea Parekh f25772d1dc bots: Increase test coverage for trivia_quiz bot. 2018-06-11 20:01:41 -04:00
Rhea Parekh 7e8deac8e0 bots: Add type annotations for trivia_quiz bot. 2018-06-11 20:01:41 -04:00
Rhea Parekh ba98220d44 bots: minor cleanup for trivia_quiz bot. 2018-06-11 20:01:41 -04:00
neiljp (Neil Pilgrim) 0ea49c96ed bot tests: import patch in incrementor & monkeytestit as in other tests.
This makes the code more compact and consistent.
2018-06-11 08:16:43 -04:00
neiljp (Neil Pilgrim) cd76a3cf5a mypy: Improve typing of dialogflow and salesforce tests. 2018-06-11 08:16:43 -04:00
neiljp (Neil Pilgrim) 509991f26f bot tests: Remove unnecessary imports. 2018-06-11 08:16:43 -04:00
neiljp (Neil Pilgrim) 031510410b xkcd tests: Use consistent imports. 2018-06-11 08:16:43 -04:00
neiljp (Neil Pilgrim) 5d211b0c84 monkeytestit tests: Use unittest.skipIf to disable tests on python < 3.5. 2018-06-11 08:16:43 -04:00
neiljp (Neil Pilgrim) 4900099763 merels test: Rename test & improve style. 2018-06-11 08:16:43 -04:00
neiljp (Neil Pilgrim) 6cdb83ce72 bot tests: Adjust TestCase inheritance to avoid need to skip/filter.
Previously the test-bots script filtered out base-class tests from
BotTestCase. With this change, BotTestCase continues to inherit from
unittest.TestCase, but the default test_* methods previously in this
class are now in a new DefaultTests class, which does not. Instead, each
bot needs to inherit from BotTestCase and DefaultTests *explicitly*.

This avoids the need to filter out the base-class tests, which
simplifies the test-bots script, and may ease any migration to eg.
pytest.

The DefaultTests class does require some non-implemented methods which
BotTestCase provides.
2018-06-09 12:49:49 -04:00
Eeshan Garg 26bd90b260 zulip_bots: Display neat error message for missing bot dependencies.
We just moved the logic for installing bot dependencies from setup.py
to tools/provision. So bot dependencies are not automatically installed
anymore as a part of the base package. Now, if there is an import error
caused by missing dependency, we display a neat error message asking
the user to provision bot dependencies.
2018-06-06 13:23:16 -07:00