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