Information for developers of zest.releaser itself¶
Note: the whole test setup used to be quite elaborate and hard to get right.
Since version 7, this is much less so.
You just need git
and tox
.
If you still run into problems, there is a solution however: docker. See the next section on this page. It is still work-in-progress, we’ll probably add a docker-compose file, for example. And support for testing different python versions with docker. (3.8 is used now).
So: for easy testing, use the docker commands, described next. The rest of the document explains the original test setup requirements.
Testing with docker¶
If you have docker installed, all you need to do to run the tests is:
$ docker build . -t zest:dev
$ docker run --rm zest:dev
The “run” command runs the tests. It uses the code copied into the dockerfile in the build step, but you probably want to test your current version. For that, mount the code directory into the docker:
$ docker run --rm -v $(pwd):/zest.releaser/ zest:dev
Running tests¶
Actually, this should be easy now, because we use tox.
So pip install tox
somewhere, probably in a virtualenv, maybe the current directory,
and call it:
$ tox
You probably want to run the tests for all environments in parallel:
$ tox -p auto
To run a specific environment and a specific test file:
$ tox -e py38 -- utils.txt
Code formatting¶
We use black/flake8/isort. To make it easy to configure and run, there’s a pre-commit config. Enable it with:
$ pre-commit install
That will run it before every commit. You can also run it periodically when developing:
$ pre-commit run --all
Python versions¶
The tests currently pass on python 3.8-3.11 and PyPy3.
Necessary programs¶
To run the tests, you need to have the supported versioning systems installed.
Since version 7, we only support git
, which you already have installed
probably :-)
There may be test failures when you have different versions of these programs.
In that case, please investigate as these may be genuine errors. In the
past, git
commands would give slightly different output. If the output of
a command changes again, we may need extra compatibility code in
test_setup.py
.
Building the documentation locally¶
If you worked on the documentation, we suggest you verify the markup and the result by building the documentation locally and view your results.
For building the documentation:
$ python3.9 -m venv .
$ bin/pip install sphinx sphinx_rtd_theme
$ bin/pip install -e .
$ bin/sphinx-build doc/source/ doc/build/
For viewing the documentation open doc/build/html/index.html
in your browser, e.g. by running:
$ xdg-open doc/build/html/index.html