Commit graph

328 commits

Author SHA1 Message Date
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
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
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 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 9492495f4b Removed self: Any from googlesearch 2017-12-08 10:48:42 -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
Steve Howell 7285affbc4 bots: Simplify test_define.py. 2017-12-07 20:15:33 -08:00
Steve Howell 2c42b0e42e minor: Clean up test_converter.py.
This removes some imports and uses StubBotTestCase
and verify_dialog.
2017-12-07 20:15:33 -08:00
Steve Howell 6f0d5239e8 test_googlesearch: Remove self: Any annotations.
We can avoid `Any` annotations for `self`, since it is more
noise than signal and since the type of self is already
implicit from how Python classes work.
2017-12-07 19:40:32 -08:00
Steve Howell 011095018b Simplify TestGoogleSearchBot.
We use verify_reply() for all the tests and de-duplicate
help_message by just having a single test validate both
the '' and 'help' inputs.
2017-12-07 19:40:32 -08:00
Steve Howell c01fbe02e1 Remove unneeded imports in test_googlesearch.py. 2017-12-07 19:40:32 -08:00
fredfishgames 9d5fbc2b5b mypy: Add annotations for help. 2017-12-07 19:12:39 -08:00
fredfishgames 40c09b4b16 mypy: Add annotations for googlesearch. 2017-12-07 19:12:39 -08:00
fredfishgames b7dbe7af41 mypy: Add annotations for github_detail. 2017-12-07 19:12:39 -08:00
fredfishgames 1b16b54780 interactive bots: Create googletranslate bot. 2017-12-07 06:18:01 -08:00
Steve Howell 7a963916f2 bot tests: Use StubBotTestCase in test_giphy.py.
For three of the tests we use the simpler verify_reply()
API.  For the 403 test, we don't need to rely on setUp
any more to simulate everything for us, and we do more
surgical patching.
2017-12-06 20:29:36 -08:00
Steve Howell be9570c9c4 minor: Remove unused imports in test_giphy.py. 2017-12-06 20:29:36 -08:00
Jerry Zhang 77e9be0783 bots/giphy: Use Python 3 type mypy annotations. 2017-12-07 00:22:57 -03:30
Jerry Zhang 95b8ea4751 bots/followup: Use Python 3 type mypy annotations. 2017-12-07 00:22:57 -03:30
Skunk 29e22c2c0a bots: Create Link Shortener Bot.
Create Link Shortener Bot using the goo.gl Link Shortening API.

Link Shortener Bot can be mentioned in a conversation, and it will
respond with shortened, goo.gl links for every URL in the message.

For example,

 > @link_shortener_bot @johnsmith Check out this file:
 > https://github.com/zulip/python-zulip-api/blob/master/zulip_bots/

and Link Shortener Bot would respond

 > https://github.com/zulip/python-zulip-api/blob/master/zulip_bots/:
 > https://goo.gl/Mt5z3c

In order to use Link Shortener Bot, an API key for goo.gl must be set
in `link_shortener.conf` in the `link_shortener` folder.
2017-12-05 06:08:30 -08:00
Rohitt Vashishtha 8cd310493a mypy: Annotate helloworld bot. 2017-12-04 07:27:20 -08:00
fredfishgames b157b817ae interactive bots: Improve googlesearch bot. 2017-12-03 14:03:47 -08:00
Steve Howell fab9d46f93 Simplify test_wikipedia.py.
We now use StubBotTestCase.verify_reply().
2017-12-01 13:42:59 -08:00
Steve Howell c02e141f7f bot tests: Use StubBotTestCase for helloworld bot. 2017-12-01 07:00:20 -08:00
Steve Howell 4ede1a5564 bot tests: Use StubBotTestCase for help bot. 2017-12-01 07:00:20 -08:00
Steve Howell 6087cf95e2 bot tests: Use StubBotTestCase in tictactoe.
Note that we now only have one conversation, since the case
of sending to streams has the same mechanics as sending PMs.

We'll eventually want a separate test to drive out differences
in the actual mechanics of the reply.
2017-12-01 07:00:20 -08:00
Steve Howell c0ceb9857f Rewrite incrementor bot tests.
Using StubBotHandler makes it fairly easy to verify the key
feature of the incrementor bot, which is that it updates
messages sequentially.
2017-12-01 07:00:20 -08:00
Steve Howell fc251460fa bot tests: Eliminate BotTestCaseBase.
We now just put `test_bot_usage` in StubBotTestCase and have
BotTestCase inherit from that.
2017-12-01 07:00:20 -08:00
Robert Hönig 2cb43256e0 zulip_bots: Get 100% test coverage for giphy bot. 2017-11-28 15:42:22 -08:00
Robert Hönig 41d8ffc20e zulip_bots: Fix yoda bot response parsing. 2017-11-28 15:42:22 -08:00
Steve Howell ef30261858 giphy: Make config_info an instance variable.
There was no reason to use a `global` here.
2017-11-28 10:52:13 -08:00
Robert Hönig ea6ddb2312 zulip_bots: Only cache storage.get(). Don't cache put(). 2017-11-24 10:44:34 -08:00
derAnfaenger 940e1260b2 docs: Update outdated links. 2017-11-20 15:09:50 +01:00
derAnfaenger 2a74ad11c5 zulip_bots: Make StateHandler optional.
This has the convenient side-effect of making
the bot_handler.storage attribute read-only.
2017-11-18 08:58:47 -08:00
derAnfaenger daad7f24e4 bots: Set JSON as default serializer for StateHandler.
With this change, StateHandler.put() does only accept JSON-able
objects by default. The incrementor test tried to store the return
value of send_reply(), a non-JSON-able MockObject, in the state.
Therefore, this commits also sets functional default test return
values for send_message() and send_reply().
Finally, it fixes the tictactoe bot which relied on directly
modifying the state_ attribute.
2017-11-18 08:58:47 -08:00
Eeshan Garg bd7db69bac bots/giphy: Document the bot. 2017-11-16 09:09:04 -08:00
derAnfaenger 5f3b3436f6 zulip_bots: Remove redundant custom tests in encrypt. 2017-11-14 09:39:00 -08:00
derAnfaenger 9c37f92a01 zulip_bots: Add common tests.
unittest includes by default all module-level classes that inherit
from TestCase and implement at least one method starting with 'test'.
Since it doesn't provide a convenient way for excluding TestSuites,
we need to manually filter out the unwanted testing of our test base
class itself.
2017-11-14 09:39:00 -08:00
Josh Mandel 94b7c2eaef zulip_bots: Make xkcd bot error more verbose. 2017-11-13 17:00:32 +01:00
derAnfaenger 1a096b317b zulip_bots: Standardize weather bot's config file. 2017-11-06 14:20:39 -08:00
derAnfaenger 56ac3f1b73 zulip_bots: Add config file for github_detail bot. 2017-11-06 14:20:39 -08:00
derAnfaenger 8d81d37351 zulip_bots: Move unmaintained bots to unmaintained dir. 2017-11-02 15:15:52 +01:00
derAnfaenger 8cdc4a6619 zulip_bots: Remove github helper module.
No bot is dependant on this module. No
future bot should be dependant on it,
since it is not a bot itself and is thus
blurring the structure of the bots dir.
2017-11-02 15:15:52 +01:00
derAnfaenger 8dab6140ee zulip_bots: Remove git_hub_comment bot.
This bot has no tests and a command set that is
impractical and confusing to use. It offers no
practical benefit.
2017-11-02 15:15:52 +01:00
derAnfaenger ff05a8f710 zulip_bots: Remove github_issues bot.
This bot has no tests and no documentation. Its
usage and purpose are unclear.
2017-11-02 15:15:52 +01:00
derAnfaenger cfb767ad0f zulip_bots: Make virtual_fs bot state fully JSON-able. 2017-10-31 23:15:28 +01:00
derAnfaenger 59f81845dd zulip_bots: Update StateHandler API to behave dict-like.
This matches the external StateHandler API with the embedded
StateHandler API.
2017-10-24 13:15:51 +02:00
derAnfaenger 32df4e097d tictactoe bot: Store game state in JSON-able format. 2017-10-24 13:03:41 +02:00
derAnfaenger 8761e47893 zulip_bots: Store testing conversations in lists.
This enforces the use of a list of tuples for
conversations, as opposed to dicts.
2017-10-24 11:14:09 +02:00
derAnfaenger 8179b30873 zulip_bots: Reify StateHandler testing.
This simplifies testing stateful bots by integrating the StateHandler
into the test library. As a side-effect, the mock bot handler gets
reused during a test, making the tests more realistic. The
StateHandler now keeps its state during a call to check_expected_responses,
forcing some stateful tests to be more verbose and explicit.
2017-10-24 11:07:58 +02:00
derAnfaenger e331426c64 zulip_bots: Rename state_handler to storage. 2017-10-23 12:24:41 +02:00
derAnfaenger eb6982e670 zulip_bots: Make state_handler property of bot_handler. 2017-10-23 12:17:46 +02:00
neiljp (Neil Pilgrim) c33ac65ac9 define bot: add check & test to avoid sending words with non-letters. 2017-10-05 11:54:43 -07:00
neiljp (Neil Pilgrim) f862cf2222 wikipedia bot: encode urls correctly in http request & adjust tests. 2017-10-05 11:54:43 -07:00
Eeshan Garg 8adf51890a bots/xkcd: Improve and refactor doc.md to use Markdown macros.
This commit does the following:
* Minor improvements to the writing wherever possible.
* Replace links to screenshots with links that would work when
  rendering said screenshots on the main repo. This would mean
  the screenshots won't be rendered outside the main repo.
* Adds a section that links to our Bots Guide's How to run a bot
  tutorial by using a Markdown a macro.
2017-10-03 18:11:38 -07:00
Eeshan Garg 4a162ba625 bots/xkcd: Add a logo. 2017-10-03 18:11:38 -07:00
neiljp (Neil Pilgrim) 85f2a9e03d bots: Add basic metadata with failover, used on running only. 2017-09-25 14:39:02 -07:00
Abhijeet Kaur 5a426fa841 bots: Converter bot does not require a config file.
Remove unnecessary file.
2017-08-29 14:04:16 -07:00
derAnfaenger 6c47eda92b definition bot: Clarify error message. 2017-08-25 10:01:44 +02:00
neiljp (Neil Pilgrim) 749356d34b Incrementor tests: Preliminary coverage with no update_message support. 2017-08-24 10:24:41 -07:00
neiljp (Neil Pilgrim) d8c4242053 VirtualFS tests: Improve test coverage. 2017-08-24 10:24:41 -07:00
neiljp (Neil Pilgrim) 37206db176 TicTacToe tests: Improve test coverage. 2017-08-24 10:24:41 -07:00
Eeshan Garg c61d413f25 zulip_bots: Remove thesaurus bot.
This bot depends on PyDictionary, which isn't very well-implemented
or well-maintained. PyDictionary's dependency on goslate and
goslate's dependency on concurrent.futures has been known to cause
problems in Python 3 virtualenvs. This bot has also been the
source of disruptive BeautifulSoup warnings. Since this bot is only
meant to be an example bot, and for all the above reasons,
it makes sense to remove this bot. The cons of debugging the above
issues outweight the pros of having the bot at all.
2017-08-16 16:54:24 -07:00
Eeshan Garg 5bb1cbf8d0 zulip_bots: Add logo for the GitHub Detail bot. 2017-08-15 19:30:13 -07:00
Eeshan Garg 1ca5ae5db8 zulip_bots: Add logo for the Google Search bot. 2017-08-15 19:30:13 -07:00
Eeshan Garg d63269ee6a zulip_bots: Rename bots/{bot}/readme.md -> bots/{bot}/doc.md.
doc.md better describes the style of documentation that will live
inside these files, since we want these to be similar to our
webhooks' doc.md files in terms of how these are rendered and
composed of Markdown macros.
2017-08-15 19:30:13 -07:00
Abhijeet Kaur 1a26ae7f2b bots: Fix "help" message async in yoda.py and test_yoda.py.
The help message string was modified in yoda.py file to correctly
instruct the user. But the help message string was not modified
accordingly in the test file.
2017-08-16 03:55:11 +05:30
derAnfaenger 47ba08ff5c bots: Remove redundant newlines for giphy bot. 2017-08-15 06:37:42 -07:00
Abhijeet Kaur ef7077efdb bots: Correct help reply message in yoda bot. 2017-08-14 17:42:33 -07:00
Abhijeet Kaur c3e2c451a7 bots: Not printing the users input directly in reply message.
In case of an errored input (not consistent with the format
of input that the bot seeks), Converter bot was displaying the
errored part first, along with the error message.

This can lead to many failure, if removing_at_mention function
is not working properly then the input '@bot-name 2 m cm' leads
to the bot getting stuck in infinite loop as converter bot will
want to output '@bot-name not a valid number' and hence calling
itself again.
2017-08-14 17:42:33 -07:00
Abhijeet Kaur a68e582f72 bots: Make giphy bot consistent with other api_key bot structure. 2017-08-14 17:42:33 -07:00
Abhijeet Kaur f3d839fd47 bots: Add complete test coverage for yoda bot.
Add error handling support for empty messages and invalid
input to yoda bot, which was previously making the bot crash.
Add comments to describe tests.
2017-08-08 15:55:57 -07:00
Abhijeet Kaur efb5335b2f bots: Add some more test fixtures for yoda bot. 2017-08-08 14:05:58 -07:00
Abhijeet Kaur 29d33e86fe bots: Add complete tests for offline testing of yoda bot.
Since yoda api returns response of text form, made changes
in test_lib.py to handle responses that can either be json
or plain text.
2017-08-08 14:05:58 -07:00
Abhijeet Kaur 1e84e2eb5e bots: Improve error handling of yoda bot when the service is unavailable.
Frequent 503 errors throw index error exceptions which is misleading
to debug.
2017-08-08 14:05:58 -07:00
Abhijeet Kaur a58fae5cab bots: Minor changes to yoda.py to make it run smoothly.
Modifications done so that the bot runs using 'zulip-run-bot'
command.
2017-08-08 14:05:58 -07:00
Abhijeet Kaur a1429f36b2 bots: Enable googlesearch bot to run by 'zulip-run-bot' command.
Since we want our bots to be both python 2 and python 3 compatible,
we use six to make up for both of them and run the bot smoothly.

'http.client' was basically used for error-handling by the author
of the bot, urllib errors can be handled by the urllib itself. So,
using this for simplicity.

urllib.request.urlopen raises URLError on protocol errors.
2017-07-27 10:44:41 -07:00
neiljp (Neil Pilgrim) 0a85962097 weather bot: Fix for integer division in python2 and adjust test.
Fixes #31.
2017-07-27 10:22:05 -07:00
derAnfaenger ee7484e656 john bot: Change confusing variable 'abot' to 'chatterbot'. 2017-07-26 20:01:46 +02:00
derAnfaenger 51bf0cf869 bots: Use restricted open function in john. 2017-07-26 20:01:17 +02:00
neiljp (Neil Pilgrim) b314c70da7 weather bot: Amend temperature formatting. 2017-07-25 18:05:14 -07:00
Eeshan Garg a50cf906a6 bots/xkcd: Fix wrong package name passed to mock.patch. 2017-07-25 10:50:33 -07:00
Abhijeet Kaur 0625c26c9a bots: Correct 'http.bot_handler' to 'http.client' in googlesearch bot.
There is no library as 'http.bot_handler'.
'http.client' is what the author of this bots initially wrote.
Searching through the git history shows that someone mistakenly
replaced 'client' with 'bot_handler' here.
2017-07-25 10:46:22 -07:00
neiljp (Neil Pilgrim) 3234096cea bot tests: Add preliminary tests for tictactoe bot, including state. 2017-07-25 10:45:00 -07:00
neiljp (Neil Pilgrim) 45527c4cf4 bots: Switch TicTacToe to use state_handler.state() contextmanager. 2017-07-24 17:22:17 -07:00
neiljp (Neil Pilgrim) 5ca9ec0771 bots: Switch VirtualFS to use state_handler.state() contextmanager. 2017-07-24 17:22:17 -07:00
neiljp (Neil Pilgrim) 7a8b41b63e bots: Switch Incrementor to use state_handler.state() contextmanager. 2017-07-24 17:22:17 -07:00
Abhijeet Kaur d9ac5ad88c bots: Add complete tests for offline testing of weather bot.
Also, added new lines in between different bot fixture files in
MANIFEST.in for better readability
2017-07-24 02:35:52 +05:30
Abhijeet Kaur 367d0b7986 bots: Add complete tests for offline testing of xkcd bot.
Add patch method to mock 'randint' method to check when
xkcd bot is called with 'random' command.
2017-07-23 07:00:00 +05:30
Abhijeet Kaur 35353f6d7f bots: Add complete tests for offline testing of wikipedia bot. 2017-07-23 06:52:24 +05:30
Abhijeet Kaur f955eb0c8d bots: Add complete tests for offline testing of define bot. 2017-07-22 14:22:29 -07:00
Abhijeet Kaur 2e48392884 bots: Modify howdoi/readme.md to correctly call 'howdoi' bot.
Update images with new commands screenshots for better understanding.
2017-07-20 16:02:47 -07:00
Eeshan Garg 879f44ab3a bots: Move all bots and the bots API to separate package. 2017-07-18 02:20:27 -02:30