Eeshan Garg
072d43b7c3
tools/release_packages: Stop generating sdists.
...
Now that we do not use MANIFEST.in for zulip_bots, it doesn't
make sense to distribute sdists, because sdists don't pick up
data files specified in the package_data argument to setup().
Also, it isn't a huge deal if we don't distribute sdists for our
packages. Most PyPI projects only release wheels and pip will also
use wheels if available. So, this made sense!
2018-01-08 21:17:28 -03:30
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
neiljp (Neil Pilgrim)
2366b22405
Tools: Update tools/run-mypy to default to strict-optional.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
d3220eefe7
Jabber: Report where Zulip config not found, clarifying typing.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
b5c3442b57
mypy: Remove explicit typing & add assertions in jabber backend.
...
Usage indicates set_jabber_client must be called before using
JabberToZulipBot, so assertions express intent & satisfy mypy.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
afee6d706f
mypy: Assert Zulip.[api_key|email] are not None, satisfying use in Zephyr.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
aa718da3e1
Zephyr: For correctness & mypy, res.get('result') -> res['result'].
...
Also correct nearby error message (subscribing to -> receiving).
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
02d9ba8edd
mypy: Add cast for zephyr_mirror_backend logger variable.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
466f5a7167
mypy: Amend zephyr mirror annotations for strict-optional.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
2b172e08c7
mypy: Correct SVN integration & satisfy strict-optional typing.
...
The commit_notice_destination return value was previously not
checked against None, which indicates no message should be sent.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
9502e0eb9a
hg integration: Use explicit sys.exit.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
55df1886cc
mypy: Amend hg integration to simplify error handling/typing.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
d26e44ebb2
mypy: Add client_cert assertion & amend annotation in Zulip API.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
13bf6f7262
mypy: Add non-None session assertion in Zulip API.
2018-01-08 15:39:03 -05:00
neiljp (Neil Pilgrim)
2a2c8ae25f
API: Amend call_on_each_event error handling to not use .get().
...
mypy with strict-optional led to examination of res.get('result')
calls potentially raising TypeError ('error' in None).
Server code indicates this is safe, and other nearby code assumes
presence of fields in 'res' also.
2018-01-08 15:39:03 -05:00
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
06c5904347
Add 'mock' requirement for zulip and zulip_botserver.
...
These packages depend on mock. Previously, that dependency
was satisfied "by chance" because zulip_bots happened to
install 'mock'.
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
Steve Howell
2827b59b8b
gitignore: Allow "lib" directory.
...
We use "lib" as a common abbreviation in our own source.
2018-01-02 16:03:24 -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)
438f711bb7
mypy: Amend typing of botserver test lib for 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