Commit graph

1628 commits

Author SHA1 Message Date
derAnfaenger 2f62507987 api: Add script to print path of examples directory.
Partially fixes #92.
2017-09-14 04:46:13 -07:00
derAnfaenger ae4bf8bbf4 zulip: Store examples in the package's directory. 2017-09-14 04:46:13 -07:00
derAnfaenger 54eac5e125 codecov: Adjust failure threshold.
The previous threshold was taken over from the zulip repo,
which contains much more LOC. The new threshold reflects the
size of the `python-zulip-api` repo.
2017-09-14 04:26:12 -07:00
derAnfaenger 59320f6b28 zulip: Explain use cases for generate_option_group() method. 2017-09-14 11:39:11 +02:00
derAnfaenger 631c64ca6c zulip: Move from simplejson to json.
This removes the simplejson dependency.
2017-09-14 02:26:56 -07:00
derAnfaenger 18157095c4 zulip_bots: Add unittests for run.py.
These are tests that assert the correct argument
parsing; the successful execution of bots is not verified.
2017-09-13 00:25:16 -07:00
derAnfaenger 20f01fec85 provision: Put venv activation path in quotes.
This makes the command work with Windows paths with spaces in them.
2017-09-12 16:48:37 +02:00
derAnfaenger 6aece20925 provision: Indent venv activation command. 2017-09-12 16:47:22 +02:00
derAnfaenger 3e1d9b17a4 zulip_bots: Import imp.load_source for Python < 3.5. 2017-09-12 05:21:00 -07:00
derAnfaenger ea105ffec5 tools: Add git utility scripts. 2017-09-12 02:54:10 -07:00
derAnfaenger d05e932968 log2zulip: Replace ujson with json. 2017-09-12 02:14:51 -07:00
derAnfaenger 7d1a56fb2b zulip_bot_output.py: Refactor script output.
This involves using the format() method for string
concatenation and splitting it into logical blocks.
2017-09-12 02:11:30 -07:00
derAnfaenger 517fe79e68 zulip_bot_output.py: Remove redundant get_config_info() definition. 2017-09-12 02:11:30 -07:00
derAnfaenger 438dbac12a zulip_bot_output.py: Make --path-to-bot argument positional.
This allows a user to exclusively enter a bot's name or a bot's
directory as the first and only positional argument. Therefore,
no complicated checks for multiple bot specifications are required
anymore.
Additionally, this cleans help messages and makes arguments more
accessible.
2017-09-12 02:11:30 -07:00
derAnfaenger 3a89b9f966 zulip_bot_output.py: Clear import statements. 2017-09-12 02:11:30 -07:00
derAnfaenger 2aa6201d47 zulip_bot_output.py: Rename options to args. 2017-09-12 02:11:30 -07:00
derAnfaenger c5ab72a50a zulip_bots run.py: Make --path-to-bot argument positional.
This allows a user to exclusively enter a bot's name or a bot's
directory as the first and only positional argument. Therefore,
no complicated checks for multiple bot specifications are required
anymore.
2017-09-12 02:11:30 -07:00
derAnfaenger 06c0cb82fa zulip_bots run.py: Clean help messages. 2017-09-12 02:11:30 -07:00
derAnfaenger 0a588dad55 zulip_bots run.py: Rename options to args. 2017-09-12 02:11:30 -07:00
derAnfaenger c6e7ddfb03 zulip package: Make check for provision failsafe.
It is not guaranteed that the integration scripts in
the Zulip repository even specify a `provision` option.
Therefore, checking the value of this option would fail.
Updating this with getattr and a default value.
2017-09-12 11:08:58 +02:00
derAnfaenger cb770ffee9 irc-mirror.py: Allow optional provisioning.
To do so, we need to import all required internal modules after the
script had the option to provision. The provisioning itself is then
done by zulip.init_from_options().
2017-09-12 01:39:21 -07:00
derAnfaenger 61b609e6f2 irc integration: Make IRCBot a separate module.
This will allow us to import IRCBot at a later point
in the code, necessary for provsioning support.
2017-09-12 01:39:21 -07:00
derAnfaenger 9acd9d932c irc-mirror.py: Make zulip_client an argument of IRCBot.
This is the first step towards moving IRCBot to a
separate file.
2017-09-12 01:39:21 -07:00
derAnfaenger ec18cbff26 zulip package: Add provision option for scripts.
If enabled in a script, this option will try to install dependencies
in the requirements.txt in the script's directory.
2017-09-12 01:39:21 -07:00
derAnfaenger 50d8c5f7fe zulip package: Add requirements.txt for each integration. 2017-09-12 01:39:21 -07:00
derAnfaenger ef54ea2ea6 test scripts: Outsource common code of test-botserver and test-zulip. 2017-09-12 01:27:09 -07:00
derAnfaenger 2bfba17fbd README.md: Add command for running zulip tests. 2017-09-12 01:27:09 -07:00
derAnfaenger af9178c4ed test suites: Add zulip package tests to Travis and Codecov. 2017-09-12 01:27:09 -07:00
derAnfaenger b31cf2f9a9 zulip package: Add test runner script. 2017-09-12 01:27:09 -07:00
derAnfaenger fb2aff4611 zulip package: Add unittest
As the first unittest, this creates a test directory and
abnd adds it tho the excluded pip package files.

There are two `tests` directories now, one in zulip_botserver and one in
zulip. This confuses the unittest runner, leading to failed test imports.
Therefore, we need to tell the package importer that there are multiple
tests directories, all of which should be considered for a search.
2017-09-12 01:27:09 -07:00
Eeshan Garg 390054da62 python-zulip-api: Upgrade versions (0.3.3 -> 0.3.4). 2017-09-11 21:09:28 -02:30
derAnfaenger c383fea18a .gitignore: Add bot configuration files. 2017-09-07 10:47:41 +02:00
derAnfaenger 18b92e5b46 zulip_bot_output.py: Fix misnamed import.
Followup for the last commit.
2017-09-06 23:41:37 +02:00
derAnfaenger bbf444c2bc zulip_bots run.py: Fix misnamed function. 2017-09-06 13:40:42 +02:00
derAnfaenger b585bd2dfa zulip setup.py: Remove redundant directory forward slash.
The slash caused pip install ./zulip to fail on Windows with
Python 3.5.
2017-09-06 09:01:22 +02:00
derAnfaenger 3c2e6e0556 travis: Install codecodv in the correct place.
Before this commit, codecov got installed for each test job,
but was only needed *after* all jobs had passed: in after_success.
This lead to codecov silently failing, as it was not installed when
it was actually needed.
2017-09-05 15:33:44 +02:00
derAnfaenger 610f02969a README.md: Update command for running botserver tests. 2017-09-04 14:33:09 +02:00
Eeshan Garg 6e798f317f python-zulip-api: Upgrade versions (0.3.2 -> 0.3.3).
We now have "universal" wheel distributions. Universal wheels
support both Python 2 and Python 3.
2017-09-01 23:10:12 -02:30
derAnfaenger ad1ff0c7bf provision: Add color formatting to success output. 2017-09-01 09:34:42 -07:00
derAnfaenger 2f474bdb02 bots: Fix broken config path generation. 2017-08-31 10:52:04 -07:00
Tim Abbott bbed4a625d log2zulip: Fix an extremely long line. 2017-08-30 10:01:48 -07:00
Greg Price 49fb205ae7 log2zulip: Fix to work on Python 3.
I'm not thrilled with the `replace` error handler losing information
if the logfile contains invalid UTF-8 for some reason; but that sure
beats a UnicodeDecodeError, and for this script I can't quite be
bothered to run the rather tricky riddle trail that Python 3 makes it
to pass arbitrary byte data through layers of ordinary text processing.
2017-08-30 09:57:57 -07:00
derAnfaenger 80fba127ad litner: Add rule against using pprint. 2017-08-30 09:41:24 -07:00
derAnfaenger 86729a862c api: Remove unnecessary API key details.
Fixes #1.
2017-08-29 14:24:19 -07:00
derAnfaenger 9d683e4669 api: Ensure automatic tilde expansion. 2017-08-29 14:20:48 -07:00
derAnfaenger 6db062ef75 api: Display help on wrong command-line arguments.
Fixes #93.
2017-08-29 14:18:53 -07:00
Abhijeet Kaur 5a426fa841 bots: Converter bot does not require a config file.
Remove unnecessary file.
2017-08-29 14:04:16 -07:00
Abhijeet Kaur fec14ca286 bots: Add additional check to avoid ambiguous case.
If a user provides both the name and the path to the bot
as input then we either will have to chose one of them
or alert the user to check the input. Selecting the latter
by sending an error message to the user.
2017-08-29 14:04:16 -07:00
Abhijeet Kaur dd13d0314b bots: Improve code-style by using 'return' once. 2017-08-29 14:04:16 -07:00
Abhijeet Kaur 402dda87fe bots: Mock 'send_message' function for 'zulip-bot-output'.
Very few bots like followup bot directly call 'send_message'
function from the bot code. Since ExternalBotHandler class is
mocked, we'll have to mock 'send_message' function as well.

Added dummy field value of 'sender_email' for the message to be
as followup bot requires that field while processing
the message.
Since send_message is directly called from a specific bot's code,
so it can be sent to a different stream or under a different topic
than that of the incoming message. So, print the entire message
along with stream name.

A bot calling 'send_reply' function will reply to the incoming
message in the same stream under the same topic. So, only printing
bot's response message content for that.
2017-08-29 14:04:13 -07:00