Commit graph

1430 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 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 e5685adf2e tests: Do not generate coverage report on Python 2.
Since we have dropped Python 2 support for the bots and botserver
packages, we now have 'invalid' syntax if we run coverage
for all packages in a Python 2 environment.
2017-12-04 07:27:20 -08:00
Rohitt Vashishtha 8cd310493a mypy: Annotate helloworld bot. 2017-12-04 07:27:20 -08:00
Rohitt Vashishtha 69ad29faad tools: Allow force including files for mypy. 2017-12-04 07:27:20 -08:00
fredfishgames b157b817ae interactive bots: Improve googlesearch bot. 2017-12-03 14:03:47 -08:00
Rhea Parekh 1d2d6c9cf7 slack: Fix travis tests. 2017-12-03 10:30:02 -08:00
Rhea Parekh e5726fdc96 slack: fix type annonations. 2017-12-03 10:30:02 -08:00
Rhea Parekh 1f17c04115 slack: remove the messages and attachments mapping. 2017-12-03 10:30:02 -08:00
Rhea Parekh 455acb8e3b slack: Make minor fixes in zerver_userprofile and zerver_realm mappings. 2017-12-03 10:30:02 -08:00
Rhea Parekh 8def7564dd slack: Map recipients and subscriptions for private messages. 2017-12-03 10:30:02 -08:00
rht cb1cafe194 slack: Add attachment.json skeleton.
Map the attachments but disable attachments
them for now.
2017-12-03 10:30:02 -08:00
rht b7ab8b4257 slack: Add avatar and uploads records.json. 2017-12-03 10:30:02 -08:00
rht 9ce064b2c1 slack: Do minor fixes.
Minor fixes in zerver_userprofile mapping.
Remove TODO from REALM_ID task.
2017-12-03 10:30:02 -08:00
Rhea Parekh 7198aab1a9 slack: Fix zerver_message, zerver_defaultstream
and refactor zerver_usermessage implementation.
2017-12-03 10:30:02 -08:00
rht 6366448903 slack: Add minor changes.
Rename the function channelmessage2zerver_message to channelmessage2zerver_message_for_one_stream.

Compress the converted data with tar instead of zip.

Add changes in zerver_userprofile mapping and zerver_realm mappings.

Do the manage.py import from a directory instead.
2017-12-03 10:30:02 -08:00
Rhea Parekh 716570ceaa slack: Add zerver_usermessage object and map flags_mask 2017-12-03 10:30:02 -08:00
rht b3a7a4f937 Slack: Add zerver_defaultstream feature.
Thanks to @rheaparekh for pointing out the doc for sanity check ;)
2017-12-03 10:30:02 -08:00
rht 46fd234824 slack: Clarify var naming of sanitize text function. 2017-12-03 10:30:02 -08:00
Rhea Parekh ce51d99c6a slack: Sanitize the message text and fix Travis test. 2017-12-03 10:30:02 -08:00
rht 7db4e36752 slack: Add minor changes.
Set default value to be False for message's has_image

Update type signature to functions.

Set default to be false for msg's has_link.
2017-12-03 10:30:02 -08:00
rht a645ba233f slack: Add test for ./manage.py import zulip_data. 2017-12-03 10:30:02 -08:00
Rhea Parekh a02f0f98c1 slack: Map recipient and fix subscription mapping. 2017-12-03 10:30:02 -08:00
rht 704b742f82 slack: Handle avatar from slack if it is stored in gravatar.
Thank you @**Rhea** for the research.
2017-12-03 10:30:02 -08:00
rht c6156fd958 slack: Add test fixture. 2017-12-03 10:30:02 -08:00
rht cd3db24bca Add slack data importer.
This importer is more comprehensive than the existing one.

slack import: Reduce TODO count.
2017-12-03 10:30:02 -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
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 77dbe92ad8 minor: Remove some dead code in BotTestCaseBase. 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
Steve Howell 205f7c16c7 Add StubBotTestCase and StubBotHandler.
We will start to use these for some of our bot test code.
2017-12-01 07:00:20 -08:00
Steve Howell fe662ed145 bot tests: Split up mock_http_conversation().
This method had two pretty easy-to-separate concerns:

    * find the fixture data using our directory conventions
    * use the fixture data to simulate a real HTTP request

Part of the goal here is to make the extracted functions a
bit easier to use in other TestCase-based classes without
needing to subclass from BotTestCaseBase, which is kind of
complex with its setUp/tearDown.
2017-12-01 07:00:20 -08:00
Steve Howell 0a477b0736 Extract get_bot_message_handler(). 2017-12-01 07:00:20 -08:00
Robert Hönig 4ca11fdd67 Make venv creation with Python 2 harder.
Python 2 venvs can now only be created with
tools/provision --force.
2017-11-30 02:07:55 -08:00
neiljp (Neil Pilgrim) 1e5e931421 Tests: Extend test-lib script to support coverage parameter & add to test-main 2017-11-29 17:07:30 -08:00
neiljp (Neil Pilgrim) 39601d190c bot lib tests: Add test_send_reply. 2017-11-29 15:56:30 -08:00
Steve Howell efeac92d42 Add tools/test-lib.
This starts to add direct test coverage on
zulip_bots/zulip_bots/lib.py.

It is not yet integrated into tools/test-main.
2017-11-29 13:45:51 -08:00