Commit graph

1180 commits

Author SHA1 Message Date
Eeshan Garg 44f63992da zulip_bots/run: Support importing bot modules by path.
The zulip-run-bot script now supports passing in a --path-to-bot
option. This allows users to specify the path to the source file
for their own custom bots, the first step towards being able to
support out-of-tree bots.

To run an existing bot in the zulip_bots package, just passing in
the name of the bot should suffice.
2017-07-25 10:49:21 -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) 6421a6fd49 bot tests: Support optional provided state between test calls. 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
neiljp (Neil Pilgrim) 101dd60829 bot lib: Add optional StateHandler contextmanager.
State can still be handled with get_state/set_state, and flushed
before the end of a 'with' block using set_state.
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 e23444b757 bots: Fix errors to get info from config file to run bots.
get_config_info function in 'ExternalBotHandler' class was
using 2 undefined variables, which wasn't allowing bots to
access information from config file.
Fixed it, bots with api key working now.
2017-07-24 02:15:20 +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
Abhijeet Kaur d9a6fec1a0 bots: Remove common send-reply function.
Previously, the annotation for the (now removed)send-reply
function was also wrong, as "send-message" function of
EmbeddedBotHandler class does not return any value, contrary
to "Dict[str, Any]" as specified by the funtion.

This is done as a follow up for zulip/zulip#5842.
2017-07-20 10:25:54 -07:00
Eeshan Garg b08a37fe9c travis: Update Travis config to install and test all packages. 2017-07-18 02:25:29 -02:30
Eeshan Garg 3d0f7955b6 api: Move the API package to a dedicated subdirectory.
In order to keep all three packages (zulip, zulip_bots,
zulip_botserver) in the same repo, all package files must now
be nested one level deeper.

For instance, python-zulip-api/zulip_bots/zulip_bots/bots/, instead
of python-zulip-api/zulip_bots/bots/.
2017-07-18 02:20:32 -02:30
Eeshan Garg 879f44ab3a bots: Move all bots and the bots API to separate package. 2017-07-18 02:20:27 -02:30
Eeshan Garg 928d5ca16d flask_server: Move the server to its own package. 2017-07-18 01:31:54 -02:30
Rohitt Vashishtha 9d1253ff0d lint: Make zulip/__init__.py complaint with E261. 2017-07-06 19:58:50 -04:00
Rohitt Vashishtha 1c8d359546 tools: Add pep8 linter.
This commit adds the tools/lint script to run the pep8 linter
as well as modifies .travis.yml to run the linter in Travis.
2017-07-06 19:58:50 -04:00
Rohitt Vashishtha c1275fded6 tools: Add README.md file to explain this directory.
tools/server_lib contains files copied as-is, or with minor
modifications, from the zulip/zulip repository when the api
code was split into this separate repository.
2017-07-06 19:58:50 -04:00
Rohitt Vashishtha 677ff7f0ae tools: Modify pep8.py from zulip server. 2017-07-06 19:58:50 -04:00
Rohitt Vashishtha 35bcabd157 tools: Copy lister.py from zulip server. 2017-07-06 19:58:50 -04:00
Rohitt Vashishtha 5a2412a60b tools: Copy printer.py from zulip server. 2017-07-06 19:58:50 -04:00
Rohitt Vashishtha 56259ae146 tools: Add basic .travis.yml to run tests. 2017-07-06 19:58:50 -04:00
Rohitt Vashishtha 4109ba9eee dependencies: Add requirements file for define bot. 2017-07-06 13:09:08 -07:00
Rohitt Vashishtha 71b43e4d3e tools: Add .gitignore. 2017-07-06 13:09:08 -07:00
neiljp (Neil Pilgrim) 7910d8767a Bots: Adjust Incrementor bot to use StateHandler 2017-07-03 09:50:14 -07:00
Rohitt Vashishtha 2645c97276 bots: Add dependencies management.
Adds the file api/bots_api/provision.py that installs dependencies
for bots using pip. This file is also used by run.py when running
a bot. However, for testing, you need to separately provision the bots.
2017-06-28 12:00:13 -04:00
Daria Phoebe Brashear bafbd3689b zephyr_mirror.py: update zulip server url for zephyr documentation
zulipchat.com hosts the documentation (as well as the server); make the
url reflect it
2017-06-26 14:07:28 -07:00
Shane Kearns c3d99f6613 integrations/perforce: Skip messages for missing streams.
For a large perforce server with many users, this allows projects
to opt-in to zulip notifications by creating the stream for the
branch to be monitored.

Commits to paths for which a stream mapping yields a result,
but no stream exists in Zulip, are simply dropped silently.

This behaviour is opt-in, by setting the configuration key
ZULIP_IGNORE_MISSING_STREAM = True
in the zulip_perforce_config.py file.
2017-06-22 14:27:13 -04:00
Shane Kearns 99b87dd78d integrations/perforce: Display changelist ID as a p4web link.
The general regex-based linkify in zulip does not allow '@' as the
prefix. In any case we know here that it is definitely a changelist
number, which is better.

Adding P4_WEB="https://p4web.example.com" to the config will enable
this behaviour. If P4_WEB is absent from the config, or has the
value None, no link is inserted.
2017-06-22 14:27:13 -04:00
Shane Kearns 680f453834 integrations/perforce: Fix formatting of multiple paragraphs.
This fixes multiple paragraphs in a commit message escaping
from the block quote by using triple-backquote quoting instead
of '>' which only applies to one paragraph.
2017-06-22 14:27:13 -04:00
Rohitt Vashishtha b475258446 bots: Add tests for github_detail bot. 2017-06-22 11:25:31 -04:00
Rohitt Vashishtha b8b38bb1f7 bots: Fix github details bot. 2017-06-22 11:25:31 -04:00
Rohitt Vashishtha 9505778538 bots: Move github issue bot to api/bots. 2017-06-22 11:25:31 -04:00
Zac Pullar-Strecker cf9aa78e3f bots: Add GitHub issue and pr bot 2017-06-22 11:25:31 -04:00
vaibhav b5982794e7 zulip-bot-server: Add test suite for zulip bot server.
Fixes: #5358.
2017-06-22 10:37:05 -04:00
vaibhav 303daf074a zulip-bot-server: Rename and move source file to api/zulip directory and
add support for running the server from any place.
2017-06-22 10:37:05 -04:00
vaibhav 3a3636105c zulip-bot-server: Add optparse for parsing the flaskbotrc file path and
commandline arguments.
2017-06-22 10:37:05 -04:00
vaibhav b6ca6e5393 zulip-bot-server: Add error handling and informative error messages. 2017-06-22 10:37:05 -04:00
Rohitt Vashishtha c1f3544e33 bots: Allow optional config files for bots. 2017-06-21 16:43:58 -04:00
Rohitt Vashishtha ea3dd2bd87 bots: Add HTTP status code support to mock http conversations. 2017-06-21 16:43:58 -04:00
Abhijeet Kaur 400d46a532 bots: Move "EmbeddedBotHandler" class to "zerver/lib/bot_lib.py" file.
This would keep embedded classes for zulip at one place, that is, in
"zerver" directory. This also fixes break in PyPI package for bindings.
2017-06-21 16:01:16 -04:00
Abhijeet Kaur 3c41033d8c bots: Add a separate class "EmbeddedHandlerBots" in bot_lib.py.
Add another class for bot type as embedded bot, for bots that run directly
on Zulip server. This class uses internal 'internal_send_messages' from
actions.py instead of using the 'send_message' function from Zulip Client
class.

We haven't gone ahead with creating an abstract superclass right away.
We just have two versions for now, it would be easier to iterate a little
more on the interfaces, and then only add the superclass when we're ready
to lock down the interface.
2017-06-21 10:22:53 -04:00
Abhijeet Kaur 22cd8a1e7f bots: Remove unnecessary comment from test_giphy file.
This comment was added to explain the functionality of the
method called below it. Some changes in the method have led this
comment to be unnecessary.
2017-06-21 10:22:53 -04:00
Abhijeet Kaur b406150a56 bots: Rename BotHandlerApi class to ExternalBotHandler.
This change is done for better understanding of the class functionality
from its class name. Now there will be 3 different classes for bots,
namely 'ExternalBotHandler', 'FlaskBotHandler' and  'EmbeddedBotHandler'.
2017-06-21 10:22:53 -04:00
neiljp 08b4ebf597 Extend message parameters passed in check_expected_responses 2017-06-20 07:19:12 -04:00
Robert Hönig fcfda08f4d bots: Update yoda bot to use get_config_info(). 2017-06-19 07:11:08 -04:00