60c3919deb
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. |
||
---|---|---|
tools | ||
zulip | ||
zulip_bots | ||
zulip_botserver | ||
.codecov.yml | ||
.editorconfig | ||
.gitignore | ||
.travis.yml | ||
mypy.ini | ||
py3_requirements.txt | ||
README.md | ||
requirements.txt |
Zulip API
This repository contains the source code for Zulip's PyPI packages:
zulip
: PyPI package for Zulip's API bindings.zulip_bots
: PyPI package for Zulip's bots and bots API.zulip_botserver
: PyPI package for Zulip's Flask Botserver.
The source code is written in Python 3.
Development
-
Fork and clone the Git repo:
git clone https://github.com/<your_username>/python-zulip-api.git
-
Make sure you have pip and virtualenv installed.
-
cd
into the repository cloned earlier:cd python-zulip-api
-
Run:
python3 ./tools/provision
This sets up a virtual Python environment in
zulip-api-py<your_python_version>-venv
, where<your_python_version>
is your default version of Python. If you would like to specify a different Python version, runpython3 ./tools/provision -p <path_to_your_python_version>
-
If that succeeds, it will print end with printing the following command:
source /.../python-zulip-api/.../activate
You can run run this command to enter the virtual environment. You'll want to run this in each new shell before running commands from
python-zulip-api
. -
Once you've entered the virtualenv, you should see something like this on the terminal:
(zulip-api-py3-venv) user@pc ~/python-zulip-api $
You should now be able to run any commands/tests/etc. in this virtual environment.
Running tests
To run the tests for
-
zulip: run
./tools/test-zulip
-
zulip_bots: run
./tools/test-bots
-
zulip_botserver: run
./tools/test-botserver
To run the linter, type:
./tools/lint
To check the type annotations, run:
./tools/run-mypy