Commit graph

1159 commits

Author SHA1 Message Date
Eeshan Garg
c4480311d7 integrations/nagios: Upgrade to argparse. 2017-08-02 00:58:55 -02:30
Eeshan Garg
18a73324a9 integrations/twitter: Upgrade to argparse. 2017-08-02 00:51:25 -02:30
Eeshan Garg
3b04b55ffd integrations/irc: Upgrade to argparse. 2017-08-01 19:09:08 -02:30
Eeshan Garg
780ccb392e integrations/google: Upgrade to argparse. 2017-08-01 19:08:58 -02:30
Eeshan Garg
59c750707a python-zulip-api: Upgrade package versions (0.3.1 -> 0.3.2). 2017-07-31 15:33:34 -07:00
Eeshan Garg
61d84cd649 zulip/examples: Remove sys.path modifications.
With the new repo, doing a `pip install -e ./zulip` will be a part
of the core workflow. This mitigates the risk of developers
accidentally testing their changes against an installed copy of the
zulip package rather than the copy in their checkout. Therefore,
we can now get rid of the various `sys.path.inserts` in the examples.
2017-07-29 00:24:42 -02:30
Eeshan Garg
de23a1b32f zulip_botserver: Migrate from optparse to argparse. 2017-07-29 00:17:43 -02:30
Eeshan Garg
8fbb3700d2 zulip-send: Use argparse-based zulip.add_default_arguments. 2017-07-29 00:17:43 -02:30
Eeshan Garg
4a76284af1 zulip/examples: Use argparse-based zulip.add_default_arguments. 2017-07-29 00:17:34 -02:30
Eeshan Garg
38df8ef87b api: Recommend migrating to argparse-based add_default_arguments(). 2017-07-29 00:04:25 -02:30
vaibhav
c4876dddae bot server: Raise BadRequest when bot code can't be imported.
This adds support to check and raise a BadRequest when either the
configuration of bot couldn't be found or the BotHandler code of bot
couldn't be fetched. There can be cases where flaskbotrc contains config
details of a bot, but the user hasn't added it's handler class code. This
fixes server to handle such cases, by reporting it to user.
This also fixes the response of bot server to make it possible to skip
the response message.
2017-07-27 11:03:33 -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
derAnfaenger
0dfb405748 linter: Add open() call restriction for the john bot. 2017-07-27 10:35:31 -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
Abhijeet Kaur
05c527a10f bots: Fix 'run.py' file to run bots.
'bot_name' variable in line number 111 in run.py undefined.
2017-07-26 16:54:47 -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
derAnfaenger
f3eaa381f6 bots: Audit filesystem access.
This adds a safe function for opening files via
ExternalBotHandler. This restricts open calls to a bot's
local directory.

Finalizes #9
2017-07-26 20:01:17 +02:00
neiljp (Neil Pilgrim)
e619c19b36 bots: Set user-agent for individual bots automatically.
Fixes #28.
2017-07-25 19:35:15 -07:00
neiljp (Neil Pilgrim)
b314c70da7 weather bot: Amend temperature formatting. 2017-07-25 18:05:14 -07:00
derAnfaenger
5dd359fd4d testing: Properly exclude files for linting in Windows.
For files to be excluded in Windows, their paths have to
be normalized, so that the string matching works.
2017-07-25 10:55:49 -07:00
derAnfaenger
428ded449e testing: Add custom linter rules. 2017-07-25 10:55:49 -07:00
Tim Abbott
142d10f546 lint: Fix existing lint error in codebase. 2017-07-25 10:55:49 -07:00
Eeshan Garg
a50cf906a6 bots/xkcd: Fix wrong package name passed to mock.patch. 2017-07-25 10:50:33 -07:00
Eeshan Garg
d181d0192e zulip_bots: Use relative paths to find zulip_bots/bots/*. 2017-07-25 10:50:33 -07:00
Eeshan Garg
472c869efa test-bots: Load and discover unit tests from specific modules.
Instead of discovering unit tests using loader.discover() by passing
it a set of starting and top level directories, we now discover
unit tests by loading them from specific test module objects. This
makes it easier to include and exclude specific bots from testing.
2017-07-25 10:50:33 -07:00
Eeshan Garg
bc8282b980 zulip_bots/run: Add --provision command-line option. 2017-07-25 10:50:33 -07:00
Eeshan Garg
e85be28119 zulip_bots/run.py: Use argparse instead of optparse.
The optparse module is deprecated.
2017-07-25 10:50:33 -07:00
Eeshan Garg
e255c73fc3 zulip_bots/provision: Improve logging. 2017-07-25 10:50:32 -07:00
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