Steve Howell
297f086b6a
tests: Add coverage for service bot events.
...
We test the "skipping" logic a couple different ways.
2018-08-13 10:37:35 -07:00
Steve Howell
90844700fb
tests: Test for unexpected bot types.
2018-08-13 10:37:35 -07:00
Tim Abbott
ec90322e5d
bots: Fix behavior for bots mentioned in PMs.
...
We've for a long time had the behavior that a bot mentioned in a
stream message receives the notification, regardless of whether the
bot was actually subscribed to the stream.
Apparently, this behavior also triggered if you mentioned a bot in a
private message (i.e. the bot would be delievered the private message
and would probably respond unhelpfully in a new group private message
thread with the PMs original recipients plus the bot).
The fix for this bug is simple: To exclude this feature for private
messages.
2018-06-03 22:29:15 -07:00
Robert Hönig
323284e0b6
backend: Call real endpoint in create_test_bot().
...
This allows tests to be more realistical and to
directly test payload added to add_bot_backend().
2018-02-09 12:30:24 -08:00
Robert Hönig
c745d1901c
bot_config.py: Add function for loading config file templates.
...
load_bot_config_template(bot) parses the <bot>.conf
template file, which can be found in the zulip_bots
package for each bot. It then returns the INI content
of that file as a dict.
2018-01-07 20:05:52 +01:00
Robert Hönig
ed7208fd6e
Make EmbeddedBotHandler.get_config_info comply with ExternalBotHandler.
2018-01-07 20:05:52 +01:00
Robert Hönig
9cc059f4aa
bot_config.py: Raise exception when getting config data from bot without config entries.
2018-01-07 20:05:52 +01:00
Robert Hönig
1e66bd1c02
tests: Add newlines to test_service_bot_system.test_internal_endpoint().
2017-11-27 21:05:34 -08:00
derAnfaenger
c8a5ae753c
embedded bots: Consistently use 'storage' instead of 'state.'
2017-11-27 21:05:34 -08:00
Robert Hönig
0e0a8a2b14
queue processor tests: Call consume by default.
...
This significantly improves the API for queue_json_publish to not be
overly focused on what the behavior of this function should be in our
unit tests.
2017-11-26 11:45:34 -08:00
Tim Abbott
6968b540c8
mypy: Remove type: ignores that are unnecessary with new mypy.
...
Mostly these can be removed because the broken LXML stubs were removed
from typeshed in https://github.com/python/typeshed/issues/525 .
2017-11-25 10:06:28 -08:00
derAnfaenger
e526d0c144
embedded bots: Add views to access state.
2017-11-21 21:10:39 -08:00
derAnfaenger
cbadd3d430
embedded bots: Simplify StateError exception messages.
2017-11-21 21:10:12 -08:00
rht
6c28c7e879
zerver/tests: Use python 3 syntax for typing.
2017-11-18 15:35:57 -08:00
derAnfaenger
395f1e9270
embedded bots: Add database config storage.
...
Storage limititations are only set on the value of
a config entry, since this is the only user-accessible
part of the schema. Keys are statically set by each
embedded bot.
2017-11-16 23:06:38 -08:00
rht
4f5b1c0a5a
zerver/tests: Use python 3 syntax for typing in most files.
2017-11-16 21:52:01 -08:00
derAnfaenger
25bf15a3c9
bots: Use non-generic exception for state key removal.
2017-11-10 18:56:26 -08:00
derAnfaenger
8fccf36246
bots: Wrap StateError exceptions around BotUserData exceptions.
2017-11-10 18:56:26 -08:00
derAnfaenger
d707e3bc1d
bots: Add USER_STATE_SIZE_LIMIT setting.
2017-11-10 18:56:26 -08:00
derAnfaenger
545c73c79e
bots: Rename StateHandlerError to StateError.
2017-11-10 18:54:54 -08:00
derAnfaenger
71372610e3
bots: Validate state size limit directly in set_bot_state().
2017-11-10 18:54:39 -08:00
derAnfaenger
6c543d1280
bots: Make StateHandler test more accurate.
2017-11-10 18:45:52 -08:00
derAnfaenger
2155b255d6
service bot tests: Remove bot stream subscription.
...
Since service bots react to all @-mentions, the
stream subscription was redundant.
2017-11-02 14:44:11 -07:00
Tim Abbott
c160c06f9c
bot_storage: Fix missing test coverage.
...
Apparently, we didn't have coverage on setting a second value for a
key.
2017-10-30 14:10:35 -07:00
Steve Howell
f264bbc7ca
tests: Fix send_message calls in test_service_bot_system.py.
2017-10-28 10:20:59 -07:00
Tim Abbott
fa55d7ed33
retry_event: Remove requirement of failed_tries being already there.
...
This fixes a bug where retries in the signups queue threw an exception.
2017-10-27 18:15:53 -07:00
Steve Howell
53dbcbe2a4
refactor: Handle service bot mentions earlier in the code.
...
We now find all (possibly) relevant service bots for a message
in the call to get_recipient_info. This allows us to eliminate
some code that would patch them after we rendered.
The get_service_bot_events() function will ignore any service
bots that weren't actually mentioned in the message (due to
backticks) or part of the active user ids.
2017-10-26 22:16:47 -07:00
derAnfaenger
17949adf11
embedded bots: Add StateHandler remove() function.
2017-10-26 14:49:50 -07:00
derAnfaenger
ce4ba9c178
bot services: Use call_consume_in_tests.
2017-10-25 15:56:12 -07:00
derAnfaenger
0d0c8fee7e
embedded bots: Migrate StateHandler API to use get and put.
...
This moves away from handling a StateHandler object like a dict
and gives it the methods get, put, and contains.
2017-10-25 15:39:28 -07:00
derAnfaenger
34e3eb8c67
embedded bots: Rename state and state_handler to storage.
2017-10-25 15:39:28 -07:00
derAnfaenger
cd600b8677
embedded bots: Add StateHandler marshaling functions.
2017-10-25 15:39:28 -07:00
derAnfaenger
2e51d39d69
embedded bots: Add StateHandler tests.
2017-10-19 13:09:23 -07:00
rht
26f5d9a32c
zerver/tests: Remove print_function.
2017-09-27 18:05:45 -07:00
Steve Howell
de0b47fd4e
Always notify service bots about stream mentions.
...
Before this change, we were only triggering service bots
for stream mentions when the bot was subscribed to the
stream.
2017-09-27 17:22:12 -07:00
rht
1e87a4b68c
zerver/tests: Remove absolute_import.
2017-09-27 10:00:39 -07:00
Steve Howell
b340b28055
Extract get_service_bot_events().
...
There are several reasons to extract this function:
* It's easy to unit test without extensive mocking.
* It will show up when we profile code.
* It is something that you can mostly ignore for
most messages.
The main reason to extract this, though, is that we are about
to do some fairly complex splicing of data for the use case
of mentioning service bots on streams they are not subscribed to,
and we want to localize the complexity.
2017-09-26 18:49:03 -07:00
Tim Abbott
eb720485c5
tests: Add and use new self.subscribe.
...
This new method cleans up the API for subscribing to something from a
test case.
2017-08-24 21:37:57 -07:00
Tim Abbott
80458945c7
tests: Remove unnecessary use of get_realm_by_email_domain.
...
That function was primarily intended for some limited registration
code paths, not the generic usage it was getting.
2017-08-24 20:22:56 -07:00
Elliott Jin
4907f24603
bots: Add additional service bot tests.
2017-05-25 15:00:51 -07:00
Elliott Jin
af49a23013
bots: Generalize service bot tests to also test embedded bots.
2017-05-25 15:00:51 -07:00
Elliott Jin
cd8c77bf91
bots: Clean up order and naming of service bot tests.
2017-05-25 15:00:51 -07:00
Elliott Jin
49adeee8c8
bots: Move service bot tests into separate file.
2017-05-25 15:00:51 -07:00