neiljp (Neil Pilgrim)
56c59d915a
bots: Support determining bot runtime identity.
...
This improves the ability of a bot to specify how to mention it,
which varies at run-time depending upon the identity used to run it;
this is commonly used in many bot help commands.
2018-05-31 06:10:50 -04:00
neiljp (Neil Pilgrim)
4c8d86c1d9
bot lib tests: Move tests of bot library to tests/.
...
This makes it clearer which files are for writing bot tests
vs tests of the infrastructure.
2018-05-30 18:29:47 -07:00
neiljp (Neil Pilgrim)
efe5b04374
salesforce: Minor improvements; imports & types.
2018-05-30 07:11:16 -04:00
neiljp (Neil Pilgrim)
8f0b9adb70
trello: Remove extra newlines & spaces in code and tests.
2018-05-30 07:11:16 -04:00
neiljp (Neil Pilgrim)
4f224b5dbc
trello: Simplify message & response handling.
2018-05-30 07:11:16 -04:00
neiljp (Neil Pilgrim)
8e1d4f524b
baremetrics: Remove extra newlines & spaces in code and tests.
2018-05-30 07:11:16 -04:00
neiljp (Neil Pilgrim)
b51b6d0361
baremetrics: Simplify response generation.
2018-05-30 07:11:16 -04:00
neiljp (Neil Pilgrim)
016011437e
baremetrics: Simplify core handler code.
2018-05-30 07:11:16 -04:00
neiljp (Neil Pilgrim)
ce4404b9db
idonethis: Remove extra newlines in code & tests.
...
Also rename list_steams -> list_teams.
2018-05-30 07:11:16 -04:00
neiljp (Neil Pilgrim)
9b782e8357
idonethis: Improve typing & note unused function.
2018-05-30 07:11:16 -04:00
neiljp (Neil Pilgrim)
dbe44a2774
idonethis: Remove unreachable code & simplify response generation.
...
Also remove unnecessary import.
2018-05-30 07:11:16 -04:00
neiljp (Neil Pilgrim)
4e19a7716d
mypy: Avoid 'Any' for message in bots.
...
Also remove a few unnecessary typing imports.
2018-05-30 07:11:16 -04:00
Robert Hönig
6249df0ad7
bots: Don't run tests for monkeytestit bot.
...
The monkeytestit tests fail on Python3.4 because
one of their dependencies only works on Python3.5.
This is a hotfix to make builds pass again. We'll
want to find a proper way of Python version conditional
bot test execution.
2018-05-28 13:43:15 +02:00
Robert Hönig
47c879407c
monkeytestit bot tests: Import bot class inside test.
...
We need to import the bot class inside the tests, so
we are able to temporarily resolve problems with the
bot class by simply skipping the test. It also makes
the code look nicer.
2018-05-28 13:43:15 +02:00
neiljp (Neil Pilgrim)
4364dc7599
chess: Rename to chessbot to avoid naming conflict with engine.
2018-05-26 16:12:25 -07:00
neiljp (Neil Pilgrim)
9e5c929c86
witai: Add __init__.py and fix tests.
2018-05-26 14:36:26 -07:00
neiljp (Neil Pilgrim)
17ad4f61ab
twitpost: Add __init__.py and requirements.txt.
2018-05-26 14:36:26 -07:00
neiljp (Neil Pilgrim)
937de114a7
bots: Add 3 missing __init__.py files.
...
Tests run ok for these bots.
2018-05-26 14:36:26 -07:00
neiljp (Neil Pilgrim)
668a4ed634
game_of_fifteen: Use consistent naming & simplify imports.
2018-05-26 14:36:26 -07:00
Eeshan Garg
00f22e175c
pypi: Release 0.4.7.
2018-05-21 20:02:43 -02:30
Sivagiri Visakan
4183f4c0c5
zulip-terminal: Add bot's directory to sys.path.
2018-05-20 07:07:43 -04:00
dkvasov
0040182ec4
zulip_bots: Obey pep8, python3 type annotations.
2018-05-17 17:49:16 +03:00
dkvasov
a06fb98f21
zulip_bots and zulip_botserver: Extract common function.
2018-05-17 17:35:09 +03:00
dkvasov
85c6b5a1c7
zulip_bots: Use python3 type annotations.
2018-05-17 16:57:16 +03:00
dkvasov
f6b981b8d5
zulip_bots: Python3 style for types, obey pep8.
2018-05-16 10:50:43 -07:00
dkvasov
ce95f9f4d5
zulip_bots and zulip_botserver: Remove unused imports.
2018-05-16 10:50:43 -07:00
dkvasov
a8665aaac8
zulip_botserver: Add option to set third party configs for bots.
2018-05-16 10:50:43 -07:00
dkvasov
f76287412c
zulip_bots: Get rid of unused imports and use python3 style for type annotations.
2018-05-16 08:15:38 -07:00
dkvasov
be5a7a8c4a
zulip_bots: Clean gyphy bot code.
2018-05-16 08:15:36 -07:00
novokrest
65ebd6e595
yoda: Pass API query parameters as params
dict in requests.get().
2018-05-15 09:12:40 -07:00
novokrest
5ad5e11587
link_shortener: Allow #% characters for shortening URL.
2018-05-15 09:12:40 -07:00
novokrest
bccbda49f2
wikipedia: Pass API query parameters as params
dict in requests.get().
2018-05-15 09:12:40 -07:00
novokrest
8654ce53db
weather: Pass API query parameters as params
dict in requests.get().
2018-05-15 09:12:40 -07:00
novokrest
927fcaa521
susi: Pass API query parameters as params
dict in requests.get().
2018-05-15 09:12:40 -07:00
novokrest
86ffbb2b4a
stack_overflow: Pass API query parameters as params
dict in requests.get().
2018-05-15 09:12:40 -07:00
novokrest
a38917723a
idonethis: Pass API query parameters as params
dict in requests methods.
2018-05-15 09:12:40 -07:00
novokrest
5992050d82
run: Add bot handler's parent dir to the python sys path.
...
Fixes #356
2018-05-09 09:01:17 -07:00
Константин С. Новокрещенов
d7d2f6bbd6
lib: Make StateHandler lazy.
...
Change StateHandler implementation to the following:
- do not fetch state in __init__();
- fetch every key only once on demand and cache it.
Fixes #359
2018-05-08 11:56:26 -07:00
novokrest
e81942421e
link_shortener: Print help
when no links found.
2018-05-04 05:09:07 +05:30
novokrest
3db070b99e
link_shortener: Migrate from goo.gl to bit.ly service.
...
Shorten URLs by using bit.ly service instead of goo.gl service.
Fixes #367
2018-05-04 05:09:07 +05:30
Eeshan Garg
f4bdb059db
pypi: Release version 0.4.6.
...
This includes a critical bug fix for call_on_each_event.
2018-04-27 01:43:42 -02:30
Eeshan Garg
0f448579ab
pypi: Release 0.4.5.
...
We just made a minor change to our Git integration, so that warranted
a new release so I could update the docs on the zulip/zulip repo.
2018-04-23 18:50:56 -02:30
Eeshan Garg
2d46445ab5
pypi: Release version 0.4.4.
...
This includes some important changes after the release of pip 10.
2018-04-16 17:05:27 -02:30
Puneeth Chaganti
3c53c36c21
tools: Call pip from a sub-process instead of importing it
...
The pip documentation recommends calling pip using a subprocess, instead of
importing it and using it's internal API. The API of pip==10.0.0 is different
from that of older versions, and provisioning is broken with this version.
[pip docs]:
https://pip.pypa.io/en/stable/user_guide/#using-pip-from-your-program
Closes #370
2018-04-16 12:16:23 -07:00
neiljp (Neil Pilgrim)
55aff6f64b
mypy: Improve typing of bots & API; enforce no_implicit_optional.
2018-04-06 13:45:11 -04:00
Ricky
dad7eddcc6
beeminder bot: Add beeminder bot.
2018-04-04 14:23:32 -04:00
Eeshan Garg
60e02ed979
pypi: Release version 0.4.3.
...
Making this release due to recent changes made to the Trello script.
2018-04-03 22:05:39 -02:30
Eeshan Garg
7e360c244c
pypa: Release version 0.4.2.
2018-03-31 17:19:23 -02:30
Tarun Kumar
8ef9b70191
Add game of fifteen bot.
2018-03-25 12:53:15 -04:00
Tarun Kumar
b8d4f0b869
Enforce 'rules' command in existing games.
...
Add 'rules' command in connect_four.py.
Add 'rules' command in tictactoe.py.
Add 'rules' command in game_handler_bot.py.
2018-03-25 12:53:15 -04:00
Tarun Kumar
ee611d935e
game_handler: Support single player games and enforce 'rules' command.
...
Update tests for test_connect_four.py and test_game_handler_bot.py.
2018-03-25 12:53:15 -04:00
Steve Howell
0f45f28696
run.py: Remove unused name_and_path_match().
2018-03-23 15:31:14 -04:00
Anupam-dagar
a9a988f726
Add twitpost bot.
2018-03-22 15:51:40 -04:00
Ricky
b6afa030c5
bots/flock: Add flock bot.
2018-03-21 09:08:44 -04:00
Ricky
bb4c9c9bdb
game_handler: Use avatars instead of emails in messages.
...
Fixes #336
2018-03-21 08:31:46 -04:00
Ricky
15cc35cb82
connectfour/controller: Prevent list access by negative indexing.
...
Currently, if a user does 'move 0', he moves to column 6(last column)
in connect_four which is unwanted behaviour and happening due to
list getting accessed through negative index (-1).
Added a check for that in controller.py file.
Fixes #343
2018-03-21 08:30:32 -04:00
Dhruv Thakker
9c5eaa2f1b
stack_overflow : Create StackOverflow bot.
...
(Use stackoverflow APIs to answer queries.)
2018-03-11 14:25:03 -04:00
Ricky
fb228f13ff
bots/giphy: Support bot response to empty message.
2018-03-10 06:35:31 -05:00
Dhruv Thakker
38d00e9a1e
connect_four : Add shorthand moves.
2018-03-10 06:33:43 -05:00
Dhruv Thakker
9fe64b85d0
tic_tac_toe : Add shorthand moves.
2018-03-10 06:33:43 -05:00
Dhruv Thakker
68fcb3c8e1
github_detail_bot: Add tests for bad requests.
...
(This module now has 100% coverage.)
2018-03-08 08:27:32 -05:00
Dhruv Thakker
8e978a0845
link_shortner bot : Add test for bad requests.
...
(This module now has 100% coverage.)
2018-03-08 08:27:32 -05:00
Dhruv Thakker
582b16861e
baremetrics bot : Add tests for bad requests.
...
(This module now has 100% coverage.)
2018-03-08 08:27:32 -05:00
Dhruv Thakker
9ed47266aa
test_lib : Add helper for connection test
2018-03-08 08:27:32 -05:00
Alena Volkova
ea8393511a
interactive bots: Create Front bot.
2018-03-08 07:38:35 -05:00
Alena Volkova
6c0151ab67
bot testing: Allow mocking PATCH HTTP requests.
2018-03-08 07:38:35 -05:00
amanagr
243f7bbe5d
Port merels to game_handler.
...
Fixes #305
2018-02-27 08:28:40 -05:00
amanagr
b0b372c95d
Support game_handler
to allow consecutive turns for the same player.
...
Add a SamePlayerMove exception that allows giving consecutive turns to the
same player.
2018-02-27 08:28:40 -05:00
amanagr
5fda59dde0
Susi AI Bot: Create a susi ai bot.
...
This bot uses SUSI_SERVER API to get response.
2018-02-22 09:36:25 -05:00
Steve Howell
9175c451f6
tests: Test handling of bad moves in connect four.
...
This commit tests that we throw a BadMoveException if you
try to move into a "full" column in connect four. This gets
the controller up to 100% coverage.
2018-02-21 08:06:28 -05:00
amanagr
6df10749fb
Make game_handler
support starting a game with a range of playeres.
...
Allow a game to start even if `max_players` is not reached.
Adding a new command `play game` to start a game if the
number of players is between max and min no. of players.
Make tests pass with the new change.
2018-02-20 16:08:34 -05:00
Viraat Chandra
b7b083f094
interactive bots: Add Trello Interactive Bot.
2018-02-16 09:54:55 -05:00
AmAnAgr
5b0a444ab8
Dropbox Bot: Support sharing, searching and primary file operations.
2018-02-16 09:42:03 -05:00
AmAnAgr
47c6bbe787
virtual_fs : Get test coverage to 100%.
2018-02-15 10:06:43 +01:00
AmAnAgr
03d4bafa26
Improve test_coverage for github-detail bot.
2018-02-15 10:06:43 +01:00
Robert Hönig
192e9e101d
bots: Add magic method validate_config().
...
This method allows bots to validate their config info
in a standardized way. Adding the method to a bot is
optional, but recommended for bots with config options
that can be invalid, like api keys. The giphy bot serves
as an example.
The primary reason behind this is to allow the zulip
backend to validate config data for embedded bots. The
backend does not have a permanent bot class instance, so
validate_config() must be a static method.
2018-02-13 11:02:17 -08:00
Robert Hönig
7dcec207eb
lib_tests.py: Set realistic spec for BotHandler mock.
2018-02-13 11:02:17 -08:00
Eeshan Garg
f74c94ba04
pypi_packaging: Release version 0.4.1.
2018-02-07 01:03:49 -03:30
Robert Hönig
bda4b74c50
mention bot: Add fixture for invalid api key test.
...
This makes the mention bot tests no longer rely on an
internet connection to succeed.
2018-02-06 15:27:45 +01:00
Robert Hönig
4ed31eb6fd
baremetrics bot: Add fixture for invalid api key test.
...
This makes the baremetrics bot tests no longer rely on an
internet connection to succeed.
2018-02-06 15:27:45 +01:00
AmAnAgr
acf45ea4ef
converter: Get test coverage to 100%
...
Fixes #122
2018-02-01 16:13:54 -05:00
Viraat Chandra
d9fca54998
bots: Fix test failure for Baremetrics bot.
2018-01-24 11:19:44 +01:00
fredfishgames
3cbb16722d
zulip_bots: Migrate tictactoe bot to new game_handler.
2018-01-22 11:30:31 -05:00
fredfishgames
3a438cafa9
zulip_bots: Migrate connect_four bot to new game_handler.
2018-01-22 11:30:31 -05:00
fredfishgames
ec5be8fc7e
zulip_bots: Consolidate game-playing bots.
2018-01-22 11:30:31 -05:00
Viraat Chandra
2f429fcb86
zulip_bots: Add test for create-plan
command of Baremetrics bot.
2018-01-16 12:24:26 -05:00
Viraat Chandra
94f82dfe4c
zulip_bots: Add feature create-plan
to Baremetrics bot.
2018-01-16 12:24:26 -05:00
Viraat Chandra
e32336eb6e
Improve test coverage for Yoda bot.
2018-01-12 07:35:38 -05:00
Viraat Chandra
fd97ffce77
Improve test coverage for Mention bot.
2018-01-12 07:35:38 -05:00
Viraat Chandra
bffb8d0e16
Improve test coverage for Baremetrics bot.
2018-01-12 07:35:38 -05:00
rht
da4b830571
bots: Init interrealm bridge bot.
2018-01-12 07:15:23 -05:00
Steve Howell
480c953b98
virtual_fs: Add test_sample_conversation().
2018-01-10 16:54:05 -05:00
Steve Howell
5be72288db
virtual_fs: Make sample_conversation() a list of tuples.
...
It's nice to see the requests and replies as separate strings
when you're reading the code.
2018-01-10 16:54:05 -05:00
Steve Howell
f8d51fc9d1
virtual_fs: Remove help commands from the sample conversation.
2018-01-10 16:54:05 -05:00
Steve Howell
820e949faf
virtual_fs: Remove fs_sample_conversation().
...
We already have "help" for specific commands, so the
fs_sample_conversation() feature was mostly redundant.
2018-01-10 16:54:05 -05:00
Steve Howell
4b9e3d655f
virtuals_fs: Add test for sample_conversation.
2018-01-10 16:54:05 -05:00
Steve Howell
917bd82019
bot tests: Extract get_reply_dict() test helper.
2018-01-10 16:54:05 -05:00
Steve Howell
88f6ddefb2
virtual_fs: Fix bug with "rmdir" command.
...
In python3, if you removed a directory that files within it,
you would get an error saying "dictionary changed size
during iteration."
The fix is to list-ify the keys before iterating over them (and
popping keys from the dictionary).
2018-01-09 09:21:30 -05:00
Eeshan Garg
e20b754498
zulip_bots: Use package_data instead of MANIFEST.in.
...
This commit removes generate_manifest.py and package data files
are now included using the package_data kwarg to setup().
This is because, in certain situations, MANIFEST.in is a bit
finicky. For instance installing a package using:
python setup.py install
doesn't include files specified in MANIFEST.in, while using
pip install ./zulip_bots
does. package_data doesn't pose this problem, ergo it's better
for us.
2018-01-08 18:28:50 -03:30
Xavier Cooney
1de704394a
interactive bots: Create idonethis bot.
2018-01-08 10:46:52 +01:00
Eeshan Garg
3030c73060
packages: Release 0.4.0.
2018-01-06 18:28:35 -03:30
Robert Hönig
c36b8d1199
packaging: Include bot .conf files in zulip_bots.
2018-01-06 16:58:50 -03:30
Robert Hönig
a4facb4249
Rename followup.config to followup.conf.
2018-01-06 16:58:50 -03:30
Robert Hönig
78d7f9694e
zulip_bots: Move six imports.
2018-01-06 16:39:52 +01:00
Robert Hönig
0893a5f61e
zulip_bots setup.py: Install deps from the bots' requirements.txt files.
...
This makes it straightforward to add dependencies for a bot,
and works around https://github.com/pypa/pip/issues/4957 .
2018-01-06 16:39:52 +01:00
Robert Hönig
56a9cbe5af
Make bot provisioning script install dependencies globally.
...
Previously, a bot's dependencies were installed within the
bot's directoy, which is unconventional and doesn't work with tests.
2018-01-06 16:39:52 +01:00
Robert Hönig
e48a958780
request_test_lib.py: Move from mock to unittest.mock.
...
This commit changes 'Mock.assert_called()' to 'assert Mock.called'.
This is needed because in unittest.mock, assert_called() is only
supported in Python >=3.6.
2018-01-06 16:39:52 +01:00
Robert Hönig
b46a079804
zulip_bots: Move from mock to unittest.mock in most files.
2018-01-06 16:39:52 +01:00
Robert Hönig
ae76aa8f72
bots: Add requirements not captured by pipreqs.
2018-01-06 16:39:52 +01:00
Robert Hönig
fd51735bfc
Add requirements.txt for each bot.
2018-01-06 16:39:52 +01:00
Robert Hönig
f4ee3d4009
Fix mypy errors.
2018-01-04 17:19:02 +01:00
Robert Hönig
eb02e08fb7
yoda bot: Just import the requests module.
...
This removes the unconventional check for the
existence of the requests module in the yoda
bot to bring it in line with other bots.
2018-01-04 10:34:16 -05:00
Robert Hönig
f6f09202ac
baremetrics bot: Quit on invalid API key.
2018-01-04 10:34:16 -05:00
Robert Hönig
c86e62a06a
link_shortener bot: Quit on invalid API key.
2018-01-04 10:34:16 -05:00
Robert Hönig
bed2c6c9ea
mention bot: Quit on invalid API key.
2018-01-04 10:34:16 -05:00
Robert Hönig
57342072dc
salesforce bot: Quit on invalid API key.
2018-01-04 10:34:16 -05:00
Robert Hönig
8417dbf154
weather bot: Quit bot on invalid API key.
2018-01-04 10:34:16 -05:00
Robert Hönig
28120784ff
google_translate bot: Add test for invalid api key.
2018-01-04 10:34:16 -05:00
Robert Hönig
d11d31d795
google_translate bot: Simplify API key check.
2018-01-04 10:34:16 -05:00
Robert Hönig
b19c0f6e29
giphy bot: Update 403 fixture.
2018-01-04 10:34:16 -05:00
Robert Hönig
5d4a352e2c
giphy bot: Fix check for invalid API key.
...
The previous check didn't notice invalid API keys.
This commit also makes giphy quit on any connectivity
issues during initialization.
2018-01-04 10:34:16 -05:00
Robert Hönig
ba530e2341
giphy bot: Use bot_handler.quit().
2018-01-04 10:34:16 -05:00
YJDave
299d04080e
doc: Remove markdown includes {!running-bot.md!} from bot docs.
2018-01-03 09:05:54 -05:00
Privisus
08bd395658
interactive bots: Create monkeytest.it bot.
2018-01-02 17:14:13 -03:30
neiljp (Neil Pilgrim)
1fd4dfc86e
bot testing: Amend StubBotHandler.get_config_info to return {}.
...
This ensures the return type matches the annotated type, which
matches the return type of ExternalBotHandler.
2018-01-02 14:05:33 -05:00
neiljp (Neil Pilgrim)
9853d85fb7
bot testing: Improve checking of fixtures in mock_http_conversation.
...
This ensures required fields are present in the fixture dict/json,
improving testing & allowing file to pass mypy with strict-optional.
2018-01-02 14:05:33 -05:00
neiljp (Neil Pilgrim)
88ae9d04ee
mypy: Amend import_module_from_source, to pass with strict-optional.
...
Including additional error-reporting.
2018-01-02 14:05:33 -05:00
neiljp (Neil Pilgrim)
486f1d2f48
mypy: Improve typing of zulip_bots/lib.py, to pass with strict-optional.
2018-01-02 14:05:33 -05:00
neiljp (Neil Pilgrim)
6489f78edd
mypy: Improve test_dialogflow.py, to pass with strict-optional.
2018-01-02 14:05:33 -05:00
neiljp (Neil Pilgrim)
1928841256
mypy: Amend chess bot, to pass with strict-optional.
2018-01-02 14:05:33 -05:00
neiljp (Neil Pilgrim)
6cd09e7396
mypy: Amend youtube bot, to pass with strict-optional.
...
Including switch to Optional from Union[None, T] for consistency.
2018-01-02 14:05:33 -05:00
neiljp (Neil Pilgrim)
b4bbd83335
mypy: Amend witai bot, to pass with strict-optional.
...
Including additional error-handling, associated with None-checks.
2018-01-02 14:05:33 -05:00
fredfishgames
08bfe9d8c7
interactive bots: Create Salesforce bot.
2018-01-02 14:00:41 -05:00
Viraat Chandra
d4500a3b7a
zulip_bots: Add test for get_mentions
method of Mention bot.
2018-01-02 10:56:59 -05:00
Viraat Chandra
48e365195e
zulip_bots: Add test for get_alert_id
method of Mention bot.
2018-01-02 10:56:59 -05:00
Viraat Chandra
3d05ed53e5
Parse data
field in mock http response fixture.
2018-01-02 10:56:59 -05:00
Viraat Chandra
4d3e255e6d
zulip_bots: Add test for get_account_id
method of Mention bot.
2018-01-02 10:56:59 -05:00
Viraat Chandra
67b3529140
zulip_bots: Cleaned up test code for Mention bot.
2018-01-02 10:56:59 -05:00
Viraat Chandra
606b7f8adf
zulip_bots: Add better test for list-subscriptions
command of Baremetrics bot.
2017-12-31 10:16:48 -05:00
Viraat Chandra
e2a9a229a3
zulip_bots: Add better test for list-customers
command of Baremetrics bot.
2017-12-31 10:16:48 -05:00
Viraat Chandra
777f6c55f8
zulip_bots: Add better test for list-plans
command of Baremetrics bot.
2017-12-31 10:16:48 -05:00
Robert Hönig
9bf64c0c21
youtube bot: Replace sys.exit() with bot_handler.quit().
2017-12-31 07:12:19 -05:00
Robert Hönig
ff65666ac8
Add quit() function to ExternalBotHandler.
...
bot_handler.quit() should be used whenever a bot
wishes to terminate. This allows a flexible reaction
suited to the bot's environment: For external bots,
sys.exit() will be called, whereas for embedded bots,
different code can be executed.
2017-12-31 07:12:19 -05:00
Viraat Chandra
9e73ddd292
zulip_bots: Check API key on initialization for Weather bot.
2017-12-30 17:59:23 +01:00
Viraat Chandra
524804fd2c
zulip_bots: Remove comments from config file in Mention Bot.
2017-12-30 17:51:10 +01:00
Viraat Chandra
5ccbe6e6bd
zulip_bots: Reformat code for Mention Bot file mention.py
.
2017-12-30 17:51:10 +01:00
Viraat Chandra
adbda6d2f2
zulip_bots: Check Access Token on initialization for Mention bot.
2017-12-30 17:51:10 +01:00
Viraat Chandra
9ac0628452
zulip_bots: Add link to get API Key in Link Shortener Bot Documentation.
2017-12-30 17:41:31 +01:00
Viraat Chandra
6a089f2217
zulip_bots: Fixed failing tests for Link Shortener Bot.
...
This uses a custom test_bot_responds_to_empty_message()
implementation for the link_shortener bot, because it requires
mocking config info.
2017-12-30 17:41:31 +01:00
Viraat Chandra
db0e88a1b9
zulip_bots: Check API key on initialization for link_shortener bot.
2017-12-30 17:41:31 +01:00