neiljp (Neil Pilgrim)
0ea49c96ed
bot tests: import patch in incrementor & monkeytestit as in other tests.
...
This makes the code more compact and consistent.
2018-06-11 08:16:43 -04:00
neiljp (Neil Pilgrim)
cd76a3cf5a
mypy: Improve typing of dialogflow and salesforce tests.
2018-06-11 08:16:43 -04:00
neiljp (Neil Pilgrim)
509991f26f
bot tests: Remove unnecessary imports.
2018-06-11 08:16:43 -04:00
neiljp (Neil Pilgrim)
031510410b
xkcd tests: Use consistent imports.
2018-06-11 08:16:43 -04:00
neiljp (Neil Pilgrim)
5d211b0c84
monkeytestit tests: Use unittest.skipIf to disable tests on python < 3.5.
2018-06-11 08:16:43 -04:00
neiljp (Neil Pilgrim)
4900099763
merels test: Rename test & improve style.
2018-06-11 08:16:43 -04:00
neiljp (Neil Pilgrim)
6cdb83ce72
bot tests: Adjust TestCase inheritance to avoid need to skip/filter.
...
Previously the test-bots script filtered out base-class tests from
BotTestCase. With this change, BotTestCase continues to inherit from
unittest.TestCase, but the default test_* methods previously in this
class are now in a new DefaultTests class, which does not. Instead, each
bot needs to inherit from BotTestCase and DefaultTests *explicitly*.
This avoids the need to filter out the base-class tests, which
simplifies the test-bots script, and may ease any migration to eg.
pytest.
The DefaultTests class does require some non-implemented methods which
BotTestCase provides.
2018-06-09 12:49:49 -04:00
Eeshan Garg
c636a5ac49
pypi: Release 0.5.0.
2018-06-07 12:05:18 -02:30
Eeshan Garg
26bd90b260
zulip_bots: Display neat error message for missing bot dependencies.
...
We just moved the logic for installing bot dependencies from setup.py
to tools/provision. So bot dependencies are not automatically installed
anymore as a part of the base package. Now, if there is an import error
caused by missing dependency, we display a neat error message asking
the user to provision bot dependencies.
2018-06-06 13:23:16 -07:00
Eeshan Garg
f69f7f41d0
zulip_bots/provision: Use subprocess and stop being --quiet.
...
The bot provisioning code was breaking due to pip.main not being
a function anymore. Also, I don't think we should pass the --quiet
option here. I felt it was good to have some visual information
about what deps were being installed, just in case if something
went wrong and there was a conflict, the user should be able to
see it.
2018-06-06 16:36:21 -02:30
novokrest
df428b4821
dropbox_share: Add tests to increase coverage.
...
Increase tests coverage to 100%.
2018-06-05 21:34:04 -07:00
novokrest
f808dfb2cc
dropbox_share: Remove unreachable elif
branch.
...
Remove unReachable `elif` branch from `dbx_command`
method with checking whether the command is equal
to `help` because this check is performed
at the beginning of the method.
2018-06-05 21:34:04 -07:00
Eeshan Garg
e7e9059cb8
zulip_bots: Move installation of bot deps to tools/provision.
...
A lot of these bot dependencies are pretty hefty and shouldn't be
installed as part of the zulip_bots package. So the installation of
these belongs in tools/provision, not in setup.py.
2018-06-04 20:01:53 -02:30
Eeshan Garg
246f065877
zulip_bots: Remove unnecessary requirements.txt files in /bots.
...
A lot of these were either empty or required 'requests', which
is already installed as part of the main 'zulip' package.
2018-06-04 19:59:59 -02:30
Robert Hönig
60c3919deb
bot tests: Allow raw responses in fixtures.
...
Previously, the responses set in bot test fixtures
where handled as JSON objects. This works fine for
most bot tests, because most of the APIs that bots
are calling return a JSON-formatted response object.
However, some, like Trello, do return raw data.
This hasn't been noticed so far, because the respective
Trello test needed internet access. Tests shouldn't
need internet access.
This commit makes that Trello test use a fixture. To
work properly, it also adds a way to make http_mock_config
parse the response object as raw data.
This can now be done by modifying the "is_raw_response"
property in a newly introduced "meta" object that can
be used to specify how a fixture should be handled.
2018-06-04 10:13:38 -07:00
Rhea Parekh
e638cdd4a9
bots: Add proper error handling for trivia bot.
2018-06-04 06:51:35 -04:00
Rhea Parekh
f276e46890
bots: Add tests for trivia_quiz bot
2018-06-04 05:59:10 -04:00
Steve Howell
9096dd2918
[wip] Create trivia quiz bot.
2018-06-04 05:59:10 -04:00
Steve Howell
93661db0d1
bots: Print send_message errors for dev debugging.
2018-06-04 05:59:10 -04:00
Steve Howell
fcd39204a9
bots: Pass through widget_content if passed in.
2018-06-04 05:59:10 -04:00
novokrest
488dcb4219
beeminder: Check auth_token in initialize
by idempotent request.
...
Change checking auth_token in `initialize` method by calling
request to get user's information instead of calling POST request
which modifies progress of user's goal.
2018-06-03 22:17:01 -07:00
novokrest
229f62a483
lib: Read bot's config file by ConfigParser.read_file
method.
...
This was introduced in the refactor in
a8665aaac8
.
The correct function taking an open file handle is read_file, not read().
Fixes #414 .
2018-06-02 10:32:40 -07:00
novokrest
dc83d9e468
beeminder: Remove duplicated try-except in initialize
method.
...
Remove duplicated try-except in `initialize` method because
ConnectionError is already catched in `get_beeminder_response` method.
2018-06-02 12:01:20 +03:00
novokrest
f3d2d3a01e
beeminder: Add tests for valid messages.
2018-06-02 12:01:20 +03:00
novokrest
d68a19f2dc
beeminder: Rename test test_normal
to test_message_with_value_and_comment
.
2018-06-02 11:10:41 +03:00
neiljp (Neil Pilgrim)
2b86b9f488
xkcd bot: Update bot & tests to use bot identity functionality.
2018-05-31 06:10:50 -04:00
neiljp (Neil Pilgrim)
f15356c4c8
wikipedia bot: Update bot & tests to use bot identity functionality.
2018-05-31 06:10:50 -04:00
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