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
neiljp (Neil Pilgrim)
3e135b8e1e
bot testing: Enable testing of multiple responses from single messages.
2017-11-29 10:05:46 -08:00
Abhijeet Kaur
91c4ff668d
bots: Clean up terminal.py for running bots directly.
...
Make terminal.py exit gracefully with a message.
Modify output bot reply for better understanding in multi-line
output.
2017-11-29 10:05:06 -08:00
Skunk
353475f245
docs: Mention Python 3 in the README.
2017-11-29 08:32:33 -08:00
Eeshan Garg
c3ab265d3e
packaging: Upgrade to release 0.3.9.
2017-11-29 01:23:12 -03:30
Robert Hönig
2cb43256e0
zulip_bots: Get 100% test coverage for giphy bot.
2017-11-28 15:42:22 -08:00
Robert Hönig
93edededdd
zulip_bots: Use real Response object for mock_http_conversation().
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
Robert Hönig
13d181cd09
Remove Python 2.7 testing for zulip_bots and zulip_botserver.
2017-11-28 15:42:22 -08:00
Robert Hönig
d6a4c02ba5
Rename bot storage endpoint from state to storage.
2017-11-28 20:41:59 +01:00
Steve Howell
80e4ef9f72
Create terminal.py to run bots in the terminal.
...
This program replaces zulip_bot_output.py, which had
gotten a little out of date.
It should be able to simulate a terminal conversation for
all of our bots, including those that use "advanced" features:
third party config files: tested with giphy
message updates: tested with incrementor
storage: tested with virtual_fs and others
2017-11-28 10:52:13 -08:00
Steve Howell
536ba1843a
Add a command line option to run.py for bot config files.
...
Before this change, we were looking for config files in
default locations in source control, which is not a good
place to look for them. Now `run.py` and friends have a
command line argument where users can specify the config
files.
Note that the change to server.py is only a partial fix
to make it so that bots that don't use third party config
files won't crash. That program needs an overhaul, anyway.
2017-11-28 10:52:13 -08:00
Steve Howell
57c90ddca0
refactor: Extract display_config_file_errors().
...
This will be useful for handling errors with third party
config files.
2017-11-28 10:52:13 -08:00
Steve Howell
8a15452525
bots: Require bots_details in ExternalBotHandler.
...
This parameter was defaulting to a dictionary, which is
a classic Python pitfall.
2017-11-28 10:52:13 -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
Eeshan Garg
50b5ec0f49
packages: Release 0.3.8 for all PyPI packages.
2017-11-27 23:34:38 -03:30
Robert Hönig
a75f1abc60
zulip_bots: Add -c shortcut for --config-file for zulip-run-bots.
2017-11-27 16:45:37 +01:00
Robert Hönig
5894ce131f
README.md: Fix typo.
2017-11-27 16:45:19 +01:00
Robert Hönig
ea6ddb2312
zulip_bots: Only cache storage.get(). Don't cache put().
2017-11-24 10:44:34 -08:00
derAnfaenger
c264f7ef12
provisioning: Enhance warning for Python 2.7.
...
Color-highlight the warning. Use print instead
of warnings.warn (this omits unnecessary debug info).
2017-11-23 15:20:34 -08:00
derAnfaenger
819d5f6ebe
provisioning: Fix real and venv Python version mixup.
2017-11-23 15:20:34 -08:00
Steve Howell
a32446f557
Report client.get_profile() errors nicely (e.g. API key).
...
This patch is particularly useful in the scenario that your
API key is wrong or out of date, but it's targeted more
generally at any error that `client.get_profile()` reports.
2017-11-22 11:15:00 -08:00