Marco Burstein
700ce6a673
bots: Create Chess Bot.
...
Chess Bot is a bot that allows you to play chess against either another
user or the computer. Use `start with other user` or
`start as <color> with computer` to start a game.
In order to play against a computer, `chess.conf` must be set with the
key `stockfish_location` set to the location of the Stockfish program on
this computer.
Use `bot_handler.storage` to preserve game state across messages.
(@showell also did minor work here to have the test use verify_dialog()
and have the bot respond to empty messages)
2017-12-10 09:14:32 -06:00
Steve Howell
2fa677a3e0
bot tests: Extract StubBotTestCase._get_handlers().
...
This is mostly a pure refactoring, but it also ensures
that `initialize` is called in a consistent way by most
of our test helpers. (This didn't cause problems before,
since some bots don't require initialization.)
2017-12-10 06:35:51 -08:00
Steve Howell
01f8366bea
Improve test_bot_responds_to_empty_message().
...
This fixes the TODO of inlining get_response(), and it
makes a slightly tighter assertion about the response.
2017-12-10 06:20:19 -08:00
Nikhil Mishra
81b207795f
followup bot: Fix help response and configure streams.
...
From @showell:
We had a PR here with lots going on, and the commits weren't
very well organized, and then there were some tricky merge
conflicts from another PR. So I just squashed them all into
one commit.
What this does:
* allow you to configure your followup stream
* provide help in followup stream
* add more testing to followup stream
* add get_response() helper for tests
Fixes #173
Fixes #174
2017-12-10 05:23:35 -08:00
Kai Chen
1cdb0bffe6
mypy: Add annotations for encrypt.
2017-12-10 04:59:27 -08:00
Kai Chen
b382eacd18
mypy: Add annotations for define.
2017-12-10 04:59:27 -08:00
Kai Chen
d33e9b9d92
mypy: Add annotations for converter.
2017-12-10 04:59:27 -08:00
neiljp (Neil Pilgrim)
31853cfa80
Add test_bot_responds_to_empty_message to StubBotTestCase.
2017-12-09 15:06:41 -08:00
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
Steve Howell
cb849611c8
bot tests: Add sender_full_name to verify_dialog.
2017-12-08 08:51:57 -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
87662da139
bot tests: Add StubBotTestCase.mock_config_info().
...
We now auto-initialize bots in verify_reply() and have
a mock_config_info() helper that can override the new
StubBotHandler.get_config_info().
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
Robert Hönig
1102057e35
zulip_bots: Make typing import work in Python 3.5.
...
See https://github.com/python/mypy/issues/1838 .
2017-12-06 12:49:46 +01:00
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
Skunk
c2c79cf989
tests: Refactor mock_http_conversation
with deduplicating.
...
Move `get_response` inside of `mock_http_conversation`, as it is not
used anywhere else. Also create `assert_called_with_fields`.
`assert_called_with_fields` calls the `assert_called_with` method of a
mock object by using an HTTP request and a list of fields to look for.
2017-12-03 10:26:42 -08:00
Skunk
bd0462f7b5
tests: Extend mock_http_conversation
to support POST requests.
2017-12-03 10:26:42 -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
16e50e991b
bot tests: Add StubBotTestCase.verify_reply().
2017-12-01 13:42:59 -08:00
Steve Howell
db08586df6
Promote mock_http_conversations to its superclass.
2017-12-01 13:42:59 -08:00
Steve Howell
3f79136dd7
bot tests: Introduce transcript
in StubBotHandler
.
...
This sets us up to validate more aspects of the conversation,
and it also introduces the more rigorously checked
`unique_response` helper.
(This also fixes a minor copy/paste error from a prior commit
that was harmless.)
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