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