Commit graph

328 commits

Author SHA1 Message Date
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