Commit graph

186 commits

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